<sys/bootblock.h>:
* Added definitions for the Master Boot Record (MBR) used by
a variety of systems (primarily i386), including the format
of the BIOS Parameter Block (BPB).
This information was cribbed from a variety of sources
including <sys/disklabel_mbr.h> which this is a superset of.
As part of this, some data structure elements and #defines
were renamed to be more "namespace friendly" and consistent
with other bootblocks and MBR documentation.
Update all uses of the old names to the new names.
<sys/disklabel_mbr.h>:
* Deprecated in favor of <sys/bootblock.h> (the latter is more
"host tool" friendly).
amd64 & i386:
* Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
be consistent with the naming convention of the msdosfs tools.
* Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
and it's confusing to have two functionally equivalent bootblocks,
especially given that "ufs" has multiple meanings (it could be
a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).
* Rework pbr.S (the first sector of bootxx_*):
+ Ensure that BPB (bytes 11..89) and the partition table
(bytes 446..509) do not contain code.
+ Add support for booting from FAT partitions if BOOT_FROM_FAT
is defined. (Only set for bootxx_msdos).
+ Remove "dummy" partition 3; if people want to installboot(8)
these to the start of the disk they can use fdisk(8) to
create a real MBR partition table...
+ Compile with TERSE_ERROR so it fits because of the above.
Whilst this is less user friendly, I feel it's important
to have a valid partition table and BPB in the MBR/PBR.
* Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
with other platforms.
* Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
we can boot off FAT partitions.
* Crank version of /usr/mdec/boot to 3.1, and fix some of the other
entries in the version file.
installboot(8) (i386):
* Read the existing MBR of the filesystem and retain the BIOS
Parameter Block (BPB) in bytes 11..89 and the MBR partition
table in bytes 446..509. (Previously installboot(8) would
trash those two sections of the MBR.)
mbrlabel(8):
* Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
to map the MBR partition type to the NetBSD disklabel type.
Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
Update lists for ramdisks to include the required files.
NB /usr/sbin/installboot is not used by sysinst and is only in ramdisk-big.
Increase the sizes of the ramdisks, there is plenty of space in all the
boot floppies except rescue-tiny (2k) and boot-tiny (32k).
../../common/Makefile.mdset supports building multiple copies of the
same kernel (as long as they're to separate filenames).
Now there's no need to set FLOPPYKERNDIR, as it now defaults to instkernel.
rather than the previous ".fs").
- add support for (optional) FLOPPYSUFFIX in Makefile.tarfloppy, and
use appropriately
- remove (now unnecessary) custom release targets in alpha/instkernel/*
- move guts of distrib/Makefile.inc to distrib/common/Makefile.distrib
(fixes problem caused by implicit include of ../Makefile.inc in certain
submake conditions triggered by makefiles not yet in tree)
- removed mkdir of ${RELEASEDIR}/*; rely upon "snap_pre" target of
etc/Makefile to create all the release directories
- renamed RELINSTALL to RELEASE_INSTALL
- renamed FLOPPYINSTDIR to FLOPPY_RELEASEDIR
- renamed MDSETDIR to MDSET_RELEASEDIR
- removed ITARGET
- move release target from top level to appropriate subdirectory
- ensure release target has correct depends
- replace miniroot's IMAGE_MD_POST with common/Makefile.image IMAGEPOSTBUILD
- Makefile.image: add realall: ${IMAGE}
single and multi-volume floppies in better fashion that the crufty
shell commands in the various Makefiles.
- Move fdset* -> bootfloppy*, as that's more consistent
- factor more stuff into common/Makefile.*
- use NDWO makefile layout
- don't always rebuild bootfloppy-* and fdset-* stuff. (mmm, dependencies)
- add .WAIT sync in top level Makefile
as they only support reading /etc/hosts, and its the "least useful" of
the libhack routines. Add gethost.o back to Really Small media which
appears to need the space savings.
- improve comments
- provide a general purpose variable replacement; replace contents of ${FOO}
with ENVIRON["FOO"].
- deprecate @MACHINE@ and @MACHINE_ARCH@ in favour of using ${MACHINE}
and ${MACHINE_ARCH} instead
- add errx() function; like err(), but doesn't print the line number
- invoke this script with various variables defined via PARSELISTENV
*/Makefile*
- use PARSELISTENV instead of POPULATEENV, and add variables like DESTDIR
- other minor tweaks
*/list*
- replace @MACHINE@ with ${MACHINE}
- use ${DISTRIBDIR} as appropriate
- use ${DISTRIBDIR}/common/list.sysinst if USE_SYSINST is defined,
removing any replicated list info
- define USE_SYSINST in the sysinst-using ramdisks
- replace MAKEDEV_DEVS with MAKEDEVTARGETS
- use ${DISTRIBDIR} as appropriate
- migrate most of mtree.conf to ${DISTRIBDIR}/common/mtree.common,
leaving /.profile in mtree.conf
- remove MAKEDEV_DEVS support; replaced with MAKEDEVTARGETS support in
${DISTRIBDIR}/common/Makefile.makedev
makedev2spec.awk to generate another mtree specfile for use when building
the image, and don't copy dev/MAKEDEV to the target image. This is primarily
for the tiny images which might not have enough memory for an mfs /dev.
Otherwise (MAKEDEV_DEVS not defined), continue to copy dev/MAKEDEV.
requirement to build as root on a system with vnconfig.
Use ${KERNSRCDIR} and ${_SRC_TOP_} where appropriate
Remove now-obsolete:
list2sh.awk runlist.sh bootfloppy-common/list
Bootfloppy-*/Makefile: don't need to set DISKTYPE or BLOCK8K any more
Rename bootfloppy-common/Makefile.inc to common/Makefile.bootfloppy
and fdset-common/Makefile.inc to common/Makefile.fdset
This uses makefs instead of vnconfig and disklabel, thus removing the
need for root privileges to build these floppies..
Add common/Makefile.ramdisk, to simplify ramdisk-*/Makefile.
Uses shared ${_SRC_TOP_}/distrib/common/Makefile.crunch and
${_SRC_TOP_}/distrib/common/Makefile.image to even further simply things.
Migrate ramdisk-*/dot.profile to a shared common/dot.profile, which
detects whether it's an install or rescue profile based on the existance
of /sysinst. Remove /dev generation code as init(8) now does that for us.
Migrate common parts of */list to a shared common/list.ramdisk.
Convert ramdisk-*/list to new format used by distrib/common/parselist.awk
Don't bother running pwd_mkdb now that libhack's getpwent parses
/etc/master.passwd instead of /etc/passwd.
Migrate ramdisk-*/mtree.conf to a shared common/mtree.conf, which is now a
new full-path-style specfile.
Remove ramdisk-*/ramdiskbin.conf as it's now automatically generated
from ramdisk-*/list by parselist.awk.
Migrate ramdisk-*/termcap.mini to a shared common/termcap.mini.
Remove unused ramdisk-{small,tiny}/disktab.preinstall.
Use .for loops in kernel-*/Makefile to simply defining mostly-duplicated
targets.
ramdisk-*/Makefile: convert to using common/Makefile.ramdisk
Remove unused ramdisk-*/dot.hdprofile.