次の状況があります。
現在のUbuntu(12.04)のインストールは、外付けHDD(250 GB)から実行しています。これは、新しい内蔵HDDを購入するのが面倒だったからです。今、新しい内部(120GB)があり、すべてを内部に移動したいと思います。 Ubuntuの新規インストールについては、議論の余地があります。
幸運にも(そうだと思いますが)ルートパーティションがLVMでパーティション分割されているので、パーティションをより小さな内部HDDに移動できるといいのですが。
これは可能ですか?そしてどこで助けを見つけられますか?
編集:この質問はすでにかなり古く、時代遅れかもしれません。当時使用していたUbuntuバージョンを追加しました。
ご想像のとおり、これは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
を使用して、新しいルートディスクを起動可能にします
できた.
まず、現在のインストールに250GBのディスク全体を使用した場合、120GBのディスクに収まるようにディスクを縮小する必要があります。 ext4ファイルシステムは、マウントされていないときにのみ圧縮できるため、Ubuntuライブシステム(CDまたはUSB)、または GParted live などの特別なメンテナンスライブシステムから起動する必要があります。 resize2fs
またはGPartedを使用して、既存のファイルシステムのサイズを変更できます。
既存のインストールのファイルシステムを新しいディスクに収まるように縮小したら、必要に応じて、マウントされたファイルシステムで残りの移動を行うことができます。既存のファイルシステムが新しいディスクに適合する場合は、何もアンマウントしたり再起動したりせずに転送を行うことができます。
次の説明では、oldvg
という既存のボリュームグループを使用して、物理ボリューム/dev/sdb1
から物理ボリューム/dev/sda1
に移動する方法を示します。ディスクの文字とパーティション番号をシステムに合わせて調整してください。
ライブ転送を行うには:
cfdisk
、fdisk
、parted
、…)を使用して、新しいディスクをパーティション分割します。例参照 ハードドライブを追加するにはどうすればよいですか?pvcreate /dev/sda1
vgextend oldvg /dev/sda1
pvmove /dev/sdb1 /dev/sda1
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 を使用できる場合があります。これは強力なディスク操作およびクローン作成ツールであり、状況をカバーしていると思いますが、経験はありません。