파티션 테이블 순서를 수정하는 방법은 무엇입니까?

파티션 테이블 순서를 수정하는 방법은 무엇입니까?

저는 완전히 새로운 Linux 배포판(Mageia)을 설치하려고 했고 이를 파티션을 재구성할 수 있는 기회로 보았습니다. 더 많은 배포판을 테스트하려는 경우 새 Linux 파티션을 더 쉽게 생성할 수 있도록 처음에는 모든 비 Linux(Windows, 복원 등) 파티션을 사용하고 마지막에는 Linux 파티션을 원했습니다.

GParted를 사용하여 기존 Linux 파티션을 삭제하고(보존하려는 데이터를 백업했습니다) 나머지 파티션을 앞으로 옮겼습니다. 나중에 Mageia 설치 프로그램에서 Linux 파티션을 생성했습니다.

시간이 좀 걸렸지만 결국 GParted는 문제 없이 끝났습니다. Mageia도 문제없이 설치되었습니다.

Mageia로 부팅할 때 ATI Radeon 비디오 카드(여전히 해결되지 않음)에 몇 가지(관련 없는?) 문제가 있어서 콘솔만 남게 되었고 재부팅할 때 빠르게 Error: Can't have overlapping partitions지나가는 것을 보았습니다.

문제 없습니다. GParted를 다시 부팅하고 문제를 해결하면 된다고 생각했습니다. 아아, GParted는 전체 디스크가 할당되지 않은 것으로 표시됩니다. 좋아, 리눅스로 돌아가자. 명령줄에서 분리를 시작하면 나에게

[root@localhost ~]# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: Can't have overlapping partitions.

fdisk나에게 더 많은 정보를 주어야했는데 그렇게되었습니다.

[root@localhost ~]# fdisk -l -u /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 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
Disk identifier: 0x2bd2c32a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS
/dev/sda2          208845  1953520064   976655610    5  Extended
/dev/sda3       950740992  1013655551    31457280    7  HPFS/NTFS
/dev/sda4      1013655552  1015754751     1049600   12  Compaq diagnostics
/dev/sda5          208896   409808895   204800000    7  HPFS/NTFS
/dev/sda6       409810944   950740991   270465024    7  HPFS/NTFS
/dev/sda7      1015757883  1034184374     9213246   82  Linux swap / Solaris
/dev/sda8      1034184438  1953520064   459667813+  83  Linux

파티션 시작으로 정렬하면 /dev/sda5and 가 /dev/sda6호출되어야 /dev/sda3하고 /dev/sda4그 반대의 경우도 마찬가지입니다.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS
/dev/sda2          208845  1953520064   976655610    5  Extended
/dev/sda5          208896   409808895   204800000    7  HPFS/NTFS
/dev/sda6       409810944   950740991   270465024    7  HPFS/NTFS
/dev/sda3       950740992  1013655551    31457280    7  HPFS/NTFS
/dev/sda4      1013655552  1015754751     1049600   12  Compaq diagnostics
/dev/sda7      1015757883  1034184374     9213246   82  Linux swap / Solaris
/dev/sda8      1034184438  1953520064   459667813+  83  Linux

인터넷 검색을 통해 이 문제를 해결할 수 있다는 것을 알았습니다 testdisk.

  1. 어떻게 사용하나요 testdisk? 인터페이스가 상당히 혼란스럽습니다.
  2. Linux/Windows에서 실행할 수 있습니까? 아니면 라이브 버전으로 부팅해야 합니까?

미리 감사드립니다.

건강 상태


아래 답변의 지침을 따랐지만 작동하지 않습니다.

다시 생성해야 하는 파티션은 다음과 같습니다.

/dev/sda3       950740992  1013655551    31457280    7  HPFS/NTFS
/dev/sda4      1013655552  1015754751     1049600   12  Compaq diagnostics

일어나는 일은 다음과 같습니다.

[root@localhost ~]# fdisk /dev/sda

Command (m for help): d
Partition number (1-8): 3

Command (m for help): d
Partition number (1-8): 4

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First sector (950743040-1953520064, default 950743040): 950740992
Value out of range.
First sector (950743040-1953520064, default 950743040):

첫 번째 파티션은 95074에서 시작해야 합니다.0992하지만 새로운 것은 95074에서만 시작할 수 있습니다3040.

어떻게 진행하나요?

답변1

파티션 순서를 수정하기 위해 찾은 최고의 솔루션은 다음과 같습니다.

Enter into the disk partition place: 
fdisk /dev/sda

Command (m for help):   m  
Command action
  ...
   l   list known partition types
   m   print this menu
   p   print the partition table
   q   quit without saving changes
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help):   x

Expert command (m for help):   m
Command action
...
   f   fix partition order
   m   print this menu
   p   print the partition table
   q   quit without saving changes
   r   return to main menu
   v   verify the partition table
   w   write table to disk and exit

Expert command (m for help):   f
Done.

Expert command (m for help):   w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

완료!

답변2

겹치는 파티션 문제는 부분적으로 PC 파티셔닝의 이상한 점 때문에 발생합니다.

파티션 테이블에는 정확히 4개의 "기본 파티션" 항목을 위한 공간이 있습니다. 4개 이상의 파티션이 필요한 경우 "확장" 파티션이라는 메커니즘이 있습니다. 이는 실제로 큰 파티션(귀하의 경우 파티션 #2)을 생성하고, 이 파티션에는 자체 하위 파티션 테이블이 있어 다음과 같은 추가 항목을 허용합니다. "논리적" 파티션.

수행한 작업은 섹터 208845에서 1953520064까지 확장된 파티션을 생성하는 것뿐 아니라 "확장" 파티션용으로 예약된 디스크 공간과 겹치는 추가 기본 파티션 3과 4도 생성하는 것입니다.

문제를 해결하는 가장 쉬운 방법은 다음과 같습니다.

  • Linux fdisk를 사용하여 파티션 3과 4를 삭제합니다.
  • 이전과 동일한 섹터 시작/끝 값을 사용하여 확장 파티션 내의 논리 파티션으로 다시 fdisk를 사용하여 다시 만듭니다.

논리 파티션 순서가 디스크의 "물리적" 위치를 반영하도록 하려면 fdisk도움이 될 수도 있습니다. 확장된 기능을 활성화하려면 "x"를 누르고에프 ix 파티션 순서기능. 그 후에 Linux 시스템에 맞게 s를 조정해야 할 수도 있습니다 fstab. Windows에는 GUID 기반 파티션 식별이 있으므로 순서에 신경 쓰지 않아도 됩니다.

답변3

주의하세요: fdisk에서 고급 수정 옵션을 시도하고 시스템을 재부팅했습니다. 내 경우에는 /dev/sda8이 /dev/sda5가 되었고 결과적으로 /boot/grub이 변경되지 않는다는 점에서 이것은 비참한 영향을 미쳤습니다.

따라서 맹글링을 피하기 위한 이 문제에 대한 확실한 해결책은 다음과 같습니다.

$ fdisk /dev/sda
x
f
w
$ update-grub
$ grub-install

하지만 먼저 위의 grub 명령이 설치되어 있는지 확인하십시오. 일부 시스템에서는 더 이상 사용되지 않는 것 같기 때문입니다.

관련 정보