![]() |
|
1.1) | マウントが出来ない場合。(まず現状の状態をコピー) |
とても大事で、絶対に消したくない場合は、マウントできないディスクを、そのままコピーしてまずはバックアップを取る。 | |
dd if=/dev/コピー元 of=/dev/コピー先 conv=noerror,sync ibs=1b | |
conv=noerror,sncは「読みとりエラーがあっても続行する。 エラーで読めなかった部分も出力から省かない(同じバイト数だけnulで埋めて 出力する)」という意味だそうです。 |
|
準備が出来たら、対象のHDDを確認するわけだが、HDDのパーテッションが1パーテッション、もしくは、区切ったブロックを覚えていれば、 まず、対象のディスクに対して、fdiskをしてみる。すると、こんなメッセージが出る場合がある。 |
|
1) ブート時に実行するソフトウェア
(例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) 警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって正常になります |
|
ここで、いったんw等押さないでqでfdiskを抜けてマウントするとデータが100%復帰している場合が多々ある。(理由はわかりません) 自分の場合は復帰したが、2台中1台は復帰できたが、もう一台は無理だった。 wを押した場合もあったが、対象HDDが1パーテッションだったので、一度領域を開放して、また同じだけ領域を確保し、wキーを押した。実際のところは、wを押すだけでよいのかもしれないが消える場合もあるので要注意。 |
|
1.2) | fdiskをしても 駄目だった場合 |
本当にdiskの寿命か、badblockが頻繁にある場合は、mountするたびにデータが壊れていく最悪な事態が起こる。自分の経験では3回mountしたら、二度とデータがとり出せない状態になった。なので壊れた状態でも、あまったHDDがあれば、1.1)の方法でコピーを取ってから作業をした方が精神的に楽だ | |
自分は成功したこと無いんだが、バックアップスーパーブロックなどを使って強制的に、mountを試みてみる方法があるそうだ。やり方は以下のとおり。 | |
1)エラーのあるファイルシステムでマウントできない場合 |
|
mount -o ro,errors=continue
/dev/対象DEVICE 運がよければマウントできるそうだが出来たためしがない。 |
|
2)スーパーブロックが壊れていてマウントできない場合 |
|
mount -o ro,sb=Backup
superblock番号 /dev/対象DEVICE 上記の方法を試してみる。Backup superblockを指定して読み込ませる方法だ。Backup superblockがわからない場合、は、dumpe2fsコマンドで調べてみる。 dumpe2fs /dev/hdd | less <--かなり量が多くスクロールしてしまうので、 less なり moreで、ページ改行できるようにしておくといいかもしれない。 |
|
#dumpe2fs
/dev/hdd | less Group 1: (Blocks 32768-65535) Backup superblock at 32768, Group descriptors at 32769-32773 Block bitmap at 32774 (+6), Inode bitmap at 32775 (+7) Inode table at 32776-33287 (+8) 32248 free blocks, 16384 free inodes, 0 directories Free blocks: 33288-65535 Free inodes: 16385-32768 このような情報が沢山表示される。 |
|
3)どのBackup superblockを使ってもmount出来ない場合 |
|
mount -o
ro,errors=continue,check=none /dev/対象DEVICE これでもマウントできない場合もある。その場合は、fsckを最後に試してみる。 |
|
4)どの方法を使ってもマウントできない場合 |
|
fsck -y /dev/対象デバイス 上記の方法を試してみる。 -yのオプションは、修正個所が見つかった時に、直すかどうか聞いてくるかどうかなのだが、直すしかないので、全部yesにするオプションを指定する。 運がよければデータは復帰し、mount出来るようになる。 復帰できなかったデータは、lost+found というディレクトリィに退避される。 lost+fondのなかのデータも生きてる場合が結構あるので、地道にサルベージの作業を行った方がいい。 |
|
5)fsck がかからない。 | |
普通は、 fsck -b BackupSuperBlock番号 -y /dev/device 又は fsck -y /dev/deviceを試してみる。 しかしうまくいかない場合は、以下のような直し方もあるようなので、参考にしたい。 debugfs /dev/対象DEVICE でDEVICEのデバックモードを開く journalの情報をクリアしてみる。 debugfs: set_super_value journal_inum 0 quitで抜けて、fsck -y /dev/対象deviceを試す。 |
|
6)1-5のすべてを試して精根尽きたが、諦められない場合 | |
莫大な費用を払って、サルベージ会社に依頼してください。 数十万も出せるかボケェって方は、3マンちょっと出して、Linux用のファイナルデータを買ってみるのもいいかもしれない。自分は買った。 |
|
以上健闘を祈る
|
|
![]() |
|