Comments
Description
Transcript
Linuxディスクのデータ抽出について
Linuxディスクのデータ抽出について D5674 大友 俊卓 【目的】 インターネットへ公開しているサーバのデータをはじめ、様々なデータがハードディス ク(以下HDD)内にある。しかし、突然HDDのOSが起動しなくなる可能性は常に存在す る。バックアップデータを別媒体に残してあるのならばそれを用いて復元することもで きるが、それが残っていない場合はHDD内のデータから取り出すか諦めるしかない。 今年4月に、LinuxをOSとしたHDD内でダウンしてしまったサーバがあり、すでにOSが 起動しない状態であった。そこで、HDD内にまだデータが残っていると仮定し、今回そ のLinuxHDDのデータを抽出する方法を模索することにした。 【方法―経過―】 OSが起動しなくなったHDD(図2-1)をパソコン本体 から取り出してUSBケーブルで接続し、CDやUSB フラッシュメモリ等をマウントする(周辺機器を認識 させる)のと同様のコマンドを用いてマウントを 試みた(図2-2)。しかし、この方法ではboot部のみ しか読み込ませることができず、肝心のデータが 入っている部分を読み込ませることはできなかった。 この原因はLVM(=Logical Volume Manager)という 図2-1 ハードディスクの取り出し Linuxに実装されている機能の一つにあった。 このLVMとは、boot部を除いたHDD内の領域を物理ボリューム(以下PV)として細かく 分割し、ボリュームグループ(以下VG)という複数のPVをグループ化したものを作り 上げる事で、必要に応じたパーティション、論理ボリューム(図2-3,4,5のlv)を作成 するという概念である(図2-3)。パーティションの追加・リサイズ(図2-4)や ソフトウェアRAIDを組むことのできたりと扱うことができれば便利な機能である。 しかし今回のようにHDDのマウントをしたい場合で、両方のHDDのVG名が同じ場合、 /dev部に全く同じ名称のデバイスが存在する事になり、最初から接続している HDDのVGが読み込まれると、USB接続した方のHDDのVGが読み込めなくなるという状態 に陥ってしまう。これは、インストール時に設定を全く変更することなくデフォルトの ままで行っていたために同じ名称が付けられたためである。 図2-2 HDDとUSB接続用機材 -3- 図2-3 LVMの性質 図2-4 LVMによるリサイズ 図2-5 VG名を変更する つまり、もう一つのVGを読み込ませる為には、片方のVG名を変更する必要があり、 今回は以下の手順でマウントした(図2-5)。 (1)取り出すデータの入ったHDDのみを接続し、レスキューモードを起動する (2)VGを無効化して名称を変更、確認するためにもう一度VGを有効化 (3)HDD(VGを変更した方)をUSBケーブルで接続し、本体を起動 (4)VGの有効化を確認してマウントポイントを作成、読み込ませる これで認識させることが可能になった。 VG名の変更前と変更後でのスキャンの変化 lvm> vgscan Reading all phyisical volumes. This may take a while... Volume Group "VolGroup00" inconsistant Inconsistant metadata copies found - updating to use version 39 Found volume group "VolGroup00" using metadata type lvm2 レスキューモードで以下のコマンドを入力 lvm> vgrename VolGroup00 VolNewGroup00 lvm> vgscan Reading all phyisical volumes. This may take a while... Found volume group "VolNewGroup00" using metadata type lvm2 Found volume group "VolGroup00" using metadata type lvm2 【結果】 最初に起動させる方のHDDのVG名を変更すると、OSが起動しなくなってしまう。 いくつかのHDDでマウントを行ってみたが、全てのデータが残っている場合だけでなく、 いくつか内部データの破損している場合のものや、内部データのほぼ全てが破損してお り、認識させることできない場合になっているものもあると判明した。前者2つにおいて は、OSが起動しないHDDのデータを取り出すのは可能であることがわかった。 -4-