1文字間違えると大惨事、ddでインストーラ書き込み
前回は、Ubuntu Serverのインストーライメージファイルを誤って、USBメモリではなくUbuntu Serverがインストールされているハードディスクに書き込んでみた。一見すると問題なく動いているようだったが、どうにもファイルシステムの挙動が怪しく、さらにシャットダウンコマンドも機能しなかった。そして、強制的に再起動すると、システムではなくインストーラが起動してくることを確認した。今回はこれをUbuntu Desktopでやってみよう。
実際問題、Ubuntu Serverを運用しているケースで、USBメモリにインストーラを書き込むといった使い方は滅多にしない。むしろ、Ubuntu Desktopを普段使いの環境として使っているケースのほうが、USBメモリにインストーライメージを書き込むといった操作をする可能性が高い。実にデンジャラスである。
これはLinuxに限らず、macOSでも同じだ。macOSでddコマンドを使って同じことをするにはちょいと工夫が必要なのだが可能だ。つまり、同じようにミスをして、macOSのディスクがUbuntuインストーラに入れ替わりという状況にもなり得るということである。
Ubuntu Desktopで実行
Ubuntu Desktop 18.04 LTSを用意する。dfコマンドでシステムを用意されているデバイスを調べる。今回使った環境では、/dev/nvme0n1にシステムがインストールされている。
Ubuntu Desktop 18.04 LTSのインストーライメージをダウンロードしてきてddコマンドで書き込んでみる。インストーライメージファイルのサイズは1.9Gくらいだ。
Ubuntu Serverの時は無事に書き込みが完了したのだが、Ubuntu Desktopのほうはもっとすごい。いきなり画面がブラックアウトした。
システムが反応しなくなったので強制的に再起動すると、次のようにインストーラが起動してきた。
Ubuntu Desktop 18.04 LTSのインストーライメージファイルはUbuntu Server 18.04 LTSのインストーライメージファイルよりもかなりサイズが大きい。書き込みを行っている間に、削除していはいけない部分を上書きしてしまったのではないかと推測される。
ddでインストーラを書き込む時は厳重な注意を
前回と同じ結論になるが、ddでディスクにデータを書き込む時はとにかく注意が必要だ。特に疲れている時や注意散漫になっている時は、なぜかメインのディスクにインストーラを書き込むことがある。理由はわからないが、そのファイルがUSBメモリのデバイスファイルだと思い込んでおり、異変が起こった後も理解が追いつかないということがある。要するに、疲れているのだ。
ddコマンドに限らずshedコマンドでもそうなのだが、物理ストレージに対応したデバイスファイルに直接書き込みを行うということは、これまで紹介してきたように悲しい結果を生む可能性がある。デバイスファイルを直接扱う時は細心の注意を払い、頭脳が疲れていない時に作業することが望まれる。