GNU/Linux >> Znalost Linux >  >> Linux

Proč se na některých systémech Linux kořenový souborový systém zobrazuje jako /dev/root místo /dev/<uzel skutečného zařízení>v mtab?

Toto je obecně artefakt použití initramfs.

Z dokumentace jádra (https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt)

Co je rootfs?

Rootfs je speciální instance ramfs (nebo tmpfs, pokud je povolena), která je vždy přítomna v systémech 2.6. Rootfs nemůžete odpojit z přibližně stejného důvodu, proč nemůžete zabít proces init; namísto speciálního kódu pro kontrolu a zpracování prázdného seznamu je pro jádro menší a jednodušší zajistit, aby některé seznamy nebyly prázdné.

Většina systémů prostě připojí jiný souborový systém přes rootfs a ignoruje ho. Množství místa, které prázdná instance ramfs zabírá, je malé.

Tedy rootfs je kořenový souborový systém, který byl vytvořen pro initramfs a nelze jej odpojit.

S ohledem na /dev/root , jsem si tím méně jistý, ale pokud si dobře vzpomínám /dev/root je vytvořen při použití initrd (není totéž jako initramfs).


Gentoo má patch, který dělá přesně toto (zajišťuje, že je zobrazeno skutečné kořenové zařízení). Najdete ho zde:https://lkml.org/lkml/2013/1/31/574


V Linuxu /dev/root , pokud je přítomen, je symbolický odkaz na skutečné zařízení vytvořený při spouštění.

Buď použijete readlink /dev/root nebo cat /proc/cmdline zobrazíte root parametr bootovaného jádra, a tak zjistit skutečné zařízení za ním.

Od muže dracut(8)

Chcete-li však pokračovat v úspěšném spouštění, cílem je lokalizovat váš kořenový svazek a vytvořit symbolický odkaz /dev/root, který ukazuje na systém souborů.


Linux
  1. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  2. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  3. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  1. Jak namapovat zařízení /dev/sdX a /dev/mapper/mpathY ze zařízení /dev/dm-Z

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  1. Je špatné propojit /dev/random s /dev/urandom v Linuxu?

  2. echo nebo print /dev/stdin /dev/stdout /dev/stderr

  3. Proč jsou < nebo > vyžadovány pro použití /dev/tcp