[an error occurred while processing this directive]
|
|
| トップ | 最新号 | メール配信 | 年間購読 | 日経Linuxとは | 広告掲載企業へのリンク&資料請求 | ||||||||||||||||||||||||||||||
![]() ITProサイト内検索 |
Linuxで使用しているExt2ファイル・システムは,削除したファイルを復活させるための仕組みを基本的には用意していません。そのため,簡単かつ確実にファイルを復活させる方法はありません。ただし,ファイルを削除した直後なら高い確率で復活させることができます。ファイル復活にはいくつかの方法がありますが,最も簡単なのがmc(GNU Midnight Commander)というファイラ(ビジュアル・シェル)を利用する方法です。以下ではその方法を紹介します。 まずは書き込み不可にファイル復活で最も重要なのは,復活させようとするファイルがあるパーティションを即座に書き込み不可にすることです。Linuxのようなマルチユーザー/マルチタスクのOSでは,他のユーザーやプロセスがファイル・システムに変更を加える可能性が常にあります。ハード・ディスク上のデータが上書きされてしまうと復活できなくなりますから,できるだけ早くパーティションを書き込み不可にしなければなりません。削除したファイルが/homeパーティションにあったとすると,mountコマンドを使って,
# mount -o remount,ro /home
とすれば,読み出し専用で再マウントされ,書き込み不可になります。 mcを使ったファイルの復活多くのディストリビューションでインストールされているmcは,ファイル復活機能が有効になっています。そこで,通常はそのままこれを使用すれば良いのですが,万一,ファイルの復活機能が有効になっていないmcがインストールされている場合は,mcを自分でコンパイルする必要があります。 mcのコンパイルには表1の2つのアーカイブが必要です。アーカイブ入手後,図1のようにmcをインストールしてください。 こうしてインストールしたmcをroot権限で起動します。「コマンド」メニューに「ファイルの復活」という項目が追加(写真1)されていますので,これを選択し,適切なデバイス名を入力します。削除されたiノードの一覧が表示されますので,削除された時間やサイズなどを手掛かりに目的のファイルを探してください。それらしいファイルが見付かったら,これを他の書き込み可能なパーティションにコピーします。コピーする際に元のファイル名に戻せば,ファイルが復活します。 Ext2の削除取り消し属性Ext2ファイル・システムでは,ファイルに削除取り消し属性を設定できるようになっています。あらかじめこの属性を設定しておくと,ファイルを削除しても確実に復旧可能になるとされています。ただし,この属性は実際には未実装で,これを利用しているコマンドやアプリケーションはほとんどありません。http://amadeus.uprm.edu/~undelete/に対応モジュールがありますが,あまり活発には開発されていないようです。 うっかり削除を無くすためにこのようにExt2ファイル・システムでは,いったん削除したファイルの復活は不可能ではありませんが不確実で面倒なものです。重要なファイルを誤って削除しないよう,あらかじめ対策を施しておくようにしましょう。 対策としては次の方法があります。 (1)パーミッションの設定ファイルの書き込み権限を外すとファイルは削除できなくなります。重要なファイルは,
$ chmod -w daijifile
として保護しておきましょう。ファイルの所有者であっても,ファイルを削除しようとすると次のように確認が求められるようになります。
$ rm daijifile
![]() rm: daijifile: override protection 444 (yes/no)? no
(2)ゴミ箱の利用MacOSやWindowsではファイルはすぐには削除されず,ゴミ箱に保存されます。LinuxでもKDEやGNOMEなどのデスクトップ環境にはゴミ箱が用意され,うっかり削除を防止できるようになっています。 コマンド・ラインでも,例えばrmコマンドを図2のようなシェル・スクリプトと置き換えることで,ゴミ箱に相当する機能を利用できるようになります。ファイルは削除されるのではなく,ホーム・ディレクトリのgomibakoというディレクトリに移されます。 (3)-iオプションの利用rmコマンドを使用するときに-iオプションを付けるようにすると,本当にそのファイルを削除しても良いかを確認するメッセージが表示されます。
$ rm -i file
![]() rm: remove file (yes/no)? no
オプション指定が面倒な方は,エイリアスを設定しておくと良いでしょう。
$ alias rm="rm -i"
このようにすると,rmコマンドを実行すると必ず-iオプション付きの動作をするようになります。ただし,エイリアスの利用はお勧めできません。エイリアスを利用した環境に慣れ過ぎると,エイリアスを設定していない環境で作業する際にミスを犯しやすくなるからです。 大事なファイルを削除する場合には,ワイルド・カードを使用せずに,完全なファイル名を指定するように心掛けることも重要です。 (回答者:渡辺 智)
[an error occurred while processing this directive] | |||||||||||||||||||||||||||||