web-dev-qa-db-ja.com

論理パーティションをプライマリパーティションに変換するにはどうすればよいですか?

プライマリパーティションを最大にしましたが、一部を削除したので、論理パーティションの1つをプライマリにします。これをgpartedまたはその他の無料ツールで実行できますか?

ありがとう

4
Richard

何かをする前に、これらのタイプのプロセスで問題が発生するため、フルメタルバックアップを実行してください。

「簡単なボタン」は Acronis Disk Director で24ドルです。

これを行うもう1つの方法は、パーティションテーブルを編集することです。

注:この手順は、EFIを使用するシステム(Macなど)では機能しません(私は思いません)。

これを行うには、LinuxライブCDを起動して実行します。

Sudo sfdisk -d /dev/sda > partitions.txt

...書き込み可能なフォルダ。これにより、パーティションテーブルを含むpartitions.txtというファイルが作成されます。次に、お気に入りのテキストエディタを使用してそのファイルを編集し、番号と順序を変更して、論理パーティションを拡張パーティションの上に配置します。

たとえば、sda5がプライマリにするパーティションである場合、「sda5」を「sda1」(または2/3/4)に変更し、残りの数値を押し下げます。重要な点は、開始、サイズ、IDが同じであることを確認することです。

次に実行します:

Sudo sfdisk --force /dev/sda < partitions.txt
6
Adam Brand

一般的な

一部の制限された制約の下では、論理パーティションをプライマリに変換することが可能です。ただし、これはかなり一般的ではない操作であるため、parted、fdisk、または同様のプログラムを使用して自分で実行できるはずですが、1つの操作でこれをサポートするツールを知りません。パーティションの開始/終了を手動で再計算します。

数年前、私はパーティションテーブルの内容を出力するために プログラム と書きました。ディスクが次のようにパーティション分割されているとします。

                      Disk /dev/hda (CHS=30401/255/63)
                      WDC WD3200JS-00PDB0

                     +------------------------------+
            0 - 1043 |             hda1             |   8189 Mb
                     +------------------------------+
         1044 - 2087 |             hda2             |   8189 Mb
                     +------------------------------+
         2088 - 4699 |             hda3             |  20489 Mb
   + - - - - - - - - +------------------------------+
   .     4700 - 5483 |             hda5             |   6150 Mb
   .                 +------------------------------+
   .     5484 - 5999 |             hda6             |   4048 Mb
   .                 +------------------------------+
   .     6000 - 7044 |             hda7             |   8197 Mb
   .                 +------------------------------+
   .     7045 - 8089 |             hda8             |   8197 Mb
h d a 4              +------------------------------+
   .            8090 |             hda9             |  40986 Mb
   .           13314 |                              |
   .                 +------------------------------+
   .           13315 |                              |
   .                 |                              |
   .                 |            hda10             | 134027 Mb
   .                 |                              |
   .           30400 |                              |
   + - - - - - - - - +------------------------------+

ここで、hda4は論理パーティションを含む拡張パーティションです。 hda4を縮小すると(シリンダー4700から13314またはシリンダー5484から30400をカバーするため)、hda5またはhda10のいずれかを1次区画にすることができます。

厳密に理論的には、拡張パーティション内にプライマリパーティションを配置することは可能かもしれません(拡張パーティションを縮小して、最後にのみパーティションを変更できるのではなく)。しかし、互換性の問題については誰が知っていますか。それによってトリガーされます。これは、非常に少ない数のプログラム/人(存在する場合でも誰でも)によっては、正しいパーティションレイアウトと見なされます。

上記の具体的な例では、パーティションテーブルには拡張パーティションに加えてすでに3つのプライマリパーティションが含まれているため、プライマリパーティションを作成するためのエントリは残っていません。 hda5またはhda10をプライマリパーティションに変更するために、hda1、hda2、またはhda3のいずれかを削除する必要があります。

あなたの質問

新しいプライマリパーティションを作成するための無料のエントリがあると言ったので、それで問題ありません。ただし、変換する論理パーティションの詳細を指定していないため、詳細を指定しないと可能かどうかはわかりません。

それを行う手順

  1. パーティションテーブルをいじる前に、コピーを保存/印刷してください。これは、my printpar プログラムを使用して、または parted を使用して、ユニットセクターを使用して実行できます( "Fdisk -l"も使用できますが、これは、パーティションが起動する場合にのみ信頼できます。正確なシリンダー境界で(伝統的にそうでしたが、あまり一般的ではなくなりました))。

  2. ポイント1からのコピーが、紙または変更するディスク以外のストレージで利用できることを確認します。

  3. 以下のすべての手順で、前述の操作を実行している間は、パーティション編集プログラムがファイルシステムに触れないようにしてください(partedの場合は、「mkpartfs」ではなく「mkpart」を使用する必要があります)。

  4. すべての論理パーティション(hda5からhda10など)を削除してから、拡張パーティション(hda4など)を削除します。

  5. 変更するパーティションが拡張パーティションの外側になるように、開始または終了のいずれかを移動して、拡張パーティションを再作成します(例:hda4はシリンダー4700〜13314またはシリンダー5484〜30400をカバーしますが、シリンダー数は100%信頼できません。 、正確なセクター番号を使用する必要があります)。

  6. 変更するパーティション(例:hda6からhda10またはhda5からhda9)を除くすべての論理パーティションを再作成し、前とまったく同じ場所で開始および終了することを確認します(これが絶対セクター番号で操作する理由です)。

  7. プライマリパーティションとして変更する必要があるパーティションを再作成します。これも前とまったく同じ場所で開始/終了します。このステップでは、場所を絶対セクターで指定できることが非常に重要です。これは、新しいプライマリパーティションが、通常、元の論理パーティションがあった場所と比較して63セクター離れた状態で作成されるためです。

  8. パーティションテーブルの新しいコピーを印刷して比較します。唯一の違いは、新しいプライマリパーティション、拡張パーティションの開始/終了、および場合によっては論理パーティションの再番号付けです。


上記の例の場合、元のhda3パーティションが削除され(プライマリパーティションを作成するための無料のエントリを提供するため)、hda5がプライマリパーティションに変換され(その後hda3になります)、レイアウトは次のようになります。

                     +------------------------------+
            0 - 1043 |             hda1             |   8189 Mb
                     +------------------------------+
         1044 - 2087 |             hda2             |   8189 Mb
                     +------------------------------+
         2088 - 4699 |            unused            |  20489 Mb
                     +------------------------------+
         4700 - 5483 |             hda3             |   6150 Mb
   + - - - - - - - - +------------------------------+
   .     5484 - 5999 |             hda5             |   4048 Mb
   .                 +------------------------------+
   .     6000 - 7044 |             hda6             |   8197 Mb
   .                 +------------------------------+
   .     7045 - 8089 |             hda7             |   8197 Mb
h d a 4              +------------------------------+
   .            8090 |             hda8             |  40986 Mb
   .           13314 |                              |
   .                 +------------------------------+
   .           13315 |                              |
   .                 |                              |
   .                 |             hda9             | 134027 Mb
   .                 |                              |
   .           30400 |                              |
   + - - - - - - - - +------------------------------+

残りのすべての論理パーティションは、元の状況と比較して番号が付け直されていることに注意してください。

5
hlovdal

私の FixParts プログラムは、MBRの制限と現在のレイアウトによって課された制限に基づいて変換できるものには制約がありますが、仕事を行うことができるオープンソースツールです。 (FixPartsはパーティションテーブルエディターだけです;パーティションを縮小したり移動したりすることはできないため、プライマリーがすべて互いに余裕がない状態で詰め込まれている場合それらの間で、論理区画に変換できるのは最初のものだけです。)

4
Rod Smith

Paragon Partition Proの起動可能なディスクは、論理をプライマリに簡単に変換します。やったところです。

2
greg

システムレスキューcd TestDiskを使用し、クイックスキャンを実行した後、すべてのパーティションを一覧表示し、LをPにフリップしてから、パーティションテーブルを再書き込みしました。

汚れていたがうまくいった

2
Richard

Partition Wizard (無料版があります)を使用して この記事の手順 を実行できます。

0
Hendy Irawan