LVM構成のqcow2イメージからデータを救出する
会社でディスクのサルベージをお願いされたのでその時のメモ。 大学時代によくやってたんだけど、ログ残してなかったので この機会に残しておきます。 環境 VirtualBoxでUbuntu Server 12.04を立てて、その中にサルベージするディスクを置いてます。 CentOS6だとnbdのインストールが上手く行かなかったのと、7では自分でビルドしないといけないようで、 ちょっと面倒だなあと思い、手間の少ないUbuntu12.04を使いました。 UbuntuのOSインストール時、インストーラーの手順にそのまま従うと、LVM構成で作成されますが、 今回は、Standard Partitionで作成しました。 Ubuntu上でCentOSのディスクのサルベージをやるのでLVMでも特に問題ないのですが、 Ubuntuで、Ubuntuのディスクをサルベージする際、LVMのVolGroupの名前空間が被ることがあります。 CentOSでCentOSのディスクをサルベージする際もそうです。 被っちゃうといろいろと面倒なので、できるだけStandard Partitionで構成しましょう。 qemu-nbdのインストールと有効化 $ apt-get install qemu-utils $ modprobe nbd max_part=8 qemu-utilsをインストールすると、関連パッケージでqemu-nbdも一緒にインストールされます。 qemu-nbd(Network Block Device)は、qemuで用いられる特殊なディスクをループバックマウントするためのツールです。 modprobeはKernel Moduleのロード、あんロードを行うためのコマンドです。 qcow2ディスクに接続 $ qemu-nbd --connect=/dev/nbd0 /root/centos.qcow2 $ lvscan >> inactive '/dev/VolGroup/lv_root' [37.54 GiB] inherit inactive '/dev/VolGroup/lv_swap' [1.97 GiB] inherit $ lvchange -an /dev/VolGroup/lv_root /dev/VolGroup/lv_root $ lvscan >> ACTIVE '/dev/VolGroup/lv_root' [37.54 GiB] inherit #ACTIVEであればOK ACTIVE '/dev/VolGroup/lv_swap' [1.97 GiB] inherit #ACTIVEであればOK $ mount /dev/VolGroup/lv_root /mnt qemu-nbd commandでqcow2ディスクを接続します。 »