web-dev-qa-db-ja.com

通常のパーティションからLVMにデータを移動する

私はlvmについて少し読んで、それを使うことに切り替えたいと決めました。実際のlvmの設定はdebianインストーラーから行うことができるようですので、それが最も簡単だと思います。私がよくわからないのは、すべてのファイルを新しいシステムにコピーする方法です。

ホームディレクトリやパッケージだけでなく、システム全体をコピーしたいのですが、すべての構成ファイルが正確にどこにあるのか正確にわからないところまで、多くのものをいじっています。私がインターネットで見つけたガイドは、この手順をうろたえているようで、それを実行するツールについて言及しているだけであり、使用方法ではなく、つまりrsyncを使用しています。本能は、バックアップのルートをlvmシステムのルートに単にrsyncすることはできないと教えてくれます。lvm構成ファイルなどの重要なものをコピーしますが、正確には何なのかわかりません除外する必要がありますが、変更した可能性のあるものは除外しないようにします。任意のヒント?

私の計画した手順は、明確にするために、1 TBのHDDと250 GBのSSDを持っています。私はhddにあるパーティションを縮小し、2つの新しいパーティションを作成するために十分な空き領域を使用して、ssdおよびhddパーティションをそれらのパーティションにバックアップとしてddしたいと思います。次に、現在使用しているssdパーティションとhddパーティションを消去し、それらにlvmを設定します(簡単にするために、理想的にはdebianインストーラーを使用しますが、手動で)。そして、どういうわけか、バックアップパーティションから新しいlvmパーティションにすべてをコピーしたいと思います。次に、バックアップパーティションをワイプし、既存のlvmパーティションのサイズを変更して残りのスペースを含めるか、残りのスペースをlvmの別の物理ボリュームにして、そのまま追加します。

6
drowdemon

システム構成を最初からやり直したい場合を除いて、新しいシステムをインストールしないでください。これを実行したい場合があることに注意してください。ホームディレクトリをコピーし、システム構成を段階的に復元します。システムに再起動したらすぐに、 etckeeper をインストールしてください。インストーラーと2. /etcおよびホームディレクトリ以外で変更を加えないでください。ただし、既存のインストールを保持したい場合は、別のパーティション構成に移動する方が、別のインストールの上に移動するよりもはるかに簡単です。

公式のツールでパーティションを「LVMize」することはできません。これを行うことができる blocks to-lvm(元々はlvmifyとして知られていました) と呼ばれるサードパーティのツールがあります。私はそれを試したことがない。試すこともできますが、最初にバックアップが最新であることを確認してください。

blocks-to-lvmを使用しない場合は、ディスクに空きを作り、LVMボリューム用のスペースを作成し、データを移動し、すべてのデータが移動するまで繰り返す必要があります。 ext4(Debianのデフォルト)を含む多くのファイルシステムは、マウントされている間はサイズを変更できないため、 SystemRescueCD のようなライブシステムからこれらすべてを実行する必要があります。または GParted Live

  1. 既存のファイルシステムの1つとそれを含むパーティションを縮小します。あなたがsdaで作業していて、現在パーティション番号1を持っているとします。ファイルシステムを、可能であれば変更を差し引いたものの半分に縮小します。これにより、ファイルシステムを一度に移動できます。それができない場合は、ファイルシステムを縮小して、空き領域がほとんどないようにします。これを行うには2つの方法があります。

    • parted /dev/sda(テキストモード)またはgparted(GUI、sdaを選択)とそのresizepart 1 /“ Resize”コマンドを使用します。
    • resize2fs /dev/sda1を使用してファイルシステムを圧縮してから、fdisk /dev/sdaまたはその他のパーティションユーティリティを使用します。 fdiskにはパーティションのサイズを変更するコマンドがないことに注意してください。パーティションを削除してから、サイズを除いて同じ特性を持つパーティションを作成する必要があります。これは難しくありませんが、エラーが発生しやすくなります。数を誤ってコピーしたり、ユニットを混同すると、データが破壊される可能性があります。

    この時点で、スワップパーティションも削除して、もう少しスペースを空けます。

  2. 空きスペースにパーティションを作成します。タイプ8e(MBR)または「Linux LVM」(GPT)として宣言します。新しいパーティションが2番で、デバイスパスが/dev/sda2であるとします。

  3. pvcreate /dev/sda2を実行して、新しいパーティションをLVM物理ボリュームにします。これにより、LVMで使用するために/dev/sda2が割り当てられますが、スペースはまだ何も使用していません。
  4. vgcreate drowhd /dev/sda2を実行します。ここで、drowhdは、ボリュームグループに選択した名前です。これにより、LVMにボリュームグループという作業スペースが作成されます。
  5. lvcreate -n root -L 42g drowhdを実行します。ここで、rootは最初の論理ボリュームに付ける名前で、42gがサイズです。論理ボリュームは、ファイルシステムまたはスワップ領域を配置できる場所です。
  6. データを移動します。

    • 論理ボリュームが少なくとも既存のルートファイルシステムと同じ大きさである場合は、卸売りでコピーできます。

      cat /dev/sda1 >/dev/mapper/drowhd-root
      
    • そのための十分なスペースがない場合は、ファイルを分割して移動する必要があります。新しいボリュームにファイルシステムを作成してから、いくつかのファイルを移動します。

      mkfs.ext4 /dev/mapper/drowhd-root
      mount /dev/sda1 /media/old-root
      mount /dev/mapper/drowhd-root /media/new-root
      mkdir /media/new-root/usr
      mv /media/old-root/usr/lib /media/new-root/usr
      umount /media/old-root
      

      次に、手順1〜3を繰り返して、古いルートファイルシステムを縮小し、さらにパーティションを分割して、現在空き領域に新しい物理ボリューム(たとえば、/dev/sda3)を作成します。新しい物理ボリュームを既存のボリュームグループに追加し、論理ボリュームを拡張します。

      pvcreate /dev/sda3
      vgextend drowhd /dev/sda3
      lvresize -L 99g drowhd/root
      

      上記のようにいくつかのファイルを移動します。すべてを移動するまで繰り返します。

  7. すべてを移動したら、以前のデータパーティションを物理ボリュームにして、ボリュームグループに追加します。

    pvcreate /dev/sda1
    vgextend drowhd /dev/sda1
    

    このスペースを使用して、既存の論理ボリュームを拡張したり、新しい論理ボリュームを作成したりできます。スワップ用の論理ボリュームを作成し、mkswapで初期化することを忘れないでください。この機能を使用する場合は、スナップショットを作成するための空き領域を残しておくことをお勧めします。

  8. 別の/bootパーティションがあり、それを変更していない場合を除き、ブートローダーの設定を更新する必要があります。 Grubの場合:

    1. 新しいシステムパーティションをどこかにマウントします。

      mount /dev/mapper/drowhd-root /media/new-root
      
    2. 新しいルートの下でいくつかのインメモリファイルシステムを使用できるようにします。

      mount --rbind /dev /media/new-root/dev
      mount --bind /proc /media/new-root/proc
      mount --bind /sys /media/new-root/sys
      mount --bind /run /media/new-root/run
      
    3. システム内のコマンドラインを取得します。

      chroot /media/new-root
      
    4. update-grubを実行する
    5. Chrootを終了し、すべてのものをマウント解除します。
  9. おそらく/etc/fstabを更新する必要があります(catand/-でファイルシステム全体の移動のみを実行した場合を除き、fstabはパーティションを識別するためにUUID=またはLABEL=のみを使用します)。ファイルを編集して、新しいパーティションの場所を反映させます。

LVM自体は、/etc内のディスクに関する構成を保持しません。それらはすべて物理ボリューム自体に格納されます。 /etc/lvmの下の構成ファイルは、LVMツール(スキャンルール、ログ設定など)の構成と、自動的に更新されるボリューム配置のキャッシュです。 LVMボリュームは、それらが含まれているディスクを接続した任意のシステムからアクセスできます。

基盤となるブロックデバイスごとに1つのボリュームグループを使用します。それ以外の場合が賢明な状況はほとんどありません。基盤となるブロックデバイスは、通常、ディスク、RAIDアレイ、または暗号化されたボリュームです。あなたの場合、何らかのRAIDを設定しない限り、ハードディスクにVGを、SSDにVGを作成します。