On Jul 21, 2013, at 6:39 AM, Alexey Dokuchaev wrote:

> On Sun, Jul 21, 2013 at 05:23:34AM +0000, Glen Barber wrote:
>> New Revision: 253513
>> URL: http://svnweb.freebsd.org/changeset/base/253513
>> 
>> Log:
>>  Create memstick images with the '.img' filename extension.
>> 
>>  Requested by:       many
>>  [...]
> 
> Is there any work being done to merge the .iso and .img into single,
> hybrid bootable image (c.g. Haiku)?

I wonder how Haiku does it.

I use ISOLINUX (part of the SYSLINUX family) as my boot loader.

The ISO9660 layer boots ISOLINUX and then chain-loads the mfsroot, displaying 
my beastie Forth menu.

Then from the mfsroot boot environment, sysinstall runs /install.cfg:

http://druidbsd.cvs.sourceforge.net/viewvc/druidbsd/druidbsd/druid/dep/freebsd/mfsroot/standard/src/install.cfg?revision=1.1&view=markup

 which runs a small script:

http://druidbsd.cvs.sourceforge.net/viewvc/druidbsd/druidbsd/druid/dep/freebsd/mfsroot/standard/src/fis/load_menu?revision=1.1&view=markup

Which looks for /dev/iso9660/VOL_ID

Where VOL_ID is set by the mkisofs(8) `-V VOL_ID'  flag when producing the boot 
media. See "BOOT_VOLID" in my GNUMakefile that calls mkisofs(8):

http://druidbsd.cvs.sourceforge.net/viewvc/druidbsd/druidbsd/druid/GNUmakefile.in?revision=1.7&view=markup

Now here's the trick...

It doesn't matter whether you burned the ISO to a CD/DVD or you imaged it to a 
USB Thumb...

... phk's GEOM layer picks up and creates /dev/iso9660/VOL_ID regardless of 
what medium you booted from (so-long as it was an ISO that was post-processed 
with the ISOLINUX utility "isohybrid").

So in my hybridized installer, I have a bootstrap script that runs before 
sysinstall that mounts /dev/iso9660/VOL_ID to /cdrom and I end up using /cdrom 
always.

That's the very basic *gist* of how I achieve hybrid booting for FreeBSD. Of 
course... that's only the *start*. Of course, to get sysinstall to install from 
/cdrom, I had to code a new media access module called "mediaSetNullFS":

http://druidbsd.cvs.sourceforge.net/viewvc/druidbsd/druidbsd/druid/dep/freebsd/patches/local_patches/usr.sbin%3A%3Asysinstall%3A%3Anullfs.c.patch?view=markup

Whose job is (when you configure your installation to use this access method) 
is to take the path given and do a mount_nullfs from point-A to point-B *prior* 
to doing the chroot into the formatted disk (here, like all media access 
methods, the point-B is "/dist" within the chroot environment).

Of course... moving forward... we would need to re-apply logistics to 
bsdinstall to work with ISOLINUX and isohybrid images -- though I gather it 
would be even easier than making sysinstall work.



>  I've asked this question before,
> but I cannot recall now what was the outcome if it...
> 

Did I answer you last time? Just curious. I've been doing this for a while.
-- 
Devin

_____________
The information contained in this message is proprietary and/or confidential. 
If you are not the intended recipient, please: (i) delete the message and all 
copies; (ii) do not disclose, distribute or use the message in any manner; and 
(iii) notify the sender immediately. In addition, please be aware that any 
message addressed to our domain is subject to archiving and review by persons 
other than the intended recipient. Thank you.
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to