Hi, mick.crane wrote: > root@courgette:/home/mick# gdisk /dev/sda > ... > Caution: invalid backup GPT header, but valid main header; regenerating > backup header from main header. > ... > OK; writing new GUID partition table (GPT) to /dev/sda. > ... > The operation has completed successfully. > ... > root@courgette:/home/mick# gdisk /dev/sda > ... > Warning! One or more CRCs don't match. You should repair the disk! > Main header: OK > Backup header: ERROR > Main partition table: OK > Backup partition table: OK
That's strange. Can it be that the last block of the disk is bad ? Please post the content of that block. Refering to info from your initial post > Units: sectors of 1 * 512 = 512 bytes > Disk /dev/sda: 111.79 GiB, 120034123776 bytes, 234441648 sectors this would be sudo dd bs=512 count=1 if=/dev/sda skip=234441647 | \ od -t x1 >/tmp/gpt_backup_header.hex The header is not supposed to contain private information beyond what you already posted. Background info: The header CRC consists of 4 bytes at offset 16 and covers the first 92 bytes of the block while the CRC field is still 0. In my cheat sheet for boot sectors i read that it has generating polynomial 0x104c11db7 and seed value 0x46af6449. The result gets bit-wise swapped (0 <-> 31, 1 <-> 30, ...), exored with 0xffffffff, and stored as little-endian number. Probably one can get it by cksum(1) out of coreutils. According to Wikipedia it is used by an impressive list of standards. See the first "CRC-32" under "Polynomial representations" of https://en.wikipedia.org/wiki/Cyclic_redundancy_check (If not, then i plan to rip the function iso_crc32_gpt() out of libisofs: https://sources.debian.org/src/libisofs/1.5.6.pl01-1.1/libisofs/system_area.c#L2575 Its implementation matches CRC tutorials in the web. Other implementations are in https://sources.debian.org/src/gdisk/1.0.10-2/crc32.cc?hl=32#L32 https://sources.debian.org/src/syslinux/3%3A6.04~git20190206.bf6db5b4%2Bdfsg1-3.2/utils/isohybrid.c#L765 Both are table driven. Fast but somewhat uneducational. ) Have a nice day :) Thomas

