GNU/Linux >> Linux の 問題 >  >> Linux

一部の Linux システムでは、mtab でルート ファイルシステムが /dev/<実デバイス ノード> ではなく /dev/root として表示されるのはなぜですか?

これは通常、initramfs を使用した結果です。

カーネルのドキュメントから (https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt)

<ブロック引用>

rootfs とは

Rootfs は ramfs (または、有効になっている場合は tmpfs) の特別なインスタンスであり、2.6 システムには常に存在します。 init プロセスを強制終了できないのとほぼ同じ理由で、rootfs をアンマウントできません。空のリストをチェックして処理するための特別なコードを用意するのではなく、カーネルが特定のリストが空にならないようにする方が小さくて簡単です。

ほとんどのシステムは、rootfs を介して別のファイルシステムをマウントし、それを無視します。ramfs の空のインスタンスが占有するスペースの量はごくわずかです。

したがって、rootfs initramfs 用に作成されたルート ファイルシステムであり、アンマウントできません。

/dev/root に関して 、これについてはあまり確信が持てませんが、正しく思い出せば /dev/root initrd の使用時に作成されます (initramfs とは異なります)。


Gentoo には、まさにこれを行うパッチがあります (実際のルート デバイスが表示されるようにします)。ここで見つけることができます:https://lkml.org/lkml/2013/1/31/574


Linux では、/dev/root が存在する場合は、起動時に作成された実際のデバイスへのシンボリック リンクです。

readlink /dev/root を使用するか または cat /proc/cmdline root を見る 起動されたカーネルのパラメーターを調べて、その背後にある実際のデバイスを見つけます。

dracut(8) から

<ブロック引用>

ただし、ブートを正常に続行するには、ルート ボリュームを見つけて、ファイル システムを指すシンボリック リンク /dev/root を作成する必要があります。


Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. / dev / stdin、/ dev / stdout、および/ dev / stderrはどの程度移植可能ですか?

  3. / dev/randomと/dev/ urandomをいつ使用するか?

  1. cronジョブを/dev/ null /に完全に沈黙させる方法は?

  2. Linux – / dev / urandomで「u」という文字は何を意味しますか?

  3. Linux の /dev/zero および /dev/null ファイルとは

  1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  2. Linux が NVMe ドライブを /dev/sda ではなく /dev/nvme0 としてリストするのはなぜですか?

  3. Linux:/dev/console 、 /dev/tty 、 /dev/tty0 の違い