パーティションを範囲外の値に強制する方法

パーティションを範囲外の値に強制する方法

私は Ubuntu デスクトップ システム (VM ゲスト) を持っていますが、そのパーティションはインストール メディアによって作成されています。ディスクを拡張したかったので、ゲストをシャットダウンし、ホスト内のゲストのディスク サイズを増やしました。ここで、ゲスト内のパーティションを拡張する必要がありますが、ここで問題が発生します。

元の表を印刷すると、次のようになります。

$ sudo fdisk -l /dev/sda

Disk /dev/sda: 37.6 GB, 37580963840 bytes
255 heads, 63 sectors/track, 4568 cylinders, total 73400320 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

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          501758    41940991    20719617    5  Extended
/dev/sda5          501760    41940991    20719616   8e  Linux LVM

これまで、パーティションを拡張する必要があるときは、パーティションを削除して、同じタイプ、同じ開始位置、異なる終了位置で再作成していました。今回はうまくいきません。

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

Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (503806-41940991, default 503806): 501760
Value out of range.

えっ? たった今、ほんの一瞬前に設定したパラメータでパーティションを作成できないなんて、どうしてあり得るのでしょう? いずれにせよ、私はやめることにしました。 単に古い fdisk なのかもしれないと思い、さらに深い穴を掘りました。

私は、parted を使用してパーティションを削除しましたが、変更が即座に適用されるとは知りませんでした。(終了したら「書き込み」または「適用」コマンドが必要になると思っていました...それで失敗しました。) これで、元のパーティションが削除され、再作成できなくなりました。

範囲外の値を持つパーティションを強制的に作成するにはどうすればよいですか?

答え1

分かりました。これでうまくいきました:

起動すると、セクターに切り替え、現在のテーブルを確認し、パーティションを再作成することsudo partedができました。そしてpartedを終了しました。その後、実行してパーティションタイプを元に戻しました。unit spmkpart logical 501760 41940991sudo fdisk /dev/sdat8e

答え2

私もまったく同じ状況に陥っています。質問に示されているレイアウト (msdos スタイル) で仮想マシンの LVM パーティションを拡張したいと考えていました。著者は fdisk ではなく parted を使用してこの問題を解決しましたが、fdisk で実行することも可能です。

解決策を見つけましたここ(そこに行って、元の回答者にも賛成票を投じてください)。問題は、sda5 論理パーティションを含む「拡張」パーティションである /sda2 のサイズも変更する必要があることです。

その後はこれlvm pv、lvm lv、そして最終的に fs を拡張するための記事。

関連情報