Alpine Xen Live CD not booting from USB
-
- Offline
- 1 year 9 months ago
- 2014-10-29
Hi, first this is a really good project with great potential. I like the simplicity and some of the choices that have been made. Congrats to the team! I am still exploring it and just one use case Alpine Linux as a lean and extremely efficient host for VMs and containers looks promising.
I have been trying to get the Alpine Xen live CD 3.0.5 and 3.0.6 to boot from USB and it doesn't seem to work. So far I have tried it on 2 different systems and with 3 different USB boot tools; unetbootin, linux live usb creator and universal usb installer.
The alpine normal ISOs 3.0.5 and 3.0.6 when used with these USB tools work fine. The Xen live CD when written to a CD works fine. Its just the xen live cd iso when written to USB drive that hangs on boot.
Has anyone got the xen-cd to boot from USB? It would be great to hear how you got it to work.
Thanks
EDIT: Problem solved in post 5.
I have been trying to debug this, and this is bit of a minefield with syslinux and variety of systems and usb booting. I am not too familiar with Syslinux, but the problem is not with the Alpine xen iso, which boots from CD, but with the combination of syslinux and booting xen with mboot.c32 from usb.
Somewhere the usb booting is failing with syslinux unable to find the kernel. I also tried the normal alpine iso 3.0.6, and installed Xen on usb drive as per the wiki, but even here booting the xen kernel again fails.
It could be that you have come accross the mboot.c32 issue, but it's unclear.
have a look at:
http://wiki.alpinelinux.org/wiki/Create_a_Bootable_USB
"Note: When you boot off the USB stick for the first time, if you get the error:
/boot/syslinux/mboot.c32: not a COM32R image
you will need to copy the mboot.c32 file suppled by your distro into /boot/syslinux/ on the USB stick"
You can paste your syslinux.cfg here to see if there is an error.
@scrumpyjack - thanks for that, went through that in my debugging efforts.
@Amatcoder - just solved this.
I have got this to work after some debugging and trial and error! The problem seems to be some sort of conflict or incompatibility between versions of Syslinux used by various USB boot tools like Unetbootin, Linux live USB creator etc and the Alpine Xen ISO which uses mboot.c32. The error is the kernel image is not found
This affects the Alpine-Xen ISO and presumably any other Xen ISO as they all need to use mboot.c32 to boot a xen kernel. Normal Alpine ISOs work perfectly with USB boot tools like Unetbootin etc.
There is a lot of conflicting information on this online. A lot of the solutions asked to change the mboot.c32 file from various versions of Syslinux but I tried a largish number of different versions of the mboot.c32 file and it didn't work.
What worked was using the latest Syslinux executable to make the USB stick bootable. The way I solved it is to not use any third party tools but Syslinux directly to make the USB bootable. I used Windows for this but it would work on Linux too.
1. Download the latest version of Syslinux - currently 6.03
2. Use the Syslinux exectuable to make the USB drive bootable (It's in the /bios/win32 folder for Windows 32 and in /bios/win64 for Windows 64)
3. The command to make a USB drive bootable is
syslinux.exe F:
(where F is your USB drive)
3. Extract the contents of the Alpine-Xen-3.0.6 ISO with 7zip or any utility that can extract ISOs and copy it to the USB stick.
This worked for the Alpine-Xen 3.0.5/3.0.6 ISOs. It boots perfectly.
I also wanted to install Xen-4.4 to test and I installed the normal Alpine 3.0.6 ISO on a USB stick and then installed Xen4.4 from the edge repos. Previously I was running into the same mboot.c32 kernel not found issue to get the Xen kernel to boot. But this time I prepared the USB stick with Syslinux 6.03 directly without using any USB boot tools and booting the Xen kernel worked.