大富豪家2.0の日記全体に公開

2006年03月27日
16:30
 Linuxディスクとの闘い
LinkStationというNASがブートしなくなってしまったので、内蔵の3.5inch ext3ディスクを取り出してファイルを復旧しようとしているのだが、デスクトップのLinux PCにマウントしてscpでWindowsにコピーしようとすると毎回違う場所でコケて終了しない。ext3ディスクをデスクトップのWindowsマシンにマウントして読むことはできるのだろうか?
LinuxDrive for Windowsというのを使うとできそうなのだが、別パーティションを読みたいというわけではないので、本当にこれが必要なのかよくわからない...
 

コメント    

2006年03月27日
16:46
まえG
もし、読めない箇所が増えて行ってるような状態だと、まずは早いとこパーティション全体をコピーするのが先決じゃないでしょうか。Linux同士だと、
dd conv=noerror,sync if=/dev/... of=/dev/...
とか。
2006年03月27日
16:47
にしだ
デスクトップのlinuxでsmbserverを動かすか、tarで必要なファイルを一旦固めてから scpしてみるというのはどうでしょう?
2006年03月27日
16:58
しゅんすけ
ext3 は Journal の部分を除けば ext2 と同じはずです.
なので
http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm
の類が使えます.
2006年03月27日
17:03
大富豪家2.0
アドバイスありがとうございます。

* 確かに放置は危険ですがパーティションごとコピーする場所が無いですね... もひとつマウントする場所もなくて...
* ssh+tarもやっぱりコケたりするんで、できればひとつのマシンで動かしたいと思ってます。固める場所は無いし...
* explore2fsって日本語ファイル名が通らないそうなんですが。
2006年03月27日
17:11
reservoir
knoppixでとりあえずどっかに ddするのが定番ですかね。
しかし、コピー先がないと辛そうです。
2006年03月27日
17:32
大富豪家2.0
Windowsの外付けディスク(NTFS)はあるんですが、そこにddできたとしてどうやって回復すればいいんでしょうかね?
2006年03月27日
17:51
shinji
tar 使えば? dev とかspecial fileがあるので、そこでこけていると想像します。dd は勧めない。
2006年03月27日
17:58
otsune
HDDセクターエラーでクラッシュ寸前という最悪の事態を想定するのであれば、新品HDDを買って来てイメージコピーですね。
「これDo台」みたいな機器でやるのもいいですが、あれはセクターエラーあるとコケるかな。

dd_rescueというコマンドがKNOPPIXあたりに有るのなら、それを使えば(セクターエラー部分以外は)新品HDDに効率的にコピーできます。
2006年03月27日
17:58
まえG
目標は、
1. そのドライブをまた使える状態にすること
2. 中身を救い出すこと
どっちでしょう? 壊れゆくディスクに対して1は危険かも。

中身を救うには、
Knoppixあたりでデバイス→普通のファイルにddして、
そのファイル(ext3 fsのイメージ)を、
・とりあえずは e2fsck -n してみる(修復はしないで検査だけ)「zero dtime」みたいな軽微なエラーだけならひと安心。
・マウント時は-o ro (readonly)を忘れずに。どうしてもrwでマウントするときは、-o noatimeを忘れずに。(さもないと読むだけでaccess timeを書き込みに行っちゃう。)
・e2fsckやmountでは、-bオプションで予備スーパーブロックを指定できる。mkfs -t ext2 -j -n -F ファイル名(実際には作らない)とやってみると、デフォルトでどこにスーパーブロックができるか判る。
・マウントしてそのまま読める内容だけで満足なら、
 tar --ignore-failed-read で読めるやつだけコピーする。
・修復が必要そうなら、ちょっと冒険だが e2fsck -p
・もっと大冒険するなら e2fsck -y

くらいのテクしか知りません。

ちなみに、うちはsoftware raid (mirror)にしました。
2006年03月27日
18:08
i16(愛一郎)@一陽來復
大富豪か?さんの時給とか考えてもドライブもう一個買ってくるのが正しいように思いますが。用が済んだら使いまわせばいいし、どうせドライブがへたってるならLinkStation用に一個は調達するんでしょうし。
2006年03月27日
18:25
大富豪家2.0
* もちろんファイルの中身の救出しか考えてません。
* 通常ファイルしかないです。(NASだったので)
* ddしたイメージファイルってマウントできるんですか? それならとりあえずddするのがよさげですね...

新しく買ったディスクをLinuxに接続してとりあえずddする、てので正しいでしょうか?
2006年03月27日
18:40
まえG
> ddしたイメージファイルってマウントできるんですか?
mountに-o loopとつければマウントできるはずです。

> 新しく買ったディスクをLinuxに接続してとりあえずddする、てので正しいでしょうか?

えーと、ddで丸ごとコピーしたイメージをそのまま使い続けるのはあんまりお勧めしません。お勧めするのは、

・壊れそうなディスク(A)から、読めるうちにパーティション全体をどこか(パーティションが空いてるならそれでも可だが、ファイルでもよい)へddでコピーし(B)
・(B)を対象に、読めるかどうかとか修復しなきゃならんかとか試し、
・最終的には新しいディスクに一から作ったファイルシステム(C)に、ファイル単位で(つまりcpとかtarとかで)コピーする。

のが良いかと。(B)の中間領域が取れないorめんどくさいなら、どれかの段階を省略するんでしょう。
2006年03月27日
18:54
まえG
念のためですが、読み取りエラーが予想されるddでは、

・必ずconv=noerror,syncをつける。
 (noerror -- エラーでも続行、sync -- エラーが起きたブロックを出力から取り除くのではなくて、かわりに同サイズのゼロを出力)
・入力ブロックサイズは、入力デバイスの最小読み取り単位にする。HDDなら512バイト(デフォルト)にする。
 (遅いけど、大きなブロックサイズにしたら、エラーの際に読み飛ばされる単位も大きくなっちゃうので。)
2006年03月27日
19:36
otsune
私だったらめんどくさいので
古いHDD=/dev/hda
新品HDD=/dev/hdc
として接続して、KNOPPIXでテキストモードで起動して、root shellで
dd if=/dev/hda of=/dev/hdc bs=512 conv=noerror,sync
して一晩ほっときますね。経験では100Gあると12時間ぐらいは平気でかかります。
んで新品HDDをマウントしてfsckなりかけてtarあたりでファイルをコピーする。

あとこんなページも
System Rescue with Knoppix
http://www.greenfly.org/talks/knoppix/rescue.html
2006年03月27日
20:59
ひろのぶ
まずハードディスクのハード自体がどんな状態なのか調べてみてはどうですか?smartctlを使ってみてください。
2006年03月27日
21:36
まえG
otsuneさんご紹介のページ良いですね。dd_rhelpなんて知らんかった...

もし素のdd conv=noerror,sync使うなら、bs=512のかわりにibs=512 obs=65536としてやると多少は(2倍くらい)速い、という経験談がぐぐると出てきました。それでも4MB/sだそうなので、100GBだと7時間...
2006年03月27日
22:28
otsune
2002/11/07 自宅(1) 「復活の日: FreeBSD ディスククラッシュ事件総括」
http://fromto.cc/hosokawa/diary/2002/20021107-home1/

これですな。
2006年03月31日
09:11
 あおしま
http://www.minaminoshima.org/EtherDrive/EtherDrive-2.4-HOWTO.html