Dec 4, 2009, 9:35 AM
Post #24 of 30
Lie Ryan posted on Fri, 04 Dec 2009 17:14:38 +1100 as excerpted:
> Don't know whether such precaution is necessary, but I kept a small FAT
> (actually 8G is not so small) partition in my external harddisk that
> contains drivers for ntfs-3g for the platforms that I may meet at the
> middle of the road. It saved me a couple of times when I happen to be in
> a computer (or Gentoo Live CD) that can't read (or can only read) NTFS.
I mentioned in another post (I /think/ to this list??) that I recently
upgraded to GPT partitioning, using gdisk. GPT has several mechanisms to
help ensure boot-time compatibility and that no legacy MBR based
partition editor overwrites things accidentally.
1) There's normally what's called a "protective MBR partition", that
makes it look to legacy MBR partition table editors like the entire disk
(well, to the 2-TiB boundary which is as far as they see) is a single
partition of unknown type. The idea here is to prevent accidentally
erasing the GPT partition info.
2) For legacy BIOS based booting, the first partition (typically 200 KB
or so, I made mine a full 1024 KiB, 1 MiB, just to simplify things, but
it sure felt strange making a partition that small!) should be reserved
as a BIOS boot partition -- basically, it's there to give certain legacy
BIOS bootloaders a spot to put their second stages, etc, without
overwriting anything else.
3) For newer EFI based booting, the standard specifies an EFI system
partition, FAT32 formatted, of a hundred MB or so. For non-portable
disks, only one of the two, either a BIOS boot partition (#2 above) or an
EFI system partition, need be present, but I went ahead and put both on
mine, even tho my present system doesn't really use either one. The EFI
system partition has its own registered partition type, so can be
anywhere on the disk, up to the standard 128 partitions that can fit in
the standard minimum GPT spec (thus, 128 partitions is the standard,
since that's what fits in the minimum spec, and few folks have reason for
more than that, tho it's an option available in the spec), but I put it
as partition 2, just because. I made mine 127 MiB, so the first two
partitions combined are exactly 128 MiB, 1/4 GiB.
On a full EFI boot system, this EFI system partition can contain the
drivers necessary to access any of the other partitions and load the OS.
EFI includes its own initial boot loader spec, and OSs can drop drivers
here as necessary to chain-load their own loader on their own filesystems.
As mentioned, the Linux kernel is natively GPT/EFI aware as long as the
option is compiled in. According to the documentation, GRUB2 is natively
GPT/EFI aware and will use the BIOS boot partition for its second stage
and related files. GRUB (legacy, grub1, the 0.97-rX versions Gentoo
defaults to at present) isn't natively GPT aware, but there are patches
floating around that add the capability, and Gentoo includes those
patches, so there's no problem with GRUB1 either, tho it ignores the BIOS
boot partition as well as the EFI system partition, placing its second
stage in its boot partition, if there's no room to embed it, instead. So
one could accurately say GRUB-legacy with the GPT patches only partly
supports GPT, it'll boot on it and won't damage it when installing, but
won't make use of the reserved BIOS boot partition as GRUB2 does.
Apparently MS supports GPT/EFI from Vista onward, and of course, Apple
does, as they were one of the first on the EFI bandwagon, developing it
4) As mentioned above, EFI speced systems don't have BIOS, per se, any
more, EFI replaces it, and don't use conventional boot loaders, either,
as the EFI spec has its own. I don't know enough about EFI systems to be
sure, but given what I know of computer systems in general, I expect that
ultimately, EFI's boot loader will probably simply chain-load the OS
native boot loader, in many cases, much as grub does with the MS
So FWIW, your "small" 8 gig partition for boot-time compatibility
purposes is sort of already built into the GPT/EFI spec. That would
contain all you needed to boot the kernel, and if you chose not to build
them into your kernels, your ntfs and other kernel modules would be
loaded from /boot as standard initramfs/initrd, if necessary, or from the
standard /lib/modules/<kern-ver> subdir, if not necessary to load /.
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman