Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Root device independent bootable disk images



Hi all,

Since jmcneill's commit of src/lib/libutil/getfsspecname.c 1.5, NetBSD
supports the special string "ROOT." as an alias for the root device in
/etc/fstab.  This can be used to avoid hard-coding the device name of
the root disk on bootable disk images, allowing a single image to be
booted from disks having different device names.

This feature is currently used by the ARM images, but not by the
images for other architectures.  I would like to change this.  My
immediate motivation for this is to fix PR 51503, "7.0.1/amd64 USB
install image root mount fails when sd present", but I belive it would
also be useful on live images as well as install images, and on
other architectures.  Note that I am not proposing changing the fstab
that gets written to the target disk when installing a system using
sysinst, only that of pre-built disk images such as those from
"build.sh install-image" or "build.sh live-image".

The question is, is there any reason to keep the existing machinery
for specifying a fixed device name via the BOOTDISK make variable?
Or in other words, can anyone think of an architecture or type of disk
image where the "ROOT." reference might not work, or where a
hard-coded root disk device in /etc/fstab might otherwise be
desirable?

If not, the change I'm proposing would basically amount to changing
"/dev/@@BOOTDISK@@" to "ROOT." in src/distrib/common/bootimage/fstab.in
and fstab.install.in, followed by a bunch of cleanup work to remove
things that are no longer used or needed, such as all references to
BOOTDISK in the Makefiles.

The "build.sh live-image" target currently builds two live images each
for i386 and amd64, with names containing "-wd0root" and "-sd0root",
respectively.  With the proposed change, these would become almost
identical, differing only in size and the OMIT_SWAPIMG setting, and
probably ought to be merged into one.  Other architectures only have
at most a single live image each, but their names also contain strings
like "-sd0root" or "-ra0root" that would now be meaningless and should
be removed.

Comments?  Objections?
-- 
Andreas Gustafsson, gson%gson.org@localhost


Home | Main Index | Thread Index | Old Index