なぜ rootfs が複数回マウントされるのですか?

なぜ rootfs が複数回マウントされるのですか?

ここでは、2 つのデバイスがルートとしてマウントされていることがわかります。

$ df
Filesystem                                             1K-blocks      Used Available Use% Mounted on
rootfs                                                  29221788  18995764   8761244  69% /
udev                                                       10240         0     10240   0% /dev
tmpfs                                                     203260      2192    201068   2% /run
/dev/disk/by-uuid/1d8879f2-9c47-4a72-9ef4-a6ecdd7a8735  29221788  18995764   8761244  69% /
tmpfs                                                       5120         0      5120   0% /run/lock
tmpfs                                                     406516       376    406140   1% /tmp
tmpfs                                                     406516        72    406444   1% /run/shm
/dev/sda2                                               29225884  15019636  12741264  55% /home
/dev/sda3                                              226881528 191247596  24275680  89% /opt
...

しかし、/etc/fstab で UUID を指定しませんでした。

proc            /proc           proc    defaults        0       0
LABEL=debian    /               ext4    errors=remount-ro 0       1
LABEL=istore    /mnt/istore ext4    defaults    0   0
LABEL=home  /home           ext4    defaults        0       2
...

マウント情報を「/dev/disk/by-uuid/...」ではなく「/dev/xxx」で表示したいです。UUID によるマウントには多くの利点がありますが、私は古いスタイルを好みます... また、なぜ 2 つの rootfs マウントがあるのか​​も不思議です。

答え1

これは、Debian の initramfs の動作方法による副作用です。最初にカーネルがルート用の tmpfs を作成し、圧縮された cpio アーカイブである initramfs をそこに解凍します。initramfs 内のプログラムとスクリプトは、実際のルート デバイスをマウントしてからchrootそこにマウントします。ファイルシステムを rootfs としてリストする最初のエントリは、単に initramfs であるため、無視してください。実際のルート ファイルシステムは、もう 1 つにあります。

/etc/fstab はルートファイルシステム内にあるため、ルートファイルシステムをマウントするために参照することはできません。そのため、これはブートローダーによって渡されるカーネルコマンドライン引数を介して行われます。grub を使用している場合は、ドライブが異なる順序で列挙された場合に問題が発生するのを回避するために、デフォルトで UUID が使用されます。/etc/default/grubこの動作を変更するために編集することはできますが、お勧めできません。

関連情報