Linux – How to boot Fedora Live CD iso from a Hard Drive

bootfedoragrublinuxlivecd

I tried to use Grub to boot the Fedora 14 Live CD from its ISO image (SHA256 verified) on the hard drive.

I put Fedora-14-x86_64-Live-Desktop.iso in the root directory of the FAT32 partition D: (sda5) then extracted isolinux from this ISO, and put it on D:

I followed the isolinux.cfg file, and wrote a menu.lst as follows:

title Fedora 14 Live CD
root (hd0,4)
kernel (hd0,4)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-14-x86_64-Live-Desktop rootfstype=auto ro liveimg quiet  rhgb
initrd (hd0,4)/isolinux/initrd0.img

However Grub told me:

No root device found.
Boot has failed. Sleeping forever.

Here's the contents of isolinux.cfg:

[...]
label linux0
menu label Boot
kernel vmlinuz0
append initrd=initrd0.img root=live:CDLABEL=Fedora-14-x86_64-Live-Desktop rootfstype=auto ro liveimg quiet  rhgb rd_NO_LUKS rd_NO_MD rd_NO_DM  
menu default

label linux0
menu label Boot (Basic Video)
kernel vmlinuz0
append initrd=initrd0.img root=live:CDLABEL=Fedora-14-x86_64-Live-Desktop rootfstype=auto ro liveimg quiet  rhgb rd_NO_LUKS rd_NO_MD rd_NO_DM xdriver=vesa nomodeset 

label check0
menu label Verify and Boot
kernel vmlinuz0
append initrd=initrd0.img root=live:CDLABEL=Fedora-14-x86_64-Live-Desktop rootfstype=auto ro liveimg quiet  rhgb  check

label memtest
menu label Memory Test
kernel memtest
label local
menu label Boot from local drive
localboot 0xffff

This might be a problem related to the bug posted here: Bug 515008 in UNetbootin Root is incorrect in menu_lst for fedora 12 hard disk install

I extracted all of the contents of the ISO image to a FAT32 partion. I also replaced the CDLABEL of the "root" with the UUID of the partition where the ISO file exists. Next I modified the entry of menu.lst with:

title Fedora 14 Live CD
root (hd0,4)
kernel (hd0,4)/isolinux/vmlinuz0 root=UUID=My_UUID_of_the_partition rootfstype=auto ro liveimg quiet  rhgb
initrd (hd0,4)/isolinux/initrd0.img

However I still have no success directly booting the ISO image on the hard drive. Any ideas?

Best Answer

What worked for me was extracting the /LiveOS, /isolinux/vmlinuz0 and /isolinux/initrd0.img files then copying them to the root of the partition I was going to boot from. I then set the kernel parameters in my bootloader as follows:

root=live:LABEL=disklabel rootfstype=auto ro liveimg quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 rd.live.check

Where disklabel is the label of the partition (i.e. as set with e2label etc). In your example you are missing the live: part after root even though you are using a UUID.

Related Question