0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LXCで「rm -rf /*」やってみた in proxmox

0
Last updated at Posted at 2023-07-22

作成日:2023年7月22日

自分の中で最凶コマンドと名高いrm -rf /*を実行するとどうなるのか、実際に試してみました。

rm -rf /*とは

ざっくりと説明すると「OSのrootディレクトリ配下を再帰的かつ強制的に削除する」コマンドです。

今回の環境

proxmox内に作成したUbuntuのLXCで実行します。

OS:Ubuntu 22.04 LTS (GNU/Linux 5.15.83-1-pve x86_64)

コマンド実行前のディレクトリ構成

treeコマンドでデフォルトのディレクトリ構成を確認すると、このようになっていました。22個もあるんですね。
コマンド実行前のディレクトリ構成

*を付けずに実行してみる

「危ないから本当にやるなら--no-preserve-rootを付けなね!」と親切に警告を表示してくれます。確認しましたが、ディレクトリは何も消えていませんでした。
*を付けずに実行した結果

実行してみる

次は*を付けてrm -rf /*を実行してみました。すると、以下のようにrm: cannot remoevという行が大量に表示されました。
最凶コマンド実行結果

暫くして処理が終わり、
もしかして思ったよりディレクトリは消えてないのでは?と思ったのでtreeで確認してみます。
/usr/bin/tree: No such file or directoryの画像

treeが消えてました

じゃあ普通にlsで見てみるかぁ~と思い実行してみると、

/usr/bin/ls: No such file or directoryの画像

lsも消えてました

それもそのはずで、bashの組み込みコマンド(buildin commands)以外は全て消えています。組み込みコマンドの一覧はhelpで確認することが出来ます。

組み込みコマンドだけでなんとか出来ないのかと思いましたが、何も思い浮かばなかったので、大人しくproxmox側から覗いてみたいと思います(オンプレでベアメタルならbootableデバイスを挿してboot deviceを変更する、みたいな復旧手順になるかなぁ~と妄想したりしました)。

Proxmox側から見に行ってみる

LXCは/var/lib/lxc/{container_id}という場所にあります(chatGPTに教えてもらった)。中にはこのようなものが入っています。

apparmor  config  rootfs  rules.seccomp

このうち、今回破壊したのはrootfs(root file system)です。
image.png
中身は見事に空になっていました。実行時にcannot removeと表示されていた/sysもありません。

結局消えるんか....

コンテナのメタデータだけが残っているような状態なのかなぁと思いました。

感想

こうなってしまえば、後はrootfsを再度移植するぐらいしか手だて無くない?という気持ちです。そもそもLXCはホストのカーネルを用いながら、cgroupとnamespaceで分離しているような環境なので、ファイルシステムを消してしまえばそらそうなるかという気もします。

次回は、仮想化してない環境で試してみようと思います。

追記
使い終わったLXCが削除できないことに後から気付き、そちらも別記事にしました。

参考

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?