initramfs
システムの起動に使用される一時ファイルシステムで、ルートFS(ファイルシステム)に制御権が付与されます。私がramfsで操作を実行できない理由は、保存した内容はすべて保持されず、再起動するたびに削除されるためです。
ただし、マウントされたルートファイルシステムは、電源を切った状態でも内容を記録して記憶することができます。なぜこれですか? rootfsは変更を記録できますが、initramfsはなぜ記録できませんか?
さらに重要なのは、このルートファイルシステムがどこにあるべきかです。ルートパーティションを見ると表示されますが、マウントしたいuinitfs.image
ルートファイルシステムでなければならない他のアーカイブは表示されません。物理的にどこに保存されていますか?
答え1
/boot
initramfsは通常、(たとえば私のCentOS 7システムに)保存されている圧縮イメージです/boot/initramfs-3.10.0-327.18.2.el7.x86_64.img
。これはgzipで圧縮されたcpioアーカイブです。
例えば
sudo gzip -dc /boot/initramfs-3.10.0-327.4.5.el7.x86_64.img | cpio -t | head
.
etc
etc/modprobe.d
etc/modprobe.d/mlx4.conf
etc/ld.so.conf.d
etc/ld.so.conf.d/kernel-3.10.0-327.3.1.el7.x86_64.conf
etc/ld.so.conf.d/kernel-3.10.0-327.4.4.el7.x86_64.conf
etc/ld.so.conf.d/kernel-3.10.0-229.20.1.el7.x86_64.conf
etc/ld.so.conf.d/mariadb-x86_64.conf
etc/ld.so.conf.d/kernel-3.10.0-327.4.5.el7.x86_64.conf
これには、オペレーティングシステムをルートデバイスを表示できる状態にするために必要な最小のルーチンセットが格納されます。たとえば、HBAと通信するために必要なドライバを含めることができます。
RAMで解凍され、起動時に実行されます。 RAMイメージなので、すべての変更が失われます。
実際のルートディスクが見つかるとマウントされ、ルートがこのディスクに切り替わります。その後、正常に起動が行われます。このルートはメモリイメージではなく実際のファイルシステムなので、ここに保存されている変更は永続的です。