web-dev-qa-db-ja.com

パーティションテーブルの順序を修正するにはどうすればよいですか?

完全に新しいLinuxディストリビューション(Mageia)をインストールするつもりでしたが、それをパーティションを再編成する機会と見なしました。 Linux以外(Windows、復元など)のパーティションを最初にすべて、Linuxのパーティションを最後に作成したかったので、さらにいくつかのディストリビューションをテストしたい場合は、新しいLinuxパーティションをより簡単に作成できます。

GPartedを使用して既存のLinuxパーティションを削除し(保存したいデータをバックアップしました)、残りのパーティションを前面に移動しました。後でMageiaインストーラーでLinuxパーティションを作成します。

少し時間がかかりましたが、結局GPartedは問題なく終了しました。 Mageiaも問題なくインストールされました。

Mageiaを起動すると、ATI Radeonビデオカードに(まだ解決されていない)問題が発生し、コンソールだけが残り、再起動するとError: Can't have overlapping partitionsが圧縮されていました。

問題ありません。GPartedをもう一度起動して修正します。残念ながら、GPartedはディスク全体を未割り当てとして表示します。 OK、Linuxに戻ります。コマンドラインから離れて開始すると、

[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/sda5/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 992で開始する必要がありますが、新しいパーティションは95074 4でのみ開始できます。

どうすれば続行できますか?

4
Koohoolinn

オーバーラップパーティションの問題は、PCのパーティション分割の奇妙さも原因の1つです。

パーティションテーブルには、正確に4つの「プライマリパーティション」エントリ用のスペースがあります。 4つ以上のパーティションが必要な場合は、「拡張」パーティションと呼ばれるメカニズムがあります。実際には、大きなパーティション(この場合はパーティション#2)が作成され、独自のサブパーティションテーブルが作成されます。 「論理」パーティション。

セクター208845から1953520064にまたがる拡張パーティションを作成しましたが、「拡張」パーティション用に予約されたディスク領域とオーバーラップする追加のプライマリパーティション3と4も作成しました。

問題を解決する最も簡単な方法は次のとおりです。

  • linuxfdiskを使用してパーティション3と4を削除します
  • 以前と同じセクターの開始/終了値を使用して、拡張パーティション内の論理パーティションとしてそれらを(再びfdiskを使用して)再作成します

論理パーティションの順序にディスク上の「物理的な」場所を反映させたい場合は、fdiskも役立ちます。 「x」を押すだけで拡張機能がアクティブになり、fixパーティション順序関数を使用できます。その後、Linuxシステム用にfstabsを調整する必要がある場合があります-WindowsにはGUIDベースのパーティションIDがあり、順序を気にする必要はありません。

2
syneticon-dj

パーティションの順序を修正するために私が見つけた最良の解決策:

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
jfajunior

警告:fdiskで高度な修正オプションを試し、システムを再起動しました。これは、私の場合は/ dev/sda8が/ dev/sda5になり、結果として/ boot/grubが変更されないという、悲惨な影響を及ぼしました。

したがって、マングリングを回避するためのこの問題の明らかな修正は次のとおりです。

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

ただし、一部のシステムでは非推奨になっているように見えるため、最初にgrubコマンド(上記)がインストールされていることを確認してください。

1
Eamonn Kenny