web-dev-qa-db-ja.com

vmディスク上の拡張パーティション、lvm、およびスナップショットを使用したルートファイルシステムのサイズ変更の問題

rootドライブのディスクサイズを小さくしすぎたため、拡張する必要があります。 Ubuntu 16lts serverのデフォルトインストール。

私は検索しましたが、見つかった回答/解決策は問題に対処していません。 (問題は同じように見えますが、手順が機能しなかったか、オプションがシステムで使用できませんでした)。

私はgpartedライブCD(最新/ちょうどダウンロア)を起動していますが、ディスクを別のubuntuシステム(別のVM)に接続することでもこれを試しました。以下のgpartedスクリーンショットで見ることができるように、私は持っています

  • liveCDの起動(gparted)
  • ちなみに、1つのディスク(sda)はVirtualboxのVDIです。既にディスクを拡大しています(「未割り当て領域」に示されているように)
  • 興味があるのは、/dev/sda5拡張に含まれる/dev/sda2 lvmボリュームです

私はもう試した:

  • Gpartedライブisoから、/dev/sda5deactivateに右クリックできます。また、以下のlvdisplay出力は、この非アクティブ化後です。
    • ただし、これはロックを削除しません(しかししばらくの間考えて、ディスクを再スキャンします)
    • /dev/sda2のサイズ変更はグレー表示のままです
    • lvdisplayは変更を表示しないようです
  • コマンドラインからlvchange -an、を実行します
    • does/ dev/sda5で利用可能なステータスを変更するようです
    • ただし、gpartedを閉じる/開くと、ロックされたままになります

ありがとう、私はあなたの助けに感謝します! gparted live-iso snapshot

mount | grep sd->なし(表示なし)。 gparted live-isoからfdisk -lfdisk -l output

およびlvdisplaylvdisply output

およびvgdisplayenter image description here

2
mike

多くの驚きの後:)私は私の問題が少なくとも部分的にスナップショットに関連していることを発見しました(前述のように、これはすべてVMにあります)。

  • 私が変更しようとしているディスクは、スナップショットを持つマシンからのものです
  • ベース/元の.vdiをマウント/サイズ変更しようとしましたが、スナップショットでは何もしませんでした
  • その内容は文字通り新鮮なインストールなので、最初に見たGUIDが実際には正しいディスクであるが古い「スナップショット」であることは私には明らかではありませんでした。

これを証明するために、VM from virtualboxのスナップショットUIを複製しました。これにより、現在の状態でフラ​​ット化するオプションが提供されます。

これは動作しているように見える(データの破損が観察されないことを含む)ため、元のsvr vmでサイズ変更されたディスクを使用してバックブートされています!

  1. あらゆる状態/スナップショットからvmの電源を切り、クローンを作成します-'current state `(すべてのスナップショットをフラット化します)のみを含みます。
    • スナップショットの上でこれがすべて可能であると確信しています。私にとってこれは受け入れられ、ミックスからいくつかの変数を取りました
    • ダイナミックディスクがあることに注意してください。静的に違いがあるかどうかはわかりません(NOである必要がありますが、テストしていません)
  2. 結果のサイズを変更しますクローンとフラット化 vdi(例:スナップショットなし)
    • VboxManage.exe modifyhd <vdi> --resize 50000#〜50gb
  3. サイズ変更したディスクを別のLinux VMに接続して起動します
  4. vg をアンマウントして削除します
    • サイズを変更しようとしているルートfsは/dev/mm-ubuntu16-svr-vg/root にあります。
      • 以下の/dev/MY_VG/rootを呼び出します
    • mount | grep 'VG'その後Sudo umount <mountpoint>マウントされている場合
    • Sudo lvchange -an /dev/MY_VG#論理ボリュームを削除
    • Sudo vgchange -an MY_VG#ボリュームグループを削除
  5. partition/volumn /およびfs のサイズを変更します
    • Sudo gparted &#通常のサイズ変更を続行します
      • 鉱山は拡張パーティションの成長で、次にLVで成長しました
      • すべての「通常の」指示がここで機能します。私の質問写真では、これはサイズ変更(成長)/dev/sda2に続いて/dev/sda5のサイズ変更(成長)です。
    • lvresize -l +100%FREE /dev/MY_VG/root
    • e2fsk -f /dev/MY_VG/root#resize2fsはこのクリーンアップを実行するように促しました
    • resize2fs /dev/MY_VG/root

できた!まだ他のVMにいる間に、容量をマウントして確認します。

  • Sudo vgchange -ay MY_VG && Sudo lvchange -ay /dev/MY_VG#例:削除の逆
  • Sudo mkdir <mountpoint> && Sudo mount /dev/MY_VG/root <mountpoint>
  • df -h#YAYは合計で最大50GBを示します!

そして、シャットダウンし、元の(まあ、Cloned&flattened)vmで起動すると、起動し、予想される空き容量/ 50GBのルートドライブとファイルシステムがあります。

これが誰かを助けることを願っています!

1
mike