How to boot Fedora Live CD iso from a Hard Drive?
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?
Solution 1:
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.
Solution 2:
Probably you failed to 'run' the boot loader. When you want any boot configuration to be stored to the MasterBootRecord (MBR) of the harddisk, you have to run the bootloader, normally for IsoLinux / Grub this is done from Linux shell. The bootloader interprets the accompanying configuration file, and writes code to the MBR.
You can use SysRescueCD on CD / LiveUSB to boot to a Linux shell from CD/USB, and then run Grub or syslinux from the Linux shell . If that's not an option and you want to do it from Windows, you migt look at GRUB4DOS as a way to run Grub on Windows, or instructions here for SysLinux on Windows (extract the zip, run syslinux from DOS-command line I think?).
Note the syslinux.cfg file is related to IsoLinux, and menu.lst is related to Grub. You only need one of the two. Which one, is a matter of personal choice and convenience.
Please note, isolinux is meant to boot from an ISO-filesystem (CD Rom). However, if I understand correctly, you copied the files to the Windows partition, probably FAT. To boot from FAT, you need syslinux (instead of isolinux). To do so, the only thing you have to do is rename the file 'isolinux.cfg' to 'syslinux.cfg' and the "isolinux" directory to "syslinux".