警告:switch_rootは、現在のルートファイルシステム上のすべてのファイルとディレクトリを繰り返し削除します。
--from 、man switch_root
バージョンutil-linux
2.32-2.fc28.x86_64
なぜ?
答え1
の正確な動作をswitch_root
以下に説明します。
https://github.com/torvalds/linux/blob/v4.17/Documentation/filesystems/ramfs-rootfs-initramfs.txt
別のルートデバイスに切り替えるときは、initrdivov_rootを実行してRAMディスクを取り外します。しかし、initramfsはrootfsです。 ivot_root rootfsを使用またはマウント解除できません。代わりに、rootfsのすべてのエントリを削除してスペースを解放してください(
find -xdev / -exec rm '{}' ';'
)...
Linuxが初期rootfsの削除をサポートしていない理由は次のとおりです。
Rootfs は、2.6 システムに常に存在していた ramfs (またはアクティブな場合は tmpfs) の特別なインスタンスです。 rootfsをアンマウントできない理由は、initプロセスを終了できないのとほぼ同じです。空のリストを確認して処理するために特別なコードを使用する代わりに、カーネルは特定のリストが終了しないように小さく、簡単に保証できます。空になる。