
I have a server that had 4 x 1.5TB disks installed in a RAID5 configuration (except /boot is a 'RAID1' across all 4 disks). One of the disks failed recently and so was replaced with a 3TB disk, and the goal is to replace the remaining 3 disks with 3TB disks to get more storage (holds Bacula backups so more storage = more online backup history). Being a 3TB disk I had to make it a GUID Partition Table, and aside from a clean install I did once where Debian installer just did everything for me, I've never used gpt before. I believe I'm supposed to make a partition called the BIOS boot partition... can I store data on here or is it separate to my existing /boot partition? I created such a partition and did grub-install /dev/sda but then on boot from that disk all I get is "GRUB _" (where _ is the flashing cursor). Any hints or links to good online resources would be appreciated. I've googled and can find a bunch of information about it but it's not working for me so I'm missing something somewhere... Thanks James

James Harper <james.harper@bendigoit.com.au> wrote:
Being a 3TB disk I had to make it a GUID Partition Table, and aside from a clean install I did once where Debian installer just did everything for me, I've never used gpt before. I believe I'm supposed to make a partition called the BIOS boot partition... can I store data on here or is it separate to my existing /boot partition? I created such a partition and did grub-install /dev/sda but then on boot from that disk all I get is "GRUB _" (where _ is the flashing cursor).
I haven't installed to a machine running UEFI myself, but if that's what it's using then you'll need to install the correct version of grub, e.g., grub-efi-amd64 rather than grub-pc. There is, as you note, a FAT32 partition involved; I assume you can place the kernel there in addition to all of the Grub files, or presumably the kernel can reside in a separate /boot partition. Grub itself, as I understand it, has to be loaded from the FAT32 partition and executed by EFI. If your machine is booting from legacy BIOS mode rather than EFI then you shouldn't need the FAT32 partition and you should be able to boot grub-pc rather than grub-efi. As mentioned, this is all based on what I've read in a couple of places. I don't have an EFI machine with which to work. It would be convenient if you could boot EFI and just use the FAT32 partition as /boot to hold both Grub and the kernel image.

On 2013-04-09 02:40, James Harper wrote:
I have a server that had 4 x 1.5TB disks installed in a RAID5 configuration (except /boot is a 'RAID1' across all 4 disks). One of the disks failed recently and so was replaced with a 3TB disk, and the goal is to replace the remaining 3 disks with 3TB disks to get more storage (holds Bacula backups so more storage = more online backup history).
Being a 3TB disk I had to make it a GUID Partition Table, and aside from a clean install I did once where Debian installer just did everything for me, I've never used gpt before. I believe I'm supposed to make a partition called the BIOS boot partition... can I store data on here or is it separate to my existing /boot partition? I created such a partition and did grub-install /dev/sda but then on boot from that disk all I get is "GRUB _" (where _ is the flashing cursor).
Any hints or links to good online resources would be appreciated. I've googled and can find a bunch of information about it but it's not working for me so I'm missing something somewhere...
Hi James, I've long ago given up on GRUB, and now use Extlinux. I recently built a Debian Wheezy system with a single 250GB disk, and then replaced that with 4 3TB disks which had /boot in RAID1 and the rest of the space consumed by a single RAID10 partition containing everything else inside LVM. I successfully migrated the system from the 250GB disk to the new RAIDed disks with minimal pain. I have vaguely documented my setup, and supplimented it with information from Trent Buck: http://www.cyber.com.au/~twb/snarf/extlinux.page http://www.cyber.com.au/~twb/snarf/extlinux-gpt.page The steps I followed, mostly, were: | # For all 4 disks | for f in /dev/sd[abcd] | do | # Give them a GPT label, 256MiB /boot, <rest> LVM space | parted -a optimal -s "$f" mkl g mkpart boot 0% 256Mi set 1 r on mkpart lvm 256Mi 100% set 2 r on | # Set the GPT "boot" bit on each disk | sgdisk "$f" -A 1:set:2 | # Install the syslinux/extlinux GPT MBR on each disk | cat /usr/lib/syslinux/gptmbr.bin > "$f" | done | # Build the 2 RAID arrays. Note the metadata versions. Extlinux | # *requires* 0.90 (metadata at end) so it can find itself, and Linux | # should have 1.2 (metadata at start) for the last array to prevent it | # from seeing metadata at the end and thinking the whole *disk* is one | #big RAID array and getting very confused. | mdadm -C /dev/md0 -e 0.90 -n 4 -l 1 -b internal /dev/sd[abcd]1 | mdadm -C /dev/md1 -e 1.2 -n 4 -l 10 -b internal /dev/sd[abcd]2 * Copy over any data, generating VGs/LVs and formatting/dd-ing as necessary. * Ensure extlinux config is correct (see extlinux.page above) * Chroot into system on new disks, and make any necessary mdadm.conf changes, then re-generate the ramdisk so those changes are propagated. And... I think that's it. I realise these instructions don't exactly fit your use case, but hopefully they give you some idea of what's required, and in any case I can't be much more help if you want to stick with GRUB. Good luck! -- Regards, Matthew Cengia

James Harper <james.harper@bendigoit.com.au> writes:
everything for me, I've never used gpt before. I believe I'm supposed to make a partition called the BIOS boot partition...
With BIOS/GPT/grub, you need a 1MB grub kludge partition. This is not needed for BIOS/GPT/extlinux. I presume it's not needed for EFI/GPT/grub either, but as Jason notes, you already have an EFI kludge partition in that case. extlinux 5.x allegedly boots off EFI; I have not tried this.
can I store data on here or is it separate to my existing /boot partition?
I don't know if grub can deal correctly with a mix of BIOS/MSDOS and BIOS/GPT in the same machine. It *probably* can, but I wouldn't want to rely on it. If you had RAID1, I'd say get booting working on the new disk, then you know when you chuck out the pre-GPT disks, you'll be fine. But you only have one GPT disk, so you can't remove the msdos disks long enough to be sure that grub is booting purely off BIOS/GPT disks. If budget isn't an issue, I'd say fuck it, just provision a new array entirely on BIOS/GPT (or EFI/GPT) disks, and move all the data across. If budget is an issue, maybe you should set up a /boot on a USB key, so that you have a fallback in case the wrong disks go tits-up.
participants (4)
-
James Harper
-
Jason White
-
Matthew Cengia
-
trentbuck@gmail.com