[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFE] Installing grub into an XFS partition
From: |
Keith Owens |
Subject: |
[RFE] Installing grub into an XFS partition |
Date: |
Thu, 16 Nov 2006 14:34:25 +1100 |
Please cc: me, I am not subscribed to bug-grub.
As we all know, you cannot install grub into an XFS partition because
the XFS superblock is in sector 0 of the partition. grub-install must
not overwrite sector 0 which means that you cannot use 'chainloader +1'
to boot a secondary grub menu from an XFS partition.
This is frustrating when testing multiple distributions in separate
partitions. It is so much easier to have a top level grub menu that
boots from the MBR and lists the available distributions, then uses
chainloader to boot from each distribution. Each distribution's
partition contains its own specific second level grub menu.
It turns out that this process can be made to work, even for an XFS
partitions :-
* Create a partition to contain the top level menu. menu.lst contains
a list of distributions and uses chainloader to boot from each
partition. MBR points at this top level menu. The partition can be
any format, and it can be as small as one cylinder.
* For partitions that do not use sector 0, do a normal grub-install
using that partition's local /boot and writing to sector 0 of the
partition. No change.
* The top level menu uses 'chainloader +1' for partitions when the
secondary stage1 is in sector 0. No change.
* For partitions that do use sector 0 (e.g. XFS), do grub-install using
that partition's local /boot. Instead of overwriting sector 0 of the
XFS partition, tell grub-install write to sector 0 of any partition
that is not being used as a secondary stage1. I use sector 0 of the
partition that contains the top level menu; its sector 0 is free
because the MBR contains the stage1 file for the top level menu. Say
you write to sector 0 of /dev/sda1.
grub-install --root-directory=/mnt/xfs /dev/sda1
* dd if=/dev/sda1 (say) bs=512 count=1 > /mnt/xfs/boot/grub/stage1.copy
* The top level menu uses 'chainloader (hd0,n)/boot/grub/stage1.copy'
for partitions when the secondary stage1 cannot be installed in
sector 0. IOW you chainload from a file instead of sector 0.
AFAICT, there is no requirement that _any_ secondary stage1 must be in
sector 0, it is just an historical convention. Writing the XFS stage1
to a spare sector then copying the result to a file in the XFS
filesystem works for me (TM).
Now for the RFE. Could grub-install be enhanced so it can optionally
write the updated stage1 data to a file instead of only being able to
install in sector 0 of a partition? That would remove the need to
write to a separate partition then dd the result to a file. IOW
grub-install --root-directory=/mnt/xfs /mnt/xfs/boot/grub/stage1.copy
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [RFE] Installing grub into an XFS partition,
Keith Owens <=