initramfs와 실제 기본 파일 시스템의 차이점은 무엇입니까?

initramfs와 실제 기본 파일 시스템의 차이점은 무엇입니까?

initramfs시스템을 시작하는 데 사용되는 임시 파일 시스템으로, 마운트 후 루트 FS(파일 시스템)에 제어권을 전달합니다. 내가 ramfs를 사용하여 작업을 수행할 수 없는 이유는 저장한 내용이 유지되지 않고 재부팅할 때마다 지워지기 때문입니다.

그러나 마운트된 루트 파일 시스템은 전원을 꺼도 내용을 기록하고 기억할 수 있습니다. 왜 이런거야? 어떻게 rootfs는 변경 사항을 기록할 수 있는데 initramfs는 기록할 수 없나요?

더 중요한 것은 이 루트 fs가 어디에 있어야 합니까? 루트 파티션을 보면 가 보이지만 uinitfs.image마운트할 루트 파일 시스템으로 추정되는 다른 아카이브는 보이지 않습니다. 물리적으로 어디에 저장되어 있나요?

답변1

initramfs는 일반적으로 /boot(예: 내 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

이는 OS를 루트 장치를 볼 수 있는 상태로 만드는 데 필요한 최소한의 루틴 세트를 저장합니다. 예를 들어 HBA와 통신하는 데 필요한 드라이버가 포함될 수 있습니다.

이는 부팅 시 RAM에 압축이 풀려 실행됩니다. RAM 이미지이기 때문에 모든 변경 사항이 손실됩니다.

실제 루트 디스크가 발견되면 해당 디스크가 마운트되고 루트가 이 디스크로 전환됩니다. 그러면 부팅이 정상적으로 계속됩니다. 이 루트는 메모리 이미지가 아닌 실제 파일 시스템이므로 여기에 저장된 변경 사항은 지속됩니다.

관련 정보