データ復元 · 1 min read · Dec 25, 2025
RAID1 LVMパーティションからKnoppix Linux LiveCDでデータを復元する
RAID1 LVMパーティションからKnoppix Linux LiveCDでデータを復元する
Version 1.0
Author: Till Brehm
Last
edited: 04/11/2007
このチュートリアルでは、Fedora Coreインストーラーなどによって作成されたLVM2 RAID1セットアップの一部であった単一のハードディスクからデータを救出する方法を説明します。データを復元するのがなぜそれほど問題なのか?以前LVM RAID1セットアップの一部であった各ハードディスクには、RAIDに保存されていたすべてのデータが含まれていますが、ハードディスクは単純にマウントすることができません。まず、パーティション用にRAIDセットアップを構成し、その後LVMを設定してこの(これらの)RAIDパーティションを使用する必要があります。その後、マウントできるようになります。データ復元にはKnoppix Linux LiveCDを使用します。
前提条件
このチュートリアルではKnoppix 5.1 LiveCDを使用しました。ここからCD ISOイメージをダウンロードし、CDに焼き付けて、RAIDパーティションを含むハードディスクをマザーボードのIDE / ATAコントローラーに接続し、Knoppix CDをCDドライブに入れてCDからブートします。
私が使用したハードディスクは、最初のIDEコントローラー(hda)に接続されたIDEドライブです。私の場合、ハードディスクには1つのパーティションしか含まれていませんでした。
RAIDの復元
Knoppixがブートしたら、シェルを開いて次のコマンドを実行します:
sudo surootユーザーになります。
元の構成からmdadm.confファイルがないため、次のコマンドで作成します:
mdadm --examine --scan /dev/hda1 >> /etc/mdadm/mdadm.conf結果は次のようになります:
DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a28090aa:6893be8b:c4024dfc:29cdb07a
ファイルを編集し、RAIDアレイを説明する行の最後にdevices=/dev/hda1,missingを追加します。
vi /etc/mdadm/mdadm.conf最終的にファイルは次のようになります:
DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a28090aa:6893be8b:c4024dfc:29cdb07a devices=/dev/hda1,missing
文字列/dev/hda1はハードウェアデバイスで、missingはこのRAIDアレイの2番目のディスクが現在存在しないことを意味します。
ファイル/etc/default/mdadmを編集します:
vi /etc/default/mdadm行を変更します:
AUTOSTART=false次のように:
AUTOSTART=true
これでRAIDセットアップを開始できます:
/etc/init.d/mdadm start
/etc/init.d/mdadm-raid start
RAIDデバイスが正常かどうかを確認するには、次のコマンドを実行します:
cat /proc/mdstat出力は次のようになります:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 hda1[1]
293049600 blocks [2/1] [_U]
unused devices:
LVMセットアップの復元
LVM構成ファイルはmdadm.confのような簡単なコマンドで作成できませんが、LVMはパーティションの先頭に構成ファイルの内容の1つまたは複数のコピーを保存します。ddコマンドを使用して、パーティションの最初の部分を抽出し、テキストファイルに書き込みます:
dd if=/dev/md0 bs=512 count=255 skip=1 of=/tmp/md0.txtテキストエディタでファイルを開きます:
vi /tmp/md0.txt最初にいくつかのバイナリデータが見つかり、その後に次のような構成ファイルの部分が見つかります:
VolGroup00 {
id = "evRkPK-aCjV-HiHY-oaaD-SwUO-zN7A-LyRhoj"
seqno = 2
status = ["RESIZEABLE", "READ", "WRITE"]
extent_size = 65536 # 32 Megabytes
max_lv = 0
max_pv = 0
physical_volumes {
pv0 {
id = "uMJ8uM-sfTJ-La9j-oIuy-W3NX-ObiT-n464Rv"
device = "/dev/md0" # Hint only
status = ["ALLOCATABLE"]
pe_start = 384
pe_count = 8943 # 279,469 Gigabytes
}
}
logical_volumes {
LogVol00 {
id = "ohesOX-VRSi-CsnK-PUoI-GjUE-0nT7-ltxWoy"
status = ["READ", "WRITE", "VISIBLE"]
segment_count = 1
segment1 {
start_extent = 0
extent_count = 8942 # 279,438 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv0", 0
]
}
}
}
}ファイル/etc/lvm/backup/VolGroup00を作成します:
vi /etc/lvm/backup/VolGroup00構成データを挿入して、ファイルが上記の例に似たものになるようにします。
これでLVMを開始できます:
/etc/init.d/lvm startボリュームを読み込みます:
vgscanすべての物理ボリュームを読み込んでいます。これにはしばらく時間がかかる場合があります…
メタデータタイプlvm2を使用してボリュームグループ”VolGroup00”を見つけました
pvscanPV /dev/md0 VG VolGroup00 lvm2 [279,47 GB / 32,00 MB free]
Total: 1 [279,47 GB] / in use: 1 [279,47 GB] / in no VG: 0 [0 ]
ボリュームをアクティブにします:
vgchange VolGroup00 -a y 1 logical volume(s) in volume group "VolGroup00" now activeこれでパーティションを/mnt/dataにマウントできます:
mkdir /mnt/data
mount /dev/VolGroup00/LogVol00 /mnt/data/
UTF-8形式のファイル名を持つハードディスクからデータを復元する場合、現在の非UTF-8ロケールに変換する必要があるかもしれません。私の場合、RAIDハードディスクはUTF-8エンコードされたファイル名を持つFedora Coreシステムからのものです。私のターゲットロケールはISO-8859-1です。この場合、Perlスクリプトconvmvがファイル名をターゲットロケールに変換するのに役立ちます。
convmvのインストール
cd /tmp
wget http://j3e.de/linux/convmv/convmv-1.10.tar.gz
tar xvfz convmv-1.10.tar.gz
cd convmv-1.10
cp convmv /usr/bin/convmv
/mnt/data内のすべてのファイル名をISO-8859-1ロケールに変換するには、次のコマンドを実行します:
convmv -f UTF-8 -t ISO-8859-1 -r --notest /mnt/data/*最初に変換をテストしたい場合は、次のようにします:
convmv -f UTF-8 -t ISO-8859-1 -r /mnt/data/*リンク
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。