Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Slawa Olhovchenkov                   2:5030/500     28 Oct 2007  18:25:22
 To : All
 Subject : Вести с полей
 -------------------------------------------------------------------------------- 
 
 
 jhb         2007-10-24 21:33:00 UTC
 
   FreeBSD src repository
 
   Modified files:
     sys/sys              gpt.h
     lib/libstand         Makefile
     sbin/gpt             Makefile add.c gpt.8 gpt.c gpt.h show.c
     sys/boot/common      ufsread.c
     sys/boot/i386        Makefile
     sys/boot/i386/gptboot Makefile gptboot.c
     sys/boot/i386/libi386 biosdisk.c devicename.c
     sys/geom/part        g_part.c g_part.h g_part_gpt.c
   Added files:
     sbin/gpt             boot.c
     sys/boot/i386/gptboot gptldr.S
     sys/boot/i386/pmbr   Makefile pmbr.s
   Log:
   First cut at support for booting a GPT labeled disk via the BIOS bootstrap
   on i386 and amd64 machines.  The overall process is that /boot/pmbr lives
   in the PMBR (similar to /boot/mbr for MBR disks) and is responsible for
   locating and loading /boot/gptboot.  /boot/gptboot is similar to /boot/boot
   except that it groks GPT rather than MBR + bsdlabel.  Unlike /boot/boot,
   /boot/gptboot lives in its own dedicated GPT partition with a new
   "FreeBSD boot" type.  This partition does not have a fixed size in that
   /boot/pmbr will load the entire partition into the lower 640k.  However,
   it is limited in that it can only be 545k.  That's still a lot better than
   the current 7.5k limit for boot2 on MBR.  gptboot mostly acts just like
   boot2 in that it reads /boot.config and loads up /boot/loader.  Some more
   details:
   - Include uuid_equal() and uuid_is_nil() in libstand.
   - Add a new 'boot' command to gpt(8) which makes a GPT disk bootable using
     /boot/pmbr and /boot/gptboot.  Note that the disk must have some free
     space for the boot partition.
     - This required exposing the backend of the 'add' function as a
       gpt_add_part() function to the rest of gpt(8).  'boot' uses this to
       create a boot partition if needed.
   - Don't cripple cgbase() in the UFS boot code for /boot/gptboot so that
     it can handle a filesystem > 1.5 TB.
   - /boot/gptboot has a simple loader (gptldr) that doesn't do any I/O
     unlike boot1 since /boot/pmbr loads all of gptboot up front.  The
     C portion of gptboot (gptboot.c) has been repocopied from boot2.c.
     The primary changes are to parse the GPT to find a root filesystem
     and to use 64-bit disk addresses.  Currently gptboot assumes that the
     first UFS partition on the disk is the / filesystem, but this algorithm
     will likely be improved in the future.
   - Teach the biosdisk driver in /boot/loader to understand GPT tables.
     GPT partitions are identified as 'disk0pX:' (e.g. disk0p2:) which is
     similar to the /dev names the kernel uses (e.g. /dev/ad0p2).
   - Add a new "freebsd-boot" alias to g_part() for the new boot UUID.
 
   MFC after:      1 month
   Discussed with: marcel (some things might still change, but am committing
                           what I have so far)
 
 From: John Baldwin <jhb@freebsd.org>
 
 A quick way to use it is thus:
 
 gpt create disk0
 gpt boot disk0
 -- use gpt add to add filesystems
 -- newfs filesystems
 -- populate filesystems
 
 Some other notes:
 - gptboot can not distinguish SCSI vs ATA disks since it has no bsdlabel to
 peek into.  However, since the loader reads /etc/fstab to determine the root
 device, this doesn't actually matter.
 - Currently the algorithm to find / is not very optimal.  I've been talking
 some with Marcel about this so this will probably change.
 - ZFS + GPT booting shouldn't be that difficult to do now.  It basically
 requires two things:
   1) A ZFS file system driver in libstand.
   2) A gptboot that can read ZFS.  This could either be a separate gptboot.zfs
      or gptboot could be expanded to read both UFS and ZFS.  Right now gptboot
      is a little over 8k and the default size of the boot partition is 64k,
      so there's a good bit of room there for read-only ZFS support.
 - All the I/O for GPT disks uses EDD LBA with no C/H/S crap.  Ever.
 ... Генеpальный спонсоp апокалипсиса - компания Microsoft
 --- GoldED+/BSD 1.1.5
  * Origin:  (2:5030/500)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Вести с полей   Slawa Olhovchenkov   28 Oct 2007 18:25:22 
 gptboot (Re: Вести с полей)   Valentin Nechayev   28 Oct 2007 23:05:18 
 gptboot (Re: Вести с полей)   Slawa Olhovchenkov   28 Oct 2007 23:51:24 
 Re: gptboot (Re: Вести с полей)   Valentin Nechayev   28 Oct 2007 23:57:47 
 gptboot (Re: Вести с полей)   Slawa Olhovchenkov   29 Oct 2007 00:08:24 
 gptboot (Re: Вести с полей)   Vlad Gnatov   29 Oct 2007 00:27:02 
 Re: gptboot (Re: Вести с полей)   Valentin Nechayev   29 Oct 2007 10:52:59 
Архивное /ru.unix.bsd/22214724a050.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional