web-dev-qa-db-ja.com

家の誤った削除

私は誤ってこのコマンドを実行しました:

Sudo sh

その後:

rm -r ~

ターミナルを閉じましたが、まだ多くのファイルがなくなっており、ゴミ箱にありません。それ以来コマンドを実行していないので、以前のコマンドを元に戻す方法はありますか?誰か、助けてください!

4
Shagun Sodhani

残念ながら、一般的に、これは元に戻せません。グラフィカルユーザーインターフェイスを使用してファイルを削除する場合にのみ、ファイルはゴミ箱に移動されます。コマンドラインの目的は強力にすることですが、大きな力には大きな責任が伴います:-)

編集:コメンテーターの一人が正しく指摘したように、liveCDを起動してそこからextundeleteを使用することをお勧めします。そうすれば、実際のシステムは変更されません。

この回答の残りを読む前に、 この記事 をお読みください。

ただし、試してみることができるundeleteユーティリティ(ただし、動作が保証されているわけではありません)があります。

まず、ext3またはext4ファイルシステムがあることを確認します(ターミナルからこのコマンドを実行します)。

mount

次のような行が表示されるはずです。

/dev/sda6 on /home type ext4 (rw)

(自宅が別のパーティションにある場合)または

/dev/sda1 on / type ext4 (rw,errors=remount-ro)

(ホームがルートパーティション上にある場合)。疑問がある場合は、ここにmountコマンドの出力全体を投稿してください。

次に、コマンドラインからUbuntuソフトウェアセンターのいずれかを使用してextundeleteをインストールします。

Sudo apt-get install extundelete

悪いニュースは、これからもっと複雑になることです。さらに、コマンドラインからrootとして作業し、システムを完全に破壊する力があるため、入力する内容に注意してください。

まず、マウントされたパーティションでextundeleteを実行しないでください。また、自宅のどのデバイスにあるかを知る必要があります。ホームが別のパーティションにある場合(上記の例のように/ dev/sda6など)、Ubuntuをセーフモードで起動します。ブートプロセス中にShiftキーを押し、メニューが表示されたら、回復モードを選択し、「ルートコマンドプロンプトにドロップ」します。

次に、書き込み可能なルートファイルシステムを再マウントする必要があります。

mount -o rw,remount /

次に、実行します

extundelete /dev/sda6 --restore-all

まだ保存できるファイルは復元され、extundeleteはそれらを保存した場所を表示します。

残念ながら、私の経験から、extundeleteは頻繁に実行されます。多くの場合、「セグメンテーション違反」が発生します。その場合、ソースをダウンロードして自分でビルドする必要がありますが、これで問題が解決するはずです。

将来のために、昔のことわざを覚えておいてください:2種類の人々がいます。適切なバックアップを行う人とそうする人。 Ubuntuでバックアップを作成するのは簡単です。

2
January