몇 가지 사항을 변경하면서 /etc/fstab
닭과 달걀 문제에 대해 생각했습니다. /etc/fstab
파일 시스템(루트 파티션 포함)을 마운트하기 위한 지침이 포함된 경우 운영 체제는 처음에 해당 파일을 어떻게 읽습니까?
답변1
부트로더가 커널을 호출하면 커널에 이라는 매개변수를 전달합니다 root
. 따라서 커널이 초기화를 마치면 /
호출하기 전에 지정된 루트 파티션 마운트를 진행합니다 /sbin/init
(다른 매개변수로 재정의되지 않는 한).
그런 다음 프로세스 init
는 기본 실행 수준에서 시작하도록 정의된 모든 서비스를 로드하여 시스템의 나머지 부분을 시작합니다.
구성 및 사용하는 초기화 시스템에 따라 앞서 언급한 단계 사이에 여러 다른 단계가 있을 수 있습니다. 현재 Linux에서 가장 널리 사용되는 init 시스템은 SysVInit(전통), Upstart 및 Systemd입니다. 여기에서 시작 프로세스에 대한 자세한 내용을 확인할 수 있습니다.위키피디아 기사.
이것은 Grub 구성의 단순화된 예입니다. 귀하의 질문에 대답하는 중요한 부분은 마지막 줄에서 두 번째 부분입니다. 다음과 같습니다 root=/dev/sda3
.
menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-40864544-2d0f-471a-ab67-edd7e4754dae' {
set root='hd0,msdos1'
echo 'Loading Linux 3.12.6-gentoo-c2 ...'
linux /kernel-3.12.6-gentoo-c2 root=/dev/sda3 ro
}
많은 구성에서 커널은 /
나머지 모든 옵션이 기본값으로 설정된 읽기 전용 모드로 마운트됩니다. /etc/fstab
init가 다시 마운트되면 적용될 파일 시스템 매개변수를 지정할 수 있습니다 .
답변2
fstab
이는 기본이 아닌 일부 설치 옵션을 지정하려는 경우에 필요합니다. 그러나 이제 systemd
올바른 커널 장치와 fstype은 fstab
더 이상 필요하지 않습니다. 루트 항목을 다음으로 바꿀 수 있습니다.
#UUID=8f74237d-b689-4beb-9d1f-f60b426c9969 / ext4 rw,relatime,data=ordered 0 1
dummy / auto rw,relatime,data=ordered,debug 0 1
그리고 systemd는 여전히 마운트 옵션을 존중합니다.
/dev/sdz1
잘못된 UUID를 제외하고 잘못된 장치 이름(예: )을 사용할 수 있습니다 . UUID가 잘못된 경우 부팅 시 메시지가 인쇄되지만 Failed to start Remount Root and Kernel File Systems
시스템은 여전히 부팅됩니다.