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 이미지이기 때문에 모든 변경 사항이 손실됩니다.
실제 루트 디스크가 발견되면 마운트되고 루트가 이 디스크로 전환됩니다. 그러면 정상적으로 부팅이 진행됩니다. 이 루트는 메모리 이미지가 아닌 실제 파일 시스템이므로 여기에 저장된 변경 사항은 영구적입니다.