unlikely secondary GPT LBA
Joan Picanyol i Puig
lists-freebsd at biaix.org
Tue Jul 27 17:48:12 UTC 2010
[please honour MFT, not subscribed]
Hi,
Trying to setup a 8.1-RELEASE system such that:
1. glabeled discs
2. two of this previous discs are gmirrored
3. this mirror is gparted
Taking order into account I go like:
#!/bin/sh
glabel label -v escota /dev/da1
gmirror label -v system /dev/label/escota
# create GPT partition table
gpart create -s GPT /dev/mirror/system
# add boot partition, aligning it's end to 1MB boundary
gpart add -b 64 -s 1984 -t freebsd-boot -l boot /dev/mirror/system
# install boot code unto boot partition
gpart bootcode -p /boot/gptboot -i 1 mirror/system
# create 2GB root partition
gpart add -b 2048 -s 4194304 -t freebsd-ufs -l std-root mirror/system
# create 10GB partition
gpart add -b 4196352 -s 20971520 -t freebsd-ufs -l apps mirror/system
# create 10GB partition
gpart add -b 25167872 -s 20971520 -t freebsd-ufs -l std-var mirror/system
Things kind of make sense, because I store the last 2MB of my disk at
every step with 'dd if=/dev/da1 of=/tmp/foobar oseek=488255488' and then
I can see how it's being altered:
charlie# cmp /tmp/da1.zeroed /tmp/da1.labeled
/tmp/da1.zeroed /tmp/da1.labeled differ: char 2096641, line 1
charlie# cmp /tmp/da1.labeled /tmp/da1.mirrored
/tmp/da1.labeled /tmp/da1.mirrored differ: char 2096129, line 1
charlie# cmp /tmp/da1.mirrored /tmp/da1.gpted
/tmp/da1.mirrored /tmp/da1.gpted differ: char 2095617, line 1
charlie# cmp /tmp/da1.gpted /tmp/da1.gpted.full
/tmp/da1.gpted /tmp/da1.gpted.full differ: char 2079233, line 1
So far so good: glabel & gmirror each take one sector for their
metadata, the secondary GPT header takes another sector, and once
partitioned we use an extra 16Kb.
However, gpart is not happy:
GEOM: da1: the secondary GPT table is corrupt or invalid.
GEOM: da1: using the primary only -- recovery suggested.
And to my surprise I find:
Primary GPT header:
00000200 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00 |EFI PART....\...|
00000210 7c 89 1f 33 00 00 00 00 01 00 00 00 00 00 00 00 ||..3............|
00000220 fd 3f 1a 1d 00 00 00 00 22 00 00 00 00 00 00 00 |.?......".......|
00000230 dc 3f 1a 1d 00 00 00 00 b8 69 7f ec cd 98 df 11 |.?.......i......|
00000240 8d 0b 00 30 48 f0 15 52 02 00 00 00 00 00 00 00 |...0H..R........|
00000250 80 00 00 00 80 00 00 00 97 02 0f ce 00 00 00 00 |................|
00000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Secondary GPT header:
00004000 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00 |EFI PART....\...|
00004010 6d a1 f5 62 00 00 00 00 fd 3f 1a 1d 00 00 00 00 |m..b.....?......|
00004020 01 00 00 00 00 00 00 00 22 00 00 00 00 00 00 00 |........".......|
00004030 dc 3f 1a 1d 00 00 00 00 b8 69 7f ec cd 98 df 11 |.?.......i......|
00004040 8d 0b 00 30 48 f0 15 52 dd 3f 1a 1d 00 00 00 00 |...0H..R.?......|
00004050 80 00 00 00 80 00 00 00 97 02 0f ce 00 00 00 00 |................|
00004060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
I must be misunderstanding something, because I see this as gpart
deciding that my secondary GPT header is at LBA FD3F1A1D00000000 which
way past the end of my disk.
What am I missing?
--
pica
More information about the freebsd-geom
mailing list