67 - Boot Fedora 16/17/18/25 with persistence from a USB drive using grub4dos
Fedora can boot directly from an ISO file placed on a USB drive using the following menu, however I have not found a way to boot directly from an ISO and have persistence.
To boot directly from an ISO without persistence, you can use one of the following menus (or just copy the ISO over to your Easy2Boot USB flash drive!)
title Boot Fedora directly from ISO (not persistent)
# Note that partition 4 of your USB flash drive will be destroyed by this next command! Make sure it is not in use!
partnew (hd0,3) 0x00 /fedora.iso
map (0xff) /Fedora.iso
map --hook
root (0xff)
chainloader (0xff)
Tip: Easy2Boot will also boot Fedora (and just about any other linux ISO!) just by copying the ISo file to the USB drive. Easy2Boot also has a .mnu file that will allow you to boot Fed with an ext2 persistence file.
Boot Fedora with persistence
NOTE: The volume must be formatted as FAT32 (NTFS is not supported).
To boot to an NTFS Easy2Boot multiboot USB drive with persistence (MBR and UEFI) see here.
Here is how to add it to your grub4dos USB drive by extracting the files from a Fedora ISO...
1. Download your Fedora ISO file - I used the KDE Spins versions here (Fedora-16-i686-Live-KDE.iso), version 17 also works fine.
2. If you don't already have a ready-prepared USB grub4dos bootable drive then make one now by formatting a drive as FAT32 (not NTFS!) using RMPrepUSB and then click on the Install grub4dos button to install grub4dos and copy over grldr.
3. Mount the ISO file using ImDisk or Virtual CloneDrive or your favourite utility so that you can copy the files from within it to your USB drive.
4. Copy the entire LiveOS folder from the ISO file to the USB drive - you should now have a /LiveOS folder on your USB drive
5. From the /isolinux folder within the mounted ISO file, copy the files vmlinuz0 and initrd0.img to the /LiveOS folder on your USB drive
6. Now add the following entry to your existing menu.lst file (press F4 in RMPrepUSB to load the menu.lst from the USB drive or create a new one) - note: there are only 7 lines (one line wraps over!).
LIVE must be changed to match the volume label of your USB drive.
title FEDORA (PERSISTENT)
uuid () > nul
set UUID=%?%
echo %UUID%
if not exist /LiveOS/overlay-LIVE-%UUID% echo WARNING: Changes will not be remembered unless a /LiveOS/overlay-LIVE-%UUID% ext2 file is created! && pause
kernel /liveos/vmlinuz0 root=live:UUID=%UUID% rootfstype=auto rw liveimg overlay=UUID=%UUID% quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 xdriver=vesa nomodeset
initrd /liveos/initrd0.img
# ALTERNATIVE: This example uses \fedora.img as the persistence file and it is easier to set up - Fedora 25 used
title FEDORA 25 with persistence (/fedora.img)\n Boot to Fedora with persistence
uuid () > nul
set UUID=%?%
echo UUID=%UUID%
if not exist /fedora.img echo WARNING: Changes will not be remembered unless a /fedora.img ext file is created! && pause
kernel /syslinux/vmlinuz root=live:UUID=%UUID% rd.live.overlay=/dev/disk/by-uuid/%UUID%:/fedora.img rd.live.dir=/LiveOS rootfstype=auto rw rd.live.image quiet splash vga=791 rhgb rd.luks=0 rd.md=0 rd.dm=0 xdriver=vesa nomodeset
initrd /syslinux/initrd.img
boot
Now add persistence...
To use the Alternate menu, just create an ext3 file called \fedora.img or for the first menu...
To make a Fedora USB boot pen with persistence (it will remember your settings and updates, etc.) follow the steps 1-6 above and then:
1. Boot to grub4dos and run the FEDORA menu entry
2. You should be prompted with the name of the missing file required for persistency - e.g. overlay-LIVE-C245-7B4E
3. Run RMPrepUSB and use the Create Ext2 FS button to create a file of name overlay-LIVE-C245-7B4E using the same number that was returned in step 2
4. Move the overlay file from the root of the drive to the \LiveOS folder
Note: LIVE must be the volume label of the USB drive. If you volume label is RMPREPUSB and the UUID is 1234-ABCD, then the file must be called overlay-RMPREPUSB-1234-ABCD and you must change the menu entry from LIVE to RMPREPUSB.
You \LiveOS folder should now contain these 4 files:
\LiveOS\vmlinuz0
\LiveOS\initrd0.img
\LiveOS\squashfs.img - you will get a message about live-rw not found if this is not inlcuded!
\LiveOS\overlay-LIVE-C245-7B4E - last characters will differ for each USB drive depending on volume label and UUID - or \fedora.img if using the Alternate menu
Alternatively, try using Fedora Live USB Creator and set the persistent overlay size (the larger the better as the data is stored uncompressed). However, I did find that this crashed if booting with version 17.
Always test on REAL HARDWARE at first, not a VM (though Oracle VBox works well and with persistence if you follow Tutorial #4 and use DavidB's StartVM.exe utility).
To install Fedora onto an internal hard drive using your USB drive, click on Activities and choose Install to Hard Drive. Follow the installation guide here.
Fedora 18
Boot Fedora with persistence directly from ISO
Create the overlay file in the \LiveOS folder as instructed above. The squashfs.img must be extracted from the ISO.
The ISO is the only other file needed which can be placed anywhere if you change the path.
\LiveOS\squashfs.img - you will get a message about live-rw not found if this is not included!
\LiveOS\overlay-LIVE-C245-7B4E - last characters will differ for each USB drive depending on volume label and UUID
\_ISO\MAINMENU\Linux\/_ISO/MAINMENU/Linux/Fedora-18-i686-Live-LXDE.iso
The USB drive MUST be FAT32 (NTFS does not boot!).
WARNING: This menu assumes that the 4th partition entry on the USB drive is unused and checks that it is first.
title FEDORA 18 boot from ISO - PERSISTENT
# set VOL to the volume label of the USB drive
set VOL=LIVE
echo Note: USB drive Volume Label must be %VOL%
#enable parttype output
debug 1
# make empty table entry in 4th position in ptn table
parttype (hd0,3) | set check=
debug off
set check=%check:~-5,4%
if not "%check%"=="0x00" echo WARNING: PTN TABLE 4 IS ALREADY IN USE! && pause && configfile /menu.lst
debug 1
uuid () > nul
set UUID=%?%
echo UUID=%UUID%
if not exist /LiveOS/overlay-%VOL%-%UUID% echo WARNING: Changes will not be remembered unless a /LiveOS/overlay-%VOL%-%UUID% ext2 file is created! && pause
# WARNING: This next line destroys the 4th Primary Partition entry on the boot device!
partnew (hd0,3) 0x00 /_ISO/MAINMENU/Linux/Fedora-18-i686-Live-LXDE.iso
map /_ISO/MAINMENU/Linux/Fedora-18-i686-Live-LXDE.iso (0xff)
map --hook
root (0xff)
kernel /isolinux/vmlinuz0 root=live:UUID=%UUID% rd.live.overlay=UUID=%UUID% rootfstype=auto rw rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
initrd /isolinux/initrd0.img
The Official Live USB Creator tool did not give a persistent boot for Fed 18
The Live USB Creator tool uses syslinux:
menu label ^Run Fedora 18 LXDE Live
kernel /multiboot/fedoraLXDE18/isolinux/vmlinuz0
append initrd=/multiboot/fedoraLXDE18/isolinux/initrd0.img root=live:LABEL=MULTIBOOT overlay=UUID=DB49-9F70 live_dir=/multiboot/fedoraLXDE18/LiveOS rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
/multiboot/fedoraLXDE18/LiveOS holds the squashfs.img (live_dir)
/LiveOS/overlay-LIVE-xxxx-yyyy was the persistence file created by the Creator tool
grub2 menu
The basic menu is:
#WORKS - needs FAT32, not NTFS!! Fedora-Live-Workstation-i686-23-10.iso
menuentry "Fedora Live Workstation EXTRACTED PERSISTENT (FAT32-only)" --unrestricted --class fedora {
set root2=(hd0,msdos1)
set root=$root2
probe -u $root2 --set=root2uuid
probe -l $root2 --set=root2vol
echo "Persistent file should be $root2/LiveOS/overlay-$root2vol-$root2uuid"
echo "Persistent file Volume name should be LIVE"
if [ ! -e $root2/LiveOS/overlay-$root2vol-$root2uuid ] ; then echo ERROR: $root2/LiveOS/overlay-$root2vol-$root2uuid not found! ; echo Press ENTER to continue ; read ; fi
loopback loopo $root2/LiveOS/overlay-$rootvol-$root2uuid
probe -l (loopo) --set=loopol
if [ ! $loopol = "LIVE" ]; then echo "ERROR: $root2/LiveOS/overlay-$root2vol-$root2uuid has volume label of $loopol, not LIVE!" ; read ; fi
set gfxpayload=1024x768,800x600
linux /LiveOS/vmlinuz0 root=live:UUID=$root2uuid rd.live.overlay=UUID=$root2uuid live_dir=/LiveOS rootfstype=auto rw rd.live.image quiet splash rhgb rd.luks=0 rd.md=0 rd.dm=0 nomodeset
initrd /LiveoS/initrd0.img
boot
}
See http://rmprepusb.blogspot.co.uk/2016/05/fedora-persistence-using-grub2.html for more details