raid(6)의 모든 2TB 디스크를 4TB 디스크로 교체했는데 mdadm --grow /dev/md0 --size=max
fdisk에서 다음 오류를 보고합니다. The backup GPT table is corrupt, but the primary appears OK, so that will be used.
gdisk가 더 무섭습니다.
root@nas:~# gdisk /dev/md0
GPT fdisk (gdisk) version 0.8.10
Warning! Read error 27; strange behavior now likely!
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! Error 27 reading partition table for CRC check!
Warning! One or more CRCs don't match. You should repair the disk!
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.
****************************************************************************
팀을 원래 크기로 복원하면 문제가 해결되었습니다. fdisk 및 gdisk의 이러한 오류에 대해 걱정해야 합니까? 올바른 접근 방식은 무엇입니까?
답변1
The backup GPT table is corrupt, but the primary appears OK, so that will be used
이것은 예상됩니다. 백업 GPT 테이블은 디스크 끝에 있습니다. 디스크를 늘리거나 줄이면 그에 따라 엔드밀이 이동하므로 fdisk
백업된 GPT 테이블을 더 이상 찾을 수 없습니다.
fdisk 및 gdisk의 이러한 오류에 대해 걱정해야 합니까? 올바른 접근 방식은 무엇입니까?
기본 GPT 테이블은 일반 작업에 사용되므로 이는 무해합니다. 그래도 백업 테이블이 있다는 것은 좋은 일이므로 다시 생성해야 합니다. 를 사용하고 gdisk
현재 파티션 테이블을 수정하지 말고 w
디스크에 쓰기(명령)만 하면 됩니다. 이 작업을 수행하면 백업 GPT도 다시 작성되므로 더 이상 문제가 발생하지 않습니다 gdisk
.
답변2
문제는 32비트 커널을 사용하는 것과 관련이 있습니다. 버전 4 커널에서 32비트 커널에 대해 액세스 가능한 최대 RAID 크기는 RealSize 모듈로 16TiB인 반면, 버전 5에서는 최대 크기가 16TiB보다 약간 작습니다.
따라서 16TiB가 초과되면 파티셔닝 소프트웨어는 디스크 끝에 저장된 보조 파티션 테이블을 읽거나 쓸 수 없으며 오류 27이 발생합니다.