fdisk で論理パーティションと拡張パーティションを拡張する方法

fdisk で論理パーティションと拡張パーティションを拡張する方法

拡張パーティション /dev/sda2 の下の論理パーティションであるパー​​ティション /dev/sda5 を拡張しようとしています。

使いたいfdisk

手順としては、両方のパーティションを削除し、まったく同じ開始セクター(1001470と1001472)で再作成する必要があります。最小開始セクターが大きい論理パーティションを作成するまでうまくいきます(1003518)必要以上に長くなってしまいます。

$ sudo fdisk /dev/sda
コマンド(ヘルプの場合はm):p
ディスク /dev/sda: 9.8 GiB、10485760000 バイト、20480000 セクタ
単位: 1セクター * 512 = 512バイト
セクターサイズ(論理/物理):512バイト/512バイト
I/O サイズ (最小/最適): 512 バイト / 512 バイト
ディスクラベルタイプ: dos
ディスク識別子: 0x0cd7105f

デバイス ブート 開始 終了 セクター サイズ ID タイプ
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 1001470 16775167 15773698 7.5G 5 拡張
/dev/sda5 1001472 16775167 15773696 7.5G 83 Linux


パーティション5は削除されました。
パーティション2は削除されました。

コマンド(ヘルプの場合はm): n
パーティションタイプ
   p プライマリ (プライマリ 1、拡張 0、フリー 3)
   e 拡張 (論理パーティションのコンテナ)

選択(デフォルトp):e
パーティション番号 (2-4、デフォルト 2):
最初のセクター (999424-20479999、デフォルト 999424):1001470
最後のセクター、+セクターまたは+サイズ{K、M、G、T、P}(1001470-20479999、デフォルト20479999):
タイプが「拡張」でサイズが 9.3 GiB の新しいパーティション 2 を作成しました。

コマンド(ヘルプの場合はm): n
プライマリパーティションのすべての領域が使用中です。
論理パーティション5の追加
最初のセクター(1003518-20479999、デフォルト1003520):1001472

値が範囲外です。

私はそれをやった別れたただし、fdisk を使用すれば何とか可能になるはずです。

$ fdisk -V
fdisk from util-linux 2.27.1

答え1

に従って講じられた措置ジル答え:

$ sudo fdisk /dev/sda

fdisk (util-linux 2.27.1) へようこそ。
変更は、書き込むことを決定するまで、メモリ内にのみ残ります。
書き込みコマンドを使用する前に注意してください。


コマンド(ヘルプの場合はm):p
ディスク /dev/sda: 9.8 GiB、10485760000 バイト、20480000 セクタ
単位: 1セクター * 512 = 512バイト
セクターサイズ(論理/物理):512バイト/512バイト
I/O サイズ (最小/最適): 512 バイト / 512 バイト
ディスクラベルタイプ: dos
ディスク識別子: 0x0cd7105f

デバイス ブート 開始 終了 セクター サイズ ID タイプ
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2       100147016775167 15773698 7.5G 5 拡張
/dev/sda5       100147216775167 15773696 7.5G 83 リナックス

コマンド(ヘルプの場合はm):d
パーティション番号(1、2、5、デフォルト5):2

パーティション2は削除されました。

コマンド(ヘルプの場合はm): n
パーティションタイプ
   p プライマリ (プライマリ 1、拡張 0、フリー 3)
   e 拡張 (論理パーティションのコンテナ)
選択(デフォルトp):e
パーティション番号 (2-4、デフォルト 2):
最初のセクター (999424-20479999、デフォルト 999424):1001470
最後のセクター、+セクターまたは+サイズ{K、M、G、T、P} (1001470-20479999、デフォルトは20479999):

タイプが「拡張」でサイズが 9.3 GiB の新しいパーティション 2 を作成しました。

コマンド(ヘルプの場合はm): n
プライマリパーティションのすべての領域が使用中です。
論理パーティション5の追加
最初のセクター (1003518-20479999、デフォルト 1003520):
最後のセクター、+セクターまたは+サイズ{K、M、G、T、P} (1003520-20479999、デフォルトは20479999):

タイプ「Linux」、サイズ 9.3 GiB の新しいパーティション 5 を作成しました。

コマンド(ヘルプの場合はm):バツ


エキスパートコマンド(ヘルプの場合はm):b
パーティション番号 (1、2、5、デフォルト 5):
データの新しい始まり (1001471-20479999、デフォルト 1003520):1001472

エキスパートコマンド(ヘルプのm):p

ディスク /dev/sda: 9.8 GiB、10485760000 バイト、20480000 セクタ
単位: 1セクター * 512 = 512バイト
セクターサイズ(論理/物理):512バイト/512バイト
I/O サイズ (最小/最適): 512 バイト / 512 バイト
ディスクラベルタイプ: dos
ディスク識別子: 0x0cd7105f

デバイス ブート 開始 終了 セクター ID タイプ 開始-C/H/S 終了-C/H/S 属性
/dev/sda1 * 2048 999423 997376 83 Linux 0/33/32 62/55/53 80
/dev/sda2       100147020479999 19478530 5 延長 62/23/86 250/23/209
/dev/sda5       100147220479999 19478528 83 リナックス 62/57/118 250/23/209

次に、r(メイン メニューに戻り)、w(テーブルをディスクに書き込みます)。

答え2

通常のインターフェースでは、Linuxのfdiskはパーティションにアラインメント制約を適用します。どの制約が適用されるかはfdiskのバージョンによって異なります。古いバージョンでは、互換性のない古いオペレーティングシステムとの互換性のために、デフォルトでシリンダアラインメントが設定されていました。インドLBA が誕生して 20 年余り経った頃、fdisk はデフォルトでそのような古いシステムに対応するのをやめ、代わりに 1MB のアライメントに切り替えました。これにより、最新のストレージ メディアでより優れたパフォーマンスが得られます。

fdisk の現在のバージョンでは、任意のセクター (512B) アラインメントでパーティションを作成するには、まず希望する終了ポイントでパーティションを作成し、次にエキスパート メニュー ( x) に移動して コマンドを使用してbパーティションの開始を調整する必要があります (これによりパーティション サイズが変更されますが、終了位置は変更されません)。これはかなり扱いにくいように思えます。

答え3

Fdisk は古いプログラムで、MBR パーティションしか認識しません。問題はディスク ジオメトリ (ヘッド、トラックあたりのセクター数、トラック) の変更にあると思います。dd コマンド (セクター間のコピー) を使用して古いディスクから新しいディスクにデータを複製した後、パーティションがトラックの開始セクターに揃えられなくなりました。これが、fdisk が、古いディスクにあったトラック セクターの開始に最初に揃えられる前に、開始パーティション セクターを作成できない理由です。

拡張メニューのコマンドを使用して fdisk プログラムで新しいディスクのジオメトリを変更することもできますが、これは間違った方法です。古い fdisk の代わりに parted および gparted プログラムを使用してください。

現在、読み取りおよび書き込み速度は、各パーティションの開始トラック セクターへのアラインメントに依存しません。

関連情報