Linux で決して実行してはいけないコマンドを 1 つ実行しました。何が起こったのか
Linux コマンドの中でも、rm は有名です。 root として rm コマンドを 1 つ間違えて入力するだけで、システムを完全に消去するのは簡単です。いけないことはわかっていましたが、とにかく意図的にそのコマンドを実行しました。その理由は次のとおりです。
rm -rf を実行する理由
例を示す
これは単なる実験として意図されたものです。私は Linux を長く使っているので、無計画に rm のような危険なコマンドを実行してはいけないことを知っています。これを最新の Linux システムで試してみるとどうなるかを確認したかったのです。 VirtualBox の使い捨て Linux 仮想マシンでこれを実行しているだけなので、ある程度の安全性はあります。私なら、日常的に運転するドライバーにこのようなことは試みないだろう。
また、Linux マシンに最悪の事態が発生した場合に、実際にどの程度回復できるか試してみたかったのです。 VirtualBox の機能を利用して、仮想マシンのクローンを作成し、以前のスナップショットにロールバックします。
通常のシステムでは、これにはバックアップからの復元が含まれる場合があります。
私が破壊している Linux システム
使い捨て環境
前に述べたように、このコマンドは仮想マシン上で実行します。これは、私が選んだディストリビューションである VirtualBox で作成された、まったく普通の Debian インストールです。標準の Debian インストール プロセスを経た、完全にストック状態です。 4GBのRAMを搭載したデュアルコアマシンです。すべてを削除しようとするシステムに多くの馬力が必要になるとは思いませんでした。
ソフトウェアも軽量でした。私は、標準の Debian デスクトップ ソフトウェアを備えた頼りになる Xfce デスクトップを選択しました。
コマンドを実行すると何が起こったのか
大量破壊の前のありがたい警告
仮想マシンを使用していましたが、これから何をしようとしているのかについて若干の不安を感じました。私は深呼吸してターミナルを開き、次の一見何の害もないコマンドを入力しました。
sudo rm -rf /
このコマンドが意味するのは、ルート ディレクトリ、つまり「https://www.howtogeek.com/」 (root ユーザーと混同しないでください) から開始してすべてのファイルを削除し、すべてのサブディレクトリを再帰的に下って「強制的に」削除するということです。これは、ファイルが存在するかどうかに関係なく、いかなる種類のプロンプトも表示せずに続行することを意味します。つまり、これにより、Linux インストール内のすべてのファイルが削除されます。
これを入力して Enter キーを押しました。 Linux が完全に破壊されると予想していました。代わりに、次のような単純なエラー メッセージが表示されます。
rm: it is dangerous to operate recursively on "https://www.howtogeek.com/"
rm: use --no-preserve-root to override this failsafe
GNU バージョンの開発者は、少なくともルート ディレクトリでの実行に関しては、伝説的に安全ではない rm の動作に対して最終的に何らかの措置を講じたようです。
Linux の全滅と私の間にあった唯一のものは、コマンドライン オプションでした。私は、無謀であるふりをして、次のように追加して続行しました。
sudo rm -rf / --no-preserve-root
これは、rm がルート ディレクトリ内のファイルを削除することを意味します。
真剣に、これはやめてください。
システムに何が起こったのでしょうか?
すべても何もも
私はもっと壮絶な Linux の破壊を期待していました。代わりに、デスクトップにエラー メッセージが表示され、カーソルが点滅する以外は画面が真っ暗になりました。 Xfce やシェルを含め、現在の環境がメモリに残ることを期待していました。私が何年も前、Linux 初期の頃にマシンを別のディストリビューションに切り替えるときに意図的にこれを行ったとき、それが起こったことを覚えています。
仮想端末を切り替えてログインできるか試してみましたが、Alt キーとファンクション キーを押しても何も起こりませんでした。システムが使用できなくなることは予想していましたし、とにかく仮想マシン上でしか使用していなかったので、パニックにはなりませんでした。パニックにはなりませんでした。マシンの電源を切ったばかりです
回復できるでしょうか?
簡単に言うと「はい」です
私が考案した回復戦略をテストしたかったのです。これは明らかにカジュアルなものでした。 VirtualBoxのスナップショット機能を使うと良いでしょう。 Linux を完全に破壊する試みを開始する前に、仮想マシンの状態のスナップショットを作成しました。ロールバックできるかどうかを確認したかったのです。さらに良いことに、私は自分の環境のクローンを破壊しただけなので、回復できなくても失うものは何もありません。
仮想マシンをパワーオフするときのシャットダウン メニューには、以前のスナップショットに復元する便利なオプションがすでにあり、私はそれを実行しました。仮想マシンが再起動して、作成したスナップショットが表示され、何事もなかったかのように、以前と同じように Debian Xfce デスクトップに戻りました。
私の実験の教訓
Linux を破壊するこの実験全体は、なぜ Linux がプログラマーやその他の技術系の人たちにこれほど人気があるのかを示しています。すべてのファイルを削除するなど、注意しないと致命的なことをしてしまうリスクがあるとしても、やりたいこととの間に大きな障壁はありません。 Linux は Unix から多くのアイデアを継承していますが、それには「プログラマーによるプログラマーのための」という点も含まれます。主なポイントは、コマンドを入力するとき、特に root で rm などの破壊的な可能性のあるコマンドを実行するときは、Enter キーを押す前に注意する必要があるということです。
このエピソードは、適切な戦略があれば回復できることも示しています。重要なサーバーなどの実際のシステムでは、実際のバックアップ戦略を実装したでしょう。スナップショットにフォールバックできるということは、以前の計画があれば、このような状況から回復できることを示しています。それは保険のようなものです。必要にならないことを望みますが、最悪のことが起こった場合には、入っていてよかったと思うでしょう。
関連情報は以下のリンクからご確認いただけます