LVM 250 GBルートパーティションを新しい120GBハードディスクに移動するにはどうすればよいですか?


18

次の状況があります。

現在のUbuntu(12.04)のインストールは、外付けHDD(250 GB)から実行しています。これは、新しい内蔵HDDを購入するのが面倒だったからです。今、新しい内部(120GB)があり、すべてを内部に移動したいと思います。Ubuntuの新規インストールについては、議論の余地があります。

幸運にも(そうだと思いますが)ルートパーティションがLVMでパーティション分割されているので、パーティションをより小さな内部HDDに移動できるといいのですが。

これは可能ですか?そしてどこで助けを見つけられますか?

編集:この質問はすでにかなり古く、時代遅れかもしれません。当時使用していたUbuntuバージョンを追加しました。


関連する質問 -上記の答えは十分に明確ではありません...
MeSo2

上記の2つの答えは私には十分に明確ではありません。そこで、新しい投稿を
MeSo2

回答:


39

ご想像のとおり、これはLVMを使用して行うのが非常にエレガントです。

既存のインストールを縮小して、小さいディスクに合わせます。

新しいハードディスクを物理的にインストールし、フォーマットしpvcreateて、vgextendルートパーティションと同じvgに追加します

pvmove古いパーティションからすべてのデータを透過的に移動するために使用します

を使用vgreduceして、外部HDをvgから削除します。古いディスク/ dev / sdOLDを取り外します。

以下の例では:

  • /dev/sdOLD 置き換える古いパーティションを表します
  • /dev/sdNEW 新しいパーティションがその代わりになることを意味します。
  • vgX ボリュームグループの略

例:もちろん、適切なデバイスを使用していることを100%確認する必要があります。また、システムから完全な最新のバックアップを削除することも不可欠です。

pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD

update-grubおよびgrub-installを使用して、新しいルートディスクを起動可能にします。

できた


具体的な例を提供してくれたら良かったでしょう。
isaaclw

12
ああ、それは有効な受け入れられた投稿に有益な情報を投票するのに良い投票です。危険なのは、誰かがそれを気付かずにコピー&ペーストしてデータを破壊することだからです。あなたがLVMで何かをするなら、あなたは私が与えるポインターであなたが耐えているのを見つけることができるはずです。
フロイド

2
Cento7にも取り組んでいます。ここで提供される手順は、私が少し学び、少しグーグルで学ぶのに十分でした。スポットオン
18年

centos:grub2-mkconfig -o "$(readlink -e /etc/grub2.cfg)"を使用します... ここから
18年

21

まず、現在のインストールに250GBのディスク全体を使用した場合、120GBのディスクに収まるようにディスクを縮小する必要があります。ext4ファイルシステムは、マウントされていないときにのみ縮小できるため、Ubuntuライブシステム(CDまたはUSB)、またはGParted liveなどの特別なメンテナンスライブシステムから起動する必要があります。resize2fsまたはGPartedを使用して、既存のファイルシステムのサイズを変更できます。

既存のインストールのファイルシステムを新しいディスクに収まるように縮小したら、必要に応じてマウントされたファイルシステムで残りの作業を行うことができます。既存のファイルシステムが新しいディスクに適合する場合は、何もアンマウントしたり再起動したりせずに転送を行うことができます。

次の説明では、という名前の既存のボリュームグループを使用/dev/sdb1して、物理ボリュームから物理ボリュームに移動する方法を示します。ディスクの文字とパーティション番号をシステムに合わせて調整してください。/dev/sda1oldvg

ライブ転送を行うには:

  1. (お好みのパーティショニングツールを使用して、新しいディスクをパーティションに分割cfdiskfdiskparted、...)。たとえば、追加のハードドライブを追加するにはどうすればよいですかを参照してください
  2. 新しいディスクに物理ボリュームを作成します。 pvcreate /dev/sda1
  3. 移動する論理ボリュームを含む既存のボリュームグループにこの物理ボリュームを追加します。 vgextend oldvg /dev/sda1
  4. 論理ボリュームをある物理ボリュームから別の物理ボリュームに移動します。 pvmove /dev/sdb1 /dev/sda1
  5. 既存のボリュームグループを2つに分割します。 vgsplit oldvg newvg /dev/sda1

もう1つの方法は、既存の論理ボリュームをでミラーボリュームにしlvconvert --mirror、新しいディスクにミラーをセットアップしてから、でミラーを分割することlvconvert --splitmirrorsです。この方法では、データのコピーが2つになり、分割後、各コピーが独自の寿命を迎えます。

コピーが完了したら、新しいディスクを起動可能にする必要があります。このためにファイルシステムをマウントします。にマウントされていると仮定すると/mnt、これらのコマンドをルートとして実行します。

chroot /mnt
# if the name of the volume group has changed, edit /etc/fstab
update-grub
grub-install /dev/sda

または、Clonezillaを使用できる場合があります。これは強力なディスク操作およびクローン作成ツールであり、状況をカバーしていると思いますが、経験はありません。


1
基本的に言うと、この回答がどのようpvadd, pvmove, pvremoveに受け入れられるかは私を超えています
...-ish

あまりにも複雑すぎて、彼が必要とするものではない
フロイド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.