[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:06673] Re: Can I "cat hogehoge > dev/hda1"



加藤@DTI東京です。

#新しくHDDを買って来てなんとか環境復旧が終りました。

---- kojima@linet.gr.jp 様が 00/07/12 13:08:48 に書かれた
「[plamo:06616] Re: Can I "cat hogehoge > dev/hda1"」へのお返事です ----

> HDD に対してはやったことが無いですが CD-ROM なら cat /dev/cdrom した中
> 身を loopback でマウントすることができたと思うので、
> # mkdir /loop
> # mount hogehoge /loop -o loop
> してみたらどうでしょう? 

あ、うっかり忘れてました。loopがありましたね。

> もとのが 500M のパーティションなら 2G のパーティションに書きこんでも 
> 500M しか認識されないし、200M のパーティションに書き込んだ場合、200M 
> 以上の部分を読みに行こうとして kernel panic するんじゃないかな?

うーん、以下のような解釈でいいんでしょうか?

ext2には DOSの FAT領域のような 「inodeテーブル情報」がどこかに存在する。
そこに「このパーティションは inodeが n個あって、1inodeで 4096byteを占める」
みたいなのが書き込んである。ゆえに以下の場合 linuxからは 500MBにしか見えない

               500M                             2G
|---------------|------------------------------|
 inode割り当て済   inodeが割り当てられていない

しかしパーティション情報そのものが壊れているわけではなく、
「inodeテーブル情報」とパーティションサイズが矛盾しているだけである。
で、なんらかのツールで「inodeテーブル情報」に実態を反映させられれば
それは解消する……。

……それはまぁ置いておきまして、実験をしてみました。
slackware7.0のブートディスク、ルートディスクを使い起動。
新しい HDDに元よりもちょっと大きめのパーティションを作成し、
cat で書き込んでみました。
書き込み自体は問題なく終了し、 hda1をマウントしてみたところ
エラーメッセージが大量に出て来ましたが、ファイルはきちんと読めました。
で、そこから e2fsckを取り出し、hda1をアンマウントしてから
./e2fsck -v -y /dev/hda1 してエラー修正を試みましたが、
マウントするたびにエラーメッセージが大量に出て来ました。
どうも fsckだけでは解決できない問題のようです。

結局、新規にインストールしなおし、
バックアップファイルは loopでマウントして必要なファイルを取り出しました。
アドバイスありがとうございました。

-- 

――――――――――――――――――
  東京府豐多摩郡柏木蜀江坂
  加 藤 孝 幸 : rrr@pluto.dti.ne.jp
  http://www.pluto.dti.ne.jp/~rrr/
  ICQ : 4413871(GTKICQ on X-window)
――――――――――――――――――

References
[plamo:06615] Can I "cat hogehoge > dev/hda1", Kato Takayuki
[plamo:06616] Re: Can I "cat hogehoge > dev/hda1", KOJIMA Mitsuhiro

[検索ページ] [メール一覧]
Plamo ML 公開システム