Qual é a diferença entre o initramfs e o sistema de arquivos principal real?

Qual é a diferença entre o initramfs e o sistema de arquivos principal real?

initramfsé um sistema de arquivos temporário usado para inicializar o sistema e, em seguida, passa o controle para o FS (sistema de arquivos) raiz após montá-lo. A razão pela qual não posso simplesmente usar o ramfs para fazer coisas é que tudo o que você salva não permanece, é apagado sempre que você reinicia.

Mas um sistema de arquivos raiz montado PODE ser gravado e lembra de coisas mesmo se você desligar a energia. Por que é isso? Como é que o rootfs pode registrar alterações, mas o initramfs não?

Mais importante ainda, onde deveria estar esse root fs? Estou procurando na partição raiz e vejo o arquivo uinitfs.image, mas não vejo nenhum outro arquivo que deva ser o sistema de arquivos raiz que irei montar. Onde isso está armazenado fisicamente?

Responder1

O initramfs é uma imagem compactada, normalmente armazenada /boot(por exemplo, na minha máquina CentOS 7, eu tenho /boot/initramfs-3.10.0-327.18.2.el7.x86_64.img). Este pode ser um arquivo cpio gzipado.

por exemplo

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

Isso armazena o conjunto mínimo necessário de rotinas para colocar o sistema operacional em um estado em que possa ver o dispositivo raiz. por exemplo, pode conter os drivers necessários para se comunicar com seus HBAs.

Isso é descompactado na RAM no momento da inicialização e executado. Por ser uma imagem RAM, quaisquer alterações serão perdidas.

Depois que o disco raiz real for encontrado, ele será montado e o root será alterado para ele. A inicialização continua normalmente. Como esta raiz é um sistema de arquivos real (não uma imagem de memória), as alterações salvas aqui são persistentes.

informação relacionada