Alternate GPT is invalid, using primary GPT. On /dev/zd***

Oct 4, 2019
33
5
13
39
I stumbled upon these two Error messages when examining another thing in my dmesg today:

[ 39.908314] Alternate GPT is invalid, using primary GPT.
[ 39.908337] zd128: p1 p2 p3 p4
[ 40.536545] Alternate GPT is invalid, using primary GPT.
[ 40.536569] zd192: p1 p2 p3

First of all; what are the zdXXX block devices? They do not correspond to any of my physical drives. I just assumed they were virtual devices needed by the OS and created upon boot, but now I'm not so sure since the error persist even if i reboot.

Secondly; how do I go about repairing the secondary GPTs of these devices?
The guides I've found tell me to use gdisk on the device, then "p", then "v", then simply writing "w" to the disk without changing anything.
 
Last edited:
Oct 4, 2019
33
5
13
39
Here is the output from gdisk p and v on zd128.
Will simply writing the partition table to disk before quitting gdisk solve the problem? I'm concerned about the "Partition(s) in the protective MBR are too big for the disk!" part.

root@proxmox:~# gdisk
GPT fdisk (gdisk) version 1.0.6

Type device filename, or press <Enter> to exit: /dev/zd128
Warning: Partition table header claims that the size of partition table
entries is 0 bytes, but this program supports only 128-byte entries.
Adjusting accordingly, but partition table may be garbage.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.

Warning! Main and backup partition tables differ! Use the 'c' and 'e' options
on the recovery & transformation menu to examine the two tables.

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: ERROR

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************

Command (? for help): p
Disk /dev/zd128: 536870912 sectors, 256.0 GiB
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 6C29A581-13B4-4A32-BEEB-C73751D5450F
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 536870878
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number Start (sector) End (sector) Size Code Name
1 2048 1085439 529.0 MiB 2700 Basic data partition
2 1085440 1290239 100.0 MiB EF00 EFI system partition
3 1290240 1323007 16.0 MiB 0C01 Microsoft reserved ...
4 1323008 536868863 255.4 GiB 0700 Basic data partition

Command (? for help): v

Caution: The CRC for the backup partition table is invalid. This table may
be corrupt. This program will automatically create a new backup partition
table when you save your partitions.

Partition(s) in the protective MBR are too big for the disk! Creating a
fresh protective or hybrid MBR is recommended.

Identified 2 problems!
 
Last edited:
Oct 4, 2019
33
5
13
39
Turns out /dev/zd128 was the virtual disk of my only windows guest.
Doing: gdisk -> p -> v -> w
fixed the issue and eliminated the error message. Windows guest boots and runs fine.
 
Oct 4, 2019
33
5
13
39
To anyone interested:
The windows guest ran fine, then the proxmox server's console started stating that there was irrecoverable data corruption in the volume and specifically the subvolume of this vm and that the file needed to be removed.

I removed the subvolume, but the error persisted, referred to by the inode in question.

Running zpool scrub revealed several other points of corruption in different parts of the zpool.

I ended up replacing the entire volume with a backup to avoid data loss. Luckily it was only 24 hours old... Then removing the VM and recreating it from scratch as none of my backups/snapshots were without this error.

I'd strongly advice against running gdisk -> p -> v -> w if the output from "v" contains:
Partition(s) in the protective MBR are too big for the disk! Creating a
fresh protective or hybrid MBR is recommended.
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get your own in 60 seconds.

Buy now!