FreeBSD-11.2で、誤ってrmしてしまったファイルを復元できなかった。
rmしてしまって以降、該当ファイルシステムには変更を加えていないので、たぶん復元できるはずといろいろ試したが、どうも最近はファイルを削除するとiノードをクリアするようで、データブロックが行方不明になってしまい復元不可能のようだ。
最初はパッケージのffs2recovを試したのだが、レギュラーファイルの一覧を出す-aが想定どうりに機能せず断念。ディレクトリ一覧を表示する-dはそれらしく動いたのだが。
次にfsdb。該当ファイルシステムをread onlyでマウントして、ファイルがあったディレクトリのiノード番号を確認。ディレクトリを16進ダンプすると、消してしまったファイルのiノード番号が確認できた。
fsdbでブロックデバイスを開いて、消してしまったファイルのiノードを選択するとUnallocatedとなるが、chtype fileとするとiノード情報が見えるようになる。サイズが0になっているのでblocksしてもデータブロック番号が見えない。さらにchlen <適当なサイズ>(このコマンドはmanに記載が無い)すると見えるようになるが、ブロック番号は0が並んでいるという結末だった。
iノードがクリアされていなければ、fsdbからディレクトリにlnして復活できそうだったのだが。残念。。。
2019年2月10日日曜日
登録:
投稿 (Atom)