hammer2 - Add hammer2 boot support
authorMatthew Dillon <dillon@backplane.com>
Tue, 24 Sep 2013 22:14:26 +0000 (15:14 -0700)
committerMatthew Dillon <dillon@backplane.com>
Tue, 24 Sep 2013 22:29:57 +0000 (15:29 -0700)
commitcdfd0a3e265fcdd4e2200620157aaeebe6bfd8f8
treea0f2da63e253f553377340149ef520c22fa096bc
parent3dbc8d04924705baa33b8c78df08054402ff0d6d
hammer2 - Add hammer2 boot support

* Add hammer2 boot loader support.  The hammer2 boot loader accesses the
  hammer2 mount starting at the super-root.  To use hammer2 boot support
  you need to have a PFS called 'boot', which will be seen as "/boot" by
  the boot loader.

  The 'boot' PFS can be created either by creating a boot-specific H2
  partition with 'newfs_hammer2 -L boot ...', or by using
  'hammer2 pfs-create boot' to create a PFS called 'boot'.

  You can access any super-root if desired.

* Since boot is a super-root you can mix boot PFS's and other PFS's on the
  same hammer2 filesystem, including creating a boot PFS far later on.

* WARNING!!!!!  The 'boot' PFS must be configured without compression.
  i.e. 'hammer2 setcomp autozero /boot' (assuming you've mounted it on /boot),
  before you install anything.  The newfs_hammer2 utility will automatically
  handle this if you specify a label name of 'boot' (i.e. -L boot).

* WARNING!!!!!  The BIOS may not be able to reliably access very high
  sector numbers on large hard drives, so to be safe we recommend creating
  a small 'a' partition anyway, unless the drive / main hammer2 filesystem
  is small enough to not cause problems.

* Add %qx support to boot2's mini printf().

* Fix ipdata->comp_algo propagation bug in hammer2_inode_create()

* newfs_hammer2 and the pfs_create ioctl will set comp_algo to AUTOZERO
  for PFS's called "boot" automatically.
17 files changed:
lib/libstand/Makefile
lib/libstand/hammer1.c [new file with mode: 0644]
lib/libstand/hammer2.c
lib/libstand/printf.c
lib/libstand/read.c
lib/libstand/stand.h
sbin/newfs_hammer2/newfs_hammer2.c
sys/boot/Makefile
sys/boot/common/boot2.h
sys/boot/common/help.common
sys/boot/common/loader.8
sys/boot/pc32/boot2/Makefile
sys/boot/pc32/boot2/boot2.c
sys/boot/pc32/libi386/biosdisk.c
sys/boot/pc32/loader/dloader.rc
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_ioctl.c