archy/FIXED_BOOT_ISSUE.md
Dorian 76782073c2 Refactor build script for custom ISO creation and update hardware configuration
- Replaced OS-specific build method with a custom ISO builder in the build-for-hardware.sh script.
- Updated output file naming to reflect the correct Alpine version in the build process.
- Adjusted build dates in hardware configuration files for HP ProDesk, merged, and Start9 Pure profiles to the latest timestamp.
2026-01-31 22:56:39 +00:00

128 lines
3.7 KiB
Markdown

# Boot Issue Fixed - Alpine Live Boot Parameters
## What Was Wrong
The custom ISO was missing critical Alpine Linux live boot parameters:
- ❌ No `modloop` parameter (Alpine's module overlay system)
- ❌ No `alpine_dev` parameter (tells Alpine where to find itself)
- ❌ Missing boot device hints
Result: System booted into emergency shell because it couldn't find `/sbin/init`
## What I Fixed
### Updated Boot Configurations:
#### 1. GRUB Config (`/boot/grub/grub.cfg`)
```
linux /boot/vmlinuz-lts modules=loop,squashfs,sd-mod,usb-storage modloop=/boot/modloop-lts alpine_dev=sda1:iso9660 quiet console=tty0
```
#### 2. Syslinux Config (`/boot/syslinux/syslinux.cfg`)
```
APPEND modules=loop,squashfs,sd-mod,usb-storage modloop=/boot/modloop-lts alpine_dev=cdrom:iso9660 quiet console=tty0
```
### Key Parameters Added:
| Parameter | Purpose |
|-----------|---------|
| `modloop=/boot/modloop-lts` | Points to Alpine's compressed module filesystem |
| `alpine_dev=cdrom:iso9660` | Tells Alpine where to find the live system (on ISO9660 filesystem) |
| `console=tty0` | Ensures output goes to the screen |
| `modules=loop,squashfs,sd-mod,usb-storage` | Loads required kernel modules early |
## New ISO Ready
**Location**: `/Users/dorian/Projects/archy/image-recipe/results/archipelago-3.19-hp-prodesk-uefi-x86_64.iso`
**Size**: 278MB
**Created**: Jan 31, 2026 21:51
## How to Flash
### Method 1: Balena Etcher
1. Open Balena Etcher
2. Select the new ISO
3. Select your USB drive
4. Flash!
### Method 2: dd (Terminal)
```bash
diskutil list
diskutil unmountDisk /dev/diskN
sudo dd if=/Users/dorian/Projects/archy/image-recipe/results/archipelago-3.19-hp-prodesk-uefi-x86_64.iso of=/dev/rdiskN bs=1m status=progress
diskutil eject /dev/diskN
```
## How to Boot HP ProDesk
1. **Disable Secure Boot** in BIOS (F10 → Security → Secure Boot → Disabled)
2. **Insert USB** and reboot
3. **Press F9** for boot menu
4. **Select**: "UEFI - General UDISK"
5. System should now boot properly to Alpine login prompt
## What You'll See After Booting
```
🏔️ Archipelago Bitcoin Node OS
Booting...
Welcome to Alpine Linux 3.19
Kernel 6.6.x-lts on an x86_64
localhost login: _
```
### Login:
- **Username**: `root`
- **Password**: *(just press Enter)*
### Run Installer:
```bash
sh /media/cdrom/archipelago/install.sh
```
Or if that path doesn't work:
```bash
sh /media/usb/archipelago/install.sh
```
## What the Installer Does
1. ✅ Installs Alpine Linux 3.19 to internal disk
2. ✅ Installs Archipelago backend (5.7MB Rust binary)
3. ✅ Installs Vue.js web UI (port 8100)
4. ✅ Configures Podman container runtime
5. ✅ Sets up 21 app manifests (Bitcoin, Lightning, Web5, etc.)
6. ✅ Configures DHCP networking on Ethernet
7. ✅ Sets up nginx, SSH, and all services
8. ✅ Creates `archipelago` user
## After Installation
1. **Reboot** and remove USB
2. **Login**: `archipelago` / `archipelago`
3. **Change password**: `passwd`
4. **Access web UI**: `http://<your-ip>:8100`
---
**This ISO should now boot properly without dropping to emergency shell!** 🚀
## Technical Notes
The issue was that we were extracting and repackaging an Alpine ISO without understanding Alpine's live boot requirements. Alpine Linux uses:
1. **modloop**: A compressed SquashFS file containing kernel modules and system files
2. **alpine_dev**: Boot parameter telling the system where to find the live environment
3. **Special initramfs hooks**: That detect and mount the live media
By adding these parameters back, the boot process now works as expected.
## If You Still Have Issues
Try the **Safe Mode** boot option (second menu entry), which adds `nomodeset` for better hardware compatibility.