Move filesystem expansion to first-boot wizard
Instead of a hidden systemd service, expand the filesystem visibly during the first-boot wizard so users can see it happening. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,28 @@ echo ""
|
|||||||
|
|
||||||
gum confirm "Ready to begin setup?" || exit 0
|
gum confirm "Ready to begin setup?" || exit 0
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Step 0: Expand Filesystem
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
clear
|
||||||
|
gum style \
|
||||||
|
--foreground 212 --bold \
|
||||||
|
"Expanding filesystem..."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Get current and total size
|
||||||
|
ROOT_DEV=$(findmnt -n -o SOURCE /)
|
||||||
|
CURRENT_SIZE=$(df -h / | awk 'NR==2 {print $2}')
|
||||||
|
gum style --foreground 245 "Current size: $CURRENT_SIZE"
|
||||||
|
|
||||||
|
# Run resize2fs with a spinner
|
||||||
|
gum spin --spinner dot --title "Expanding to fill SD card..." -- sudo resize2fs "$ROOT_DEV" 2>/dev/null
|
||||||
|
|
||||||
|
NEW_SIZE=$(df -h / | awk 'NR==2 {print $2}')
|
||||||
|
gum style --foreground 82 "✓ Expanded to: $NEW_SIZE"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Configuration Variables
|
# Configuration Variables
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|||||||
@@ -123,37 +123,6 @@ else
|
|||||||
echo -e "${GREEN} Rootfs already ~16GB${NC}"
|
echo -e "${GREEN} Rootfs already ~16GB${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# Re-enable auto-expand for release image
|
|
||||||
# ============================================================================
|
|
||||||
echo
|
|
||||||
echo -e "${YELLOW}Re-enabling auto-expand for release...${NC}"
|
|
||||||
TEMP_ROOT=$(mktemp -d)
|
|
||||||
sudo mount "$ROOT_PART" "$TEMP_ROOT"
|
|
||||||
|
|
||||||
# Create the resize service that runs on first boot
|
|
||||||
sudo tee "$TEMP_ROOT/etc/systemd/system/rpi-resizerootfs.service" > /dev/null <<'RESIZE_EOF'
|
|
||||||
[Unit]
|
|
||||||
Description=Resize root filesystem to fill SD card
|
|
||||||
After=local-fs.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
ExecStart=/bin/bash -c 'resize2fs $(findmnt -n -o SOURCE /) && systemctl disable rpi-resizerootfs.service && rm -f /etc/systemd/system/rpi-resizerootfs.service'
|
|
||||||
ExecStartPost=/bin/systemctl daemon-reload
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
RESIZE_EOF
|
|
||||||
|
|
||||||
# Enable the service
|
|
||||||
sudo mkdir -p "$TEMP_ROOT/etc/systemd/system/multi-user.target.wants"
|
|
||||||
sudo ln -sf /etc/systemd/system/rpi-resizerootfs.service "$TEMP_ROOT/etc/systemd/system/multi-user.target.wants/rpi-resizerootfs.service"
|
|
||||||
|
|
||||||
sudo umount "$TEMP_ROOT"
|
|
||||||
rmdir "$TEMP_ROOT"
|
|
||||||
echo -e "${GREEN} Auto-expand service installed${NC}"
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# Pull image
|
# Pull image
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user