I recently got 3 new disks, and am setting them up now that I've figured out how I want to RAID them together, and what you can boot from. (for the record, turns out you can boot from almost anything, even a RAID10,f2 of 2 disks, or a RAID10,n2 of 3 disks, with GRUB2. I tested on another machine before putting the disks into my main machine, so I could do stuff without rebooting my main machine.) Anyway, seemed like a golden opportunity to test the new sfdisk. I partitioned one with parted, then created a BIOS boot partition (from sector 40 to 2047), fixed the partition types and sorted the partition table to be in disk order with gdisk. Then I tried to copy the partition table from that one to the other two. I got an error from sfdisk on trying to apply the plan it printed. # the disk I partitioned manually: $ sudo /usr/local/src/util-linux/sfdisk -d /dev/sde | tee tosh-partitions.sfdisk label: gpt label-id: 7E471862-5089-4C54-A3BC-722ADD08808A device: /dev/sde unit: sectors /dev/sde1 : start= 40, size= 2008, type=21686148-6449-6E6F-744E-656564454649, uuid=01F40706-97E6-43D1-80D3-0EA85BB5E8FD, name="BIOS boot partition" /dev/sde2 : start= 2048, size= 30720000, type=A19D880F-05FC-4D3B-A006-743F0F84911E, uuid=9898E8B2-C930-4E6E-826A-4D7305793E6A /dev/sde3 : start= 30722048, size= 122880000, type=A19D880F-05FC-4D3B-A006-743F0F84911E, uuid=C0CF3D7C-A170-4E1E-9169-9AB4A4FF3164 /dev/sde4 : start= 153602048, size= 820695040, type=A19D880F-05FC-4D3B-A006-743F0F84911E, uuid=F9258FDA-14A3-4B72-B367-F3B1B244C407 /dev/sde5 : start= 974297088, size= 2457600, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=8EF2E18C-8E3D-41A3-86AF-EE4FDA7B103D /dev/sde6 : start= 976754688, size= 4883777536, type=A19D880F-05FC-4D3B-A006-743F0F84911E, uuid=265297FD-E7AA-484F-BEC2-D03C385E75DD # one of the other two disks: $ sudo /usr/local/src/util-linux/sfdisk /dev/sdj < tosh-partitions.sfdisk Checking that no-one is using this disk right now ... OK Disk /dev/sdj: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 74559404-2E86-49E7-8B30-219F09264C1E Old situation: Device Start End Sectors Size Type /dev/sdj1 2048 572524543 572522496 273G Microsoft basic data /dev/sdj2 572524544 868653055 296128512 141.2G Linux filesystem /dev/sdj3 868653056 904501247 35848192 17.1G Linux filesystem /dev/sdj4 40 2047 2008 1004K BIOS boot /dev/sdj5 904501248 927029247 22528000 10.8G Linux filesystem /dev/sdj6 927029248 945461247 18432000 8.8G Linux filesystem Partition table entries are not in disk order. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Created a new GPT disklabel (GUID: 7E471862-5089-4C54-A3BC-722ADD08808A). Sector 40 already used. Failed to add partition: Numerical result out of range Leaving. Removing the boot partition from the plan before feeding it to sfdisk makes it work. (4k aligned partition in the first 1MiB before the first aligned-to-1MiB partition that gparted creates. See https://en.wikipedia.org/wiki/BIOS_boot_partition). Am I missing something? Even -f didn't work. I don't have sfdisk from git HEAD (14160b7bd08f54f9...) installed; I'm just running it from /usr/local/src on Ubuntu 14.10, in case that helps explain anything. Does sfdisk use more space for its GPT than other tools, like gdisk or gparted? After making a new GPT partition table with either of those tools, I could make a new partition starting as early as sector 34 (according to gdisk). I make my boot partition start at sector 40 just so it's 4k aligned. (It's only written by grub-install, not the usual update-grub on kernel updates, so it's not like it matters if it's aligned anyway, but still.) Oh that's weird. Running gdisk on the sfdisk-partitioned disk doesn't let me create a partition before the one at 1MiB (sector 2048). Does sfdisk make the partition table itself consume the full first 1MiB of the disk? And BTW, yes I tested booting Linux with GRUB2 on disks with the bios_grub partition from sector 40-2047. I don't think I ever tried having it anywhere else. I never had a problem with it in my experiments with GRUB reading md RAID devices. (GRUB can read basically anything except RAID0. The machine hard resets when I try that... It has no trouble with RAID10,f2, or even RAID10 on 3 disks, so it can read multiple disks.) I'm not an expert, so IDK if there's some reason it's reasonable to reject a config like this, but other tools have no problem creating and using it (except gparted, with align to 1MiB or cyclinder as the only options, but it doesn't even let you set the partition type correctly for md on GPT.) -- #define X(x,y) x##y Peter Cordes ; e-mail: X(peter@cor , des.ca) "The gods confound the man who first found out how to distinguish the hours! Confound him, too, who in this place set up a sundial, to cut and hack my day so wretchedly into small pieces!" -- Plautus, 200 BC
Attachment:
signature.asc
Description: Digital signature