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


13

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

fdiskを使いたいのですが。

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

$ sudo fdisk / dev / sda
コマンド(m for help):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 
最後のセクター、+セクターまたは+ size {K、M、G、T、P}(1001470-20479999、デフォルトは20479999):
タイプ「拡張」でサイズが9.3 GiBの新しいパーティション2を作成しました。

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

値が範囲外です。

私はpartedでそれをしました、どういうわけかfdiskでそれが可能であるべきです。

$ fdisk -V
fdisk from util-linux 2.27.1

回答:


10

通常のインターフェースでは、Linuxのfdiskはパーティションにアライメント制約を適用します。どの制約がfdiskのバージョンによって異なります。LBAと互換性のない古いオペレーティングシステムとの互換性のために、古いバージョンはデフォルトでシリンダーアライメントに設定されていました。LBAが20年ちょっと前にあったとき、fdiskはデフォルトでそのような古いシステムのケータリングを停止し、代わりに1MBアライメントに切り替えました。これにより、最新のストレージメディアでのパフォーマンスが向上します。

fdiskの現在のバージョンでは、セクター(512B)アラインメントでパーティションを作成するには、目的のエンドポイントでパーティションを作成してから、エキスパートメニュー(x)に移動し、コマンドbを使用してパーティションの開始(これにより、パーティションサイズが変更されます(終了位置ではありません)。それはかなり不格好に見えます。


魅力のように働いた。この場合にエキスパートモードが必要でなかった理由を詳しく説明できますか?
AD

2
@ADその場合、パーティションは1MBに配置されていたためです。
Gilles「SO-邪悪なことをやめ

確かに、整列されたパーティションを拡張しようとしましたが、エキスパートモードがなくても機能しました。
AD

14

Gillesの回答に従って行われた手順:

$ sudo fdisk / dev / sda

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


コマンド(m for help):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

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

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

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

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

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

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

コマンド(ヘルプはm):x


エキスパートコマンド(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        1001470 20479999 19478530 5 Extende 62/23/86 250/23/209
/ dev / sda5        1001472 20479999 19478528 83 Linux 62/57/118 250/23/209

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


-1

Fdiskは古いプログラムであり、MBRパーティションのみを認識します。あなたの問題は変更されたディスクジオメトリ(ヘッド、トラックあたりのセクター、トラック)にあると思います。ddコマンドを使用して古いディスクから新しいディスクにデータを複製した後(セクターからセクターへのコピー)、トラックのセクターを開始するようにパーティションが整列していません。そのため、fdiskでは、最初に古いディスク上にあったトラックセクターの先頭に最初に位置合わせする前に、開始パーティションセクターを作成できません。

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

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


fdiskの最新バージョンはGPTも理解しますが、ここでは関係ありません。問題は、必ずしもディスクジオメトリが変更されているわけではなく、fdiskの非エキスパートインターフェイスの制限だけです。
Gilles「SO-邪悪なことをやめなさい」

これはMBR:Disklabel type: dosです。私はpartedが整列していないと不平を言ったので、それを整列してから拡張しようとすることができます。私はfdiskで同じ手順を実行したことを確認し、それが機能していたと確信しています。
AD
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.