Sunday, 8 March 2015

Easy2Boot 1.63 Beta 3 now supports FreeBSD 9 and 10, GhostBSD and pfSense 'memstick' images



Versions 9 and 10 of FreeBSD will not boot as an ISO, but the 1.63 Beta 3 version of Easy2Boot and the new MPI Tool Pack v0.044 do support FreeBSD 9 and 10 and pfSense 'memstick' non-UEFI images.




GhostBSD.img files are also in the memstick format and work too.


You will need to make a dummy .imgPTN file and then add and rename the memstick .img file to remove it's file extension, as described below...





The procedure is to use the MakePartImage process, but as the FreeBSD memstick.img files are already in the correct format for a FreeBSD partition, the .img files don't actually need converting or modifying, we just need to make a dummy .imgPTN file so that we can boot to the CSM menu!

Instructions

Note: you will need to download the new MPI Tool Kit v0.044, install the Desktop Shortcuts and also update your USB drive with the new E2B 1.63 Beta version first!
1. Create a new empty folder on the Windows Desktop (or anywhere else).

2. Drag-and-drop the empty folder onto the MPI_FAT32 MPI Desktop shortcut to make a 30MB partition image with no payload (or you can use the MakePartImage shortcut and create a smaller 10MB file and define a more suitable Menu Heading name than 'Easy2Boot'). When prompted for a target file, use a filename with a .imgPTN (or .imgPTNA5) file extension - e.g. FreeBSD_10_1.imgPTN.
Avoid using a filename that has any dots in it because it will also appear in the E2B Menus - e.g.  FreeBSD10.1.imgPTNA5 would not be a good name because the FreeBSD10.1 file (see below) would also be visible in the menu!

3. Copy the new .imgPTN file to a menu folder on your E2B USB drive (e.g. \_ISO\LINUX).

4. Copy your FreeBSD memstick.img file to the same folder that the .imgPTN file is in and rename it to match the name of the .imgPTN file - e.g.

FreeBSD_10_1.imgPTN         (10-30MB)
FreeBSD_10_1                      (e.g. 700MB memstick.img file renamed to match with no file extension)

5. Make all files contiguous on the drive.
Tip: Download the memstick .xyz (compressed) non-UEFI version, e.g. FreeBSD-10.1-RELEASE-i386-memstick.img.xz and then unzip it to obtain the .img file. The .xyz files are smaller than the .img files.
To add more FreeBSD versions, just repeat the process.

Grub4dos can access the files on a FreeBSD type A5 partition just fine.

Note that only 'memstick' images will work. I tested non-memstick versions of FreeBSD, pfSense, FreeNAS, TRUEOS, NetBSD, PCBSD and Dragonfly downloads (.iso, .img and .raw) without success.

Notes on booting memstick FreeBSD images

These images are constructed as follows:

First 512 bytes: Standard MBR with boot code (same code as in \boot\boot0)
2nd 512 bytes: The BSD 'label' - this describes what BSD partitions are present - in this case it points to an 'a' partition at offset 0 and the 'c' entire slice of the drive used for BSD.
3rd 512 bytes: This is the PBR and contains boot code (same code as in \boot\boot1).

You can begin the boot process by chainloader to (hd0,3) or chainloader /boot/boot1.

I first tried to add a new partition to the E2B USB drive without having to use the MakePartImage process (using partnew). This almost worked, however FreeBSD refused to mount the (hd0,3) partition that contained the memstick image file - although grub4dos could access files in the partition.
mountroot: waiting for device xx
Mounting from xxx failed with error 19.
It turned out that FreeBSD did not like the partition arrangement. When an extra (hd0,3) partition is created for the memstick image file which, of course, is within the E2B partition, we have:

Ptn1:  E2B NTFS              Start=2,048  End=125,033,831
Ptn2: empty
Ptn3: empty
Ptn4: FreeBSD Type A5 - Start= 4,843,235  End=9,634,298

As the FreeBSD partition was inside the E2B partition, FreeBSD refused to mount partition #4 and thus would not fully boot. This issue was solved by using a MakePartImage partition arrangement:

Ptn1:  E2B+CSM menu files  Start=2,345,123  End=2,455,936
Ptn2: empty
Ptn3: empty
Ptn4: FreeBSD Type A5 -     Start= 4,843,235  End=9,634,298

So the two partitions do not overlap and FreeBSD is happy!

Tip: Enable 'Verbose' option for debugging. To scroll back up the screen, hit the Scroll Lock key and then use the cursor keys - afterwards, hit the Scroll Lock key again to use the console command line.  'dmesg' will display progress message log again.


For FreeBSD11 and later - see here.