cvs commit: src/sbin/gpt Makefile boot.c gpt.c gpt.h

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Jul 29 17:48:37 PDT 2008


dillon      2008/07/29 17:45:26 PDT

DragonFly src repository

  Modified files:
    sbin/gpt             Makefile gpt.c gpt.h 
  Added files:
    sbin/gpt             boot.c 
  Log:
  Add a terrible hack to GPT which allows non-EFI BIOSes to boot from it.
  With a freshly made gpt on a disk you can run 'gpt boot da0' (specifying
  the correct whole-disk name) and GPT will do the following:
  
  * It will create a 100MB partition #0 in the GPT
  
  * It will fake up a slice 1 in the PMBR for the BIOS and the loader that
    aliases partition #0 in the GPT.
  
  The BIOS and loader will see a bootable slice 1 while the kernel, once
  booted, will see a GPT.  This can cause confusion because the kernel
  will NOT see the fake slice 1 any more, and the partition number in the
  GPT of the boot partition 0 (aka da0s0).
  
  The boot partition (da0s0 from the point of view of the kernel) needs
  to have a 32 bit disklabel and a UFS filesystem in da0s0a which contains
  the kernel image and boot sub-directory.  In the boot sub-directory the
  loader.conf file must contain a line that points to the root mount, which
  say you may have created with gpt add as partition #1.
  
  Older kernels may require the root mount to also be in a disklabel, so you
  might have to put a 32 or 64 bit disklabel in partition #1 as well.
  This requirement will be removed soon relative to this commit (since the
  idea with GPT is to not have to use disklabels).
  
      vfs.root.mountfrom="ufs:ad0s1a"
      vfs.root.mountfrom="ufs:ad0s1"
  
  Revision  Changes    Path
  1.2       +1 -1      src/sbin/gpt/Makefile
  1.5       +2 -1      src/sbin/gpt/gpt.c
  1.2       +1 -0      src/sbin/gpt/gpt.h


http://www.dragonflybsd.org/cvsweb/src/sbin/gpt/Makefile.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/gpt/gpt.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/gpt/gpt.h.diff?r1=1.1&r2=1.2&f=u





More information about the Commits mailing list