最近終了した古いサーバー(Fedora 4 - はい、古い!)がありました。ソフトウェアRAID 1アレイに2つのIDEディスクが構成されており、データを回復しようとしています。残念ながら、mdadmを台無しにしてかなり時間が経ち、何かが台無しになっているのではないかと心配です。また、アレイに2つのディスクがありますが、そのうちの1つが完全に死んでいるようです。別のコンピュータに接続すると、コンピュータはBIOS画面で停止し、起動しません。だから別のミラーディスクを使用することにしました。
ディスクを別のコンピュータに置き、最初に試したのは実行でした。
mdadm --create /dev/md0 -v --force --raid-devices=1 --level=raid1 /dev/sdb2
ただし、これによりファイルシステムをマウントできなくなります。
# mount -t ext3 /dev/md0 /mnt mount: wrong fs type, bad option, bad superblock on /dev/md0, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so
しかし、明らかにいくつかの内容をディスクに書き戻すので、私はそれを台無しにするのではないかと心配です。
# mdadm --examine /dev/sdb2
/dev/sdb2:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : b6babdfb:e99e3bd3:398fcebe:dd38faab
Name : bluto:0 (local to host bluto)
Creation Time : Thu Dec 29 15:36:10 2016
Raid Level : raid1
Raid Devices : 1
Avail Dev Size : 310277362 (147.95 GiB 158.86 GB)
Array Size : 310277218 (147.95 GiB 158.86 GB)
Used Dev Size : 310277218 (147.95 GiB 158.86 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : active
Device UUID : 0f3d948b:398095cc:9621f72f:fcd11310
Update Time : Thu Dec 29 15:36:10 2016
Checksum : c58ea2b6 - correct
Events : 0
Device Role : Active device 0
Array State : A ('A' == active, '.' == missing)
ここで作成時間は現在であり、ホスト名「bluto」は元のサーバではなく、リカバリに使用するシステムです。それで、この文は復元作業をしながら書いたもので、重要な内容が消えたのではないか心配になります。
その後、同じディスク上の他のパーティションで実際に動作するより簡単なmdadmトリックを思い出しました。残念ながら、パーティションは単に/bootなので、データは興味深いものではありませんが、この技術が機能するはずです。
# mdadm --assemble --run /dev/md0 /dev/sdb1
mdadm: /dev/md0 has been started with 1 drive (out of 2).
# mount -t ext3 /dev/md0 /mnt
# ls /mnt
config-2.6.11-1.1369_FC4 grub initrd-2.6.17-1.2142_FC4.img System.map-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4
config-2.6.17-1.2142_FC4 initrd-2.6.11-1.1369_FC4.img lost+found System.map-2.6.17-1.2142_FC4 vmlinuz-2.6.17-1.2142_FC4
ただし、マウントを解除してmdデバイスを停止してから物理データパーティション(sdb2)で同じ操作を試みると、以前と同じエラーが発生します。
# umount /mnt
# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# mdadm --assemble --run /dev/md0 /dev/sdb2
mdadm: /dev/md0 has been started with 1 drive.
# mount -t ext3 /dev/md0 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/md0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
次は何を試すべきかわかりません。私はe2fsckを実行しようとしましたが、/dev/sdb2に対して直接実行する必要がありますか、または実行時に/dev/md0に対して実行する必要がありますか?また、fsがすでに悪い場合、状況がさらに悪化する可能性があることも心配です。