fdisk: 파티션 테이블이 "디스크 순서가 아님"이지만 "이미 올바른 순서"입니까? 및 GRUB 레거시 문제

fdisk: 파티션 테이블이 "디스크 순서가 아님"이지만 "이미 올바른 순서"입니까? 및 GRUB 레거시 문제

저는 요즘 다음과 같은 질문들과 씨름하고 있습니다.

  • 파티션 테이블이 엉망이 됐다는 신고가 접수됐으나 이는 사실이 아니었다.
  • grub-legacy는 실제 부팅 중에 일부 파티션에 문제가 있지만 Linux가 실행 중일 때 셸에서 호출하면 문제가 없습니다.

두 증상이 연관되어 있다고 생각되지만 확실하지 않습니다.

배경 정보:

  • Grub-legacy는 수년 동안 아무런 문제 없이 /dev/sda4(hd0,3)의 XFS에서 부팅되어 왔습니다.
  • sda1에서 FAT32 파일 시스템의 크기를 조정하기 위해 Gparted를 사용할 때 상황이 지저분해졌습니다(분명히 이 문제를 일으킨 libparted 3.2에 버그가 있었습니다). 갑자기 grub이 더 이상 sda4에 액세스할 수 없습니다.

다음은 손상된(손상되지 않은) 파티션 테이블에 대한 fdisk의 출력입니다.

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sda: 74.5 GiB, 80026361856 bytes, 156301488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x85068506

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1            2048   8390655   8388608    4G  c W95 FAT32 (LBA)
/dev/sda2  *      8390656  29296639  20905984   10G  7 HPFS/NTFS/exFAT
/dev/sda3        29296640 136712191 107415552 51.2G  f W95 Ext'd (LBA)
/dev/sda4       136712192 156301487  19589296  9.3G 83 Linux
/dev/sda5        29298688  33492991   4194304    2G 83 Linux
/dev/sda6        33495040  75438079  41943040   20G 83 Linux
/dev/sda7        75440128  83828735   8388608    4G 83 Linux
/dev/sda8        83830784  88025087   4194304    2G 83 Linux
/dev/sda9        88027136  94318591   6291456    3G 82 Linux swap

Partition table entries are not in disk order.

Command (m for help): x

Expert command (m for help): f
Nothing to do. Ordering is correct already.

parted는 다음과 같이 파티션 테이블을 나열합니다.

# parted /dev/sda unit s print free                                                    
Model: ATA WDC WD800JB-00JJ (scsi)
Disk /dev/sda: 156301488s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start       End         Size        Type      File system     Flags
        63s         2047s       1985s                 Free Space
 1      2048s       8390655s    8388608s    primary   fat32           boot, lba
 2      8390656s    29296639s   20905984s   primary   ntfs
 3      29296640s   136712191s  107415552s  extended                  lba
 5      29298688s   33492991s   4194304s    logical   ext2
 6      33495040s   75438079s   41943040s   logical   ext3
 7      75440128s   83828735s   8388608s    logical   ext3
 8      83830784s   88025087s   4194304s    logical   ext3
 9      88027136s   94318591s   6291456s    logical   linux-swap(v1)
        94318592s   136712191s  42393600s             Free Space
 4      136712192s  156301487s  19589296s   primary   ext2

시작 시 grub 정보:

  • sda7 및 sda8에 대해 "오류 5: 유효하지 않거나 손상된 파티션 테이블"이 보고됩니다.
  • (지금까지) 단순한 ext2임에도 불구하고 sda4에 대해 "알 수 없는 파일 시스템 유형"이 보고됩니다.

나는 많은 포럼/위키 등을 검색했지만 아직 이 퍼즐을 풀지 못했습니다. 내 파티션 테이블이 1MiB로 정렬되어 있다는 것을 방금 깨달았습니다(따라서 2048 섹터 간격이 있음). 일부 파티션 삭제/재생성/재포맷/검사 등을 수행했지만 성공하지 못했습니다.

저는 슬랙웨어 14.2(실제로는 Salix)와 커널 3.10을 실행하고 있습니다. 모든 Linux 파일 시스템은 ext2 또는 ext3입니다.

이런 증상의 원인이 궁금합니다. 이 문제를 해결하도록 도와주세요.

답변1

Partition table entries are not in disk order.그렇지 않기 때문 이라고 합니다 . 당신은 sda4디스크의 끝에 있지만 sda5-9그 앞에 있습니다.

출력은 parted다음과 같아야 합니다.

# parted /dev/loop0 unit s print free
Model: Loopback device (loopback)
Disk /dev/loop0: 156301488s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start       End         Size        Type      File system  Flags
        63s         2047s       1985s                 Free Space
 1      2048s       8390655s    8388608s    primary                lba
 2      8390656s    29296639s   20905984s   primary                boot
 3      29296640s   136712191s  107415552s  extended               lba
 5      29298688s   33492991s   4194304s    logical
 6      33495040s   75438079s   41943040s   logical
 7      75440128s   83828735s   8388608s    logical
 8      83830784s   88025087s   4194304s    logical
 9      88027136s   94318591s   6291456s    logical
        94318592s   136712191s  42393600s             Free Space
 4      136712192s  156301487s  19589296s   primary

이것은 단지 메시지의 해석일 뿐이라는 점에 유의하십시오 fdisk. 마지막 기본 파티션을 논리 파티션으로 변환하면 이 메시지가 사라집니다. 이것이 다른 파티션 문제와 관련이 있는지 확실하지 않습니다.

관련 정보