破滅の呪文
何かミスをしてじわじわと焦りが込み上げ、最終的にこれ実は夢じゃね?みたいになった経験があるでしょうか?僕は一度あります。それは、破滅の呪文を唱えてしまった時。(バルスじゃありません。)
これが、その呪文。
$ sudo rm -rf /
「はぁ...?」という声が聞こえてきそうなのでこの暗号を簡単に解説すると、
rm = remove (削除せよ)
-r = recursively (ディレクトリをその中のファイルまで含めて)
f = force (命令の結果に関する警告なしで)
/ = root (PCのルートディレクトリを)
もうおわかりでしょうか、これはすなわち「このパソコンの全てのデータを有無を言わさず、削除せよ」という命令。そう、1行でPC上のアプリからOSに至るまで、文字通り全てのデータが消てしまう、まさに破滅の呪文なのです。
こういうコマンドは通常Macのterminalというアプリに直接入力して、命令することで実行します。そして多くの場合、上のような破壊的な命令も結構簡単に実行できたりするんです。
残念ながらterminal上で『rm = remove』の呪文が唱えられてしまったデータに、「ゴミ箱」などという軟弱な場所は与えらません。わけわからん状態で、わけわからんスピードで流れる大量のログ (ファイルが削除されている様子)を前に、何も成せずぼーっと見ていることしかできなくなります。(まじで)
普通に考えて「破滅の呪文」がそんな簡単に実行できてしまうのは流石に問題でしょ?ということで、このシステム作った人(?)も一応このコマンドを打ったら -f(命令に対する警告なしで)をつけていても警告を出してくれるらしく、
$ rm -rf / --no-preserve-root
こうしないと実際には何も起こらないと(ネットには)書いてありました。が、僕が打ったコマンドはよく見ると
$ sudo rm -rf /
sudo = super do すなわち、「管理者権限の元以下のコマンドを実行せよ」というもの、多分これのせいで警告が出ることなくコマンドが実行されてしまったんだと思います。
ネットにも書いてあったしこんな簡単に消えるわけないよね????、という微かな望みにかけましたが、停止命令すらも無視して烈火の如く流れ続けるログを前に、確実に死が近づいていることを悟りました。
なぜこんなコマンドを打ってしまったのか
おそらくなんでこんなコマンドを打ってしまったのかと疑問に思われているでしょうか?
僕はエンジニアなので、毎日terminalを使うし、基本的なコマンドはおさえてるし、ルートディレクトリを削除する方法も、それをすればどうなるかももちろん知ってはいたんです。
これは僕の横着によって起きてしまった悲劇...
その日、僕の友達がデータベースのエラーがどうしても解決できないと僕に相談してきました。それを解決するために、いくつかのコマンドを叩くと、以下のファイルを削除せよというシステムメッセージが表示されたので、
(以下は打ったコマンドとその結果の再現ログ)
$ brew doctor
delete these directories
/usr/bin/hoge
/usr/bin/fuga
/usr/bin/piyo
.
(こんな感じのが100行くらい)
.
/usr/sbin/hoga
/usr/sbin/fugo
/usr/sbin/piya
↑これをエディタで編集し、以下のように「sudo rm -rf」(管理者権限で強制削除)を全ての行(ディレクトリ)に対して実行を試みました。
(↑の編集後)
$ sudo rm -rf /usr/bin/hoge
$ sudo rm -rf /usr/bin/fuga
$ sudo rm -rf /usr/bin/piyo
.
.
.
$ sudo rm -rf /usr/sbin/hoga
$ sudo rm -rf /usr/sbin/fugo
$ sudo rm -rf /usr/sbin/piya
この時、「sudo rm -rf」を別のエディタで一括置換により全ての行頭につけ、そこからコピー&ペーストでterminalに貼り付けたのが悲劇の根源。事態は急転。僕はおそらくコピーをミスり、
$ sudo rm -rf /usr/bin/hoge
$ sudo rm -rf /usr/bin/fuga
$ sudo rm -rf /usr/bin/piyo
.
.
.
$ sudo rm -rf /usr/sbin/hoga
$ sudo rm -rf /usr/sbin/fugo
$ sudo rm -rf / (<=この行)
(最終行が完全にコピーできなかった)そのことに気づかず実行されてしまったのです。
100行くらいの削除にしてはやけにログが長い上に、よく見るとitunesとかapplicationとか絶対ありえないものがどんどん消えていってる、すかさずCtr+C(命令停止コマンド)を鬼神のごとく連打するも、コマンドを受容システムすら壊れてしまったのか、およそログが止まる気配などありません。
複数shellを立ち上げていたので、命令を下したshellを閉じ、隣のshellから何が起こっているかを確認、復旧を試みるもlsやcatは愚か、ビルトインコマンドすら反応せず、新規shellを立ち上げた瞬間exitしてしまいます。
そして、お気づきでしょうかか?最大の冷や汗ポイント!
これは僕のPCではなく、友達のPCで起こしてしまった出来事!!
This is not on my PC but no my friend's!!
(大事なことなので二回言いました)
あぁこれが自分のPCだったらどれだけよかっただろう...SlackもChromeもアプリはどんどん消えてゆき、再起動後はログインすらできない状態に。セーフブート起動や、NVRAMリセット、起動画面からのterminalの操作、外部OSの接続など、データを取り出すためににできることは全てやったものの、結局何一つ戻りませんでした。
「おぉ、神よ時間を戻してくれ給え...。」なんてこの時ばかりは思いました。
データの価値ってなんだろう
彼の二年分のデータ、僕はどうやったらその対価を支払えるでしょうか?幸い仕事に必要なデータはほとんどリモートにあったし、何より彼は優しい人で、全く怒らず許してくれましたが。
そもそも、データの価値ってどう勘定すればいいんでしょうか?仕事で使う予定だったデータや大学で提出する予定だったレポートは確かに、消えてしまえば明確な損害として、お金や時間に変換して考えられるけど、昔のデータはどうでしょう。ハードディスクの奥底に眠り、もう目に触れることさえないようなデータはどんな価値が?
感情や、精神的な価値?
人間の記憶能力は完全でなく、他人の言ったことや、自分で考えたことさえ忘れてしまうものです。記憶は消えてしまうものだし、そこに少しの寂しさはあるものの、忘れてしまうことに戸惑いはなく、思い出せないことはそれだけのことと割り切れる気もします。それがもともと自分の外にあるデータならなおさら。と、自分のことならそういえます。
だけど他人のデータにそんな価値付けをやすやすとできるわけがありません。お金や時間で賠償できないないようなデータ---その人の感情の価値を僕は推し量ることすらできないでモヤモヤしてしまうのです。
とはいえそんな感慨に耽っている場合でもありません。とりあえず言えるのは、少なくとも2年間は僕は彼の新たなデータの蓄積に無償で貢献しなければならないということ。この罪の重さは、そうそう簡単に償えるものでは、、、なさそうです。
この記事が気に入ったらサポートをしてみませんか?