web-dev-qa-db-ja.com

rootfs#とは何ですか?それで何ができますか?

ディストリビューションの起動に失敗したとき、何度も[rootfs /]#プロンプトが表示されました。通常、使用できるコマンドが限られているため、問題を解決できないことがわかったので、置いていた予備のLive CDを使用しました。

しかし、rootfsプロンプトとは何ですか?使用できるコマンドが限られているのはなぜですか?また、問題が修正された後、それを使用してシステムを起動できますか?

18
Wolfizen

Rootfsramfs(または有効な場合はtmpfs)の特別なインスタンスであり、常に2.6 systemsに存在します。 rootfsをアンマウントすることはできません。

enter image description here

カーネルの初期化時には、rootfsと呼ばれる絶対に最小限のファイルシステムが登録されています。このファイルシステムを実装するコードはfs/ramfs/inode.cにあり、ramfsファイルシステムのコードも含まれています。 rootfsは、MS_NOUSERフラグの指定を除いて、基本的にはramfsと同じです。これはgraft_treeのルーチンfs/namespace.cによって解釈され、ユーザーランドプロセスがrootfsを独自にマウントすることを妨げていると思います。

ルーチンinit_mount_tree(fs/namespace.cにあります)は、システムの起動時に呼び出され、rootfsのインスタンスをマウントして、現在のプロセスのルート名前空間にします( Linuxでは、異なるプロセスは異なるファイルシステム名前空間を持つことができます)。

すべてのアプリケーション、設定、デバイス、データなどが含まれています。ルートファイルシステムがないと、Linuxシステムは実行できません。

参照: https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt

10
stderr