Date: Mon, 3 Jun 2013 00:07:44 +0200 From: Alban Hertroys <haramrae@gmail.com> To: Jeremy Chadwick <jdc@koitsu.org> Cc: Warren Block <wblock@wonkity.com>, Kimmo Paasiala <kpaasial@gmail.com>, freebsd-stable@freebsd.org Subject: Re: Corrupt GPT header on disk from twa array - fixable? Message-ID: <17D7EC66-768B-462F-97DC-2550FDE1AB59@gmail.com> In-Reply-To: <20130602154832.GA23072@icarus.home.lan> References: <EA2DCEC2-8B07-434B-8B60-8AB15B3788F7@gmail.com> <7ABBEE71A96E411793E41BD97DA72BCE@multiplay.co.uk> <CA%2B7WWSe7O9%2Bxq3UEJ%2B%2BtM1d3tphf7pWU=n4DoQY8XZq39RRScQ@mail.gmail.com> <2943982C-719E-45D0-9B26-43B725738F83@gmail.com> <alpine.BSF.2.00.1306020834050.8625@wonkity.com> <3659A498-F0EA-4AF3-80EA-40038DCA9CC7@gmail.com> <20130602154832.GA23072@icarus.home.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 2, 2013, at 17:48, Jeremy Chadwick <jdc@koitsu.org> wrote: > On Sun, Jun 02, 2013 at 05:12:48PM +0200, Alban Hertroys wrote: >>=20 >> On Jun 2, 2013, at 16:46, Warren Block <wblock@wonkity.com> wrote: >>=20 >>> On Sun, 2 Jun 2013, Alban Hertroys wrote: >>>=20 >>>> On Jun 2, 2013, at 16:12, Kimmo Paasiala <kpaasial@gmail.com> = wrote: >>>>>=20 >>>>> Looking at the gpart(8) output it seems that only 20GBs of the = disk is >>>>> recognized by the disk driver but the GPT table still shows the = full >>>>> capacity 910GB. I'd say that the GPT table is in fact correct and = if >>>>> you can somehow get the disks to be recognized with full capacity = they >>>>> should be usable as they are. What does dmesg(8) say about the = disks? >>>>=20 >>>> =46rom dmesg: >>>>=20 >>>> ada2 at ahcich2 bus 0 scbus2 target 0 lun 0 >>>> ada2: usb_alloc_device: set address 2 failed (USB_ERR_IOERROR, = ignored) >>>> <ST3500418AS CC34> ATA-8 SATA 2.x device >>>> usbd_setup_device_desc: getting device descriptor at addr 2 failed, = USB_ERR_IOERROR >>>> ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) >>>> ada2: Command Queueing enabled >>>> ada2: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C) >>>> ada2: Previously was known as ad8 >>>> ada3 at ahcich3 bus 0 scbus3 target 0 lun 0 >>>> ada3: <ST3500418AS CC34> ATA-8 SATA 2.x device >>>> ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) >>>> ada3: Command Queueing enabled >>>> ada3: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C) >>>> ada3: Previously was known as ad10 >>>> ada4 at ahcich4 bus 0 scbus4 target 0 lun 0 >>>> ada4: <Hitachi HDS721010CLA332 JP4OA39C> ATA-8 SATA 2.x device >>>> usbd_req_re_enumerate: addr=3D2, set address failed! = (USB_ERR_IOERROR, ignored) >>>> ada4: 300.000MB/s transfers (SATA 2.x, usbd_setup_device_desc: = getting device descriptor at addr 2 failed, USB_ERR_IOERROR >>>> UDMA6, PIO 8192bytes) >>>> ada4: Command Queueing enabled >>>> ada4: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C) >>>> ada4: Previously was known as ad12 >>>> ada5 at ahcich5 bus 0 scbus5 target 0 lun 0 >>>> ada5: <WDC WD1002FAEX-00Z3A0 05.01D05> ATA-8 SATA 3.x device >>>> ada5: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes) >>>> ada5: Command Queueing enabled >>>> ada5: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C) >>>> ada5: Previously was known as ad14 >>>> SMP: AP CPU #1 Launched! >>>> Timecounter "TSC-low" frequency 13371081 Hz quality 800 >>>> GEOM: ada2: the secondary GPT header is not in the last LBA. >>>> GEOM: ada3: the secondary GPT header is not in the last LBA. >>>> GEOM_MIRROR: Device mirror/boot launched (2/2). >>>> GEOM_MIRROR: Device mirror/swap launched (2/2). >>>> GEOM_MIRROR: Device mirror/root launched (2/2). >>>> GEOM: ada4: the secondary GPT header is not in the last LBA. >>>> GEOM: ada5: the secondary GPT header is not in the last LBA. >>>=20 > I think you're missing what Warren is telling you, because you have > multiple things going on/complexities to deal with simultaneously. >=20 > You haven't provided any details about your gmirror setup either. All > we know at this point: >=20 >>>> GEOM_MIRROR: Device mirror/boot launched (2/2). >>>> GEOM_MIRROR: Device mirror/swap launched (2/2). >>>> GEOM_MIRROR: Device mirror/root launched (2/2). >=20 > My gut feeling is ada2 and ada3 make up the mirror, and the mirror is = at > the disk level (ada2 and ada3). I'm basing this on past evidence > presented in the thread, and having to make assumptions. No "gmirror > status" output =3D we have to make assumptions. The gmirror is actually on ada0+ada1, and not at all on the disks that I = copied the dmesg information of. Those disks weren't in the hardware = RAID array of the old server, and the gmirror isn't on the disks that = were in that RAID controller. I took care to keep those separate until I = can erase them and add them as "normal" disks. > Now, what Warren is telling you: gmirror + GPT do not play well > together. This is a design flaw** on the part of gmirror. If you = want > to use gmirror with disks using GPT, your only solutions are to mirror > the partitions (adaXpX) and not the disk (adaX), which has its own set > of caveats, or to use the MBR scheme (and if these are 4K sectors = disks, > or you plan on using those, you're even more screwed). I didn't know that, but just incidentally mirrored my partitions on ada0 = and ada1 instead of the entire disks. For the sake of removing the = confusion from this thread: # gmirror status Name Status Components mirror/boot COMPLETE ada0p1 (ACTIVE) ada1p1 (ACTIVE) mirror/swap COMPLETE ada0p2 (ACTIVE) ada1p2 (ACTIVE) mirror/root COMPLETE ada0p3 (ACTIVE) ada1p3 (ACTIVE) > The errors you see on ada4 and ada5 about the backup GPT header can be > dealt with in a different manner. >=20 > But for (again, assuming) ada2 and ada3, you will see GPT "backup = header > corruption" messages indefinitely because of the above flaw. I think that those messages actually stem from the same issue as I'm = having with the (hardware-)RAID volumes on ada4 and ada5: Apparently the = RAID controller reserved some space at the end of those volumes to store = information about the volume layout, very similar to how geom does that. The geom labels that I put on the partitions inside those volumes are = therefore not in the last sector of the disk, but they were in the last = sector of each volume while the disks were still attached to the = controller. Those messages on ada2 & 3 don't really bother me. I can read what's on = those disks the way they are (unlike the second volume on disks ada4 & = 5). Once I'm confident that I don't need anything that's on them = anymore, they'll be repartitioned and the problem will be gone. Alban Hertroys -- If you can't see the forest for the trees, cut the trees and you'll find there is no forest.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17D7EC66-768B-462F-97DC-2550FDE1AB59>