web-dev-qa-db-ja.com

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

次の状況があります。

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

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

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

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

17
NotANormalNerd

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

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

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

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

vgreduceを使用して、vgから外部hdを削除します。古いディスク/ 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を使用して、新しいルートディスクを起動可能にします

できた.

36
Floyd

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

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

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

ライブ転送を行うには:

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

別の方法は、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 を使用できる場合があります。これは強力なディスク操作およびクローン作成ツールであり、状況をカバーしていると思いますが、経験はありません。

20
Gilles