/etc/fstab
이 닭고기와 계란 질문이 나에게 발생했을 때 몇 가지 사항을 변경 했습니다 /etc/fstab
. 루트 파티션을 포함한 파일 시스템 마운트 지침 이 포함되어 있으면 OS는 어떻게 해당 파일을 먼저 읽습니까?
답변
부트 로더가 커널을 호출하면라는 파라미터를 전달합니다 root
. 따라서 커널 초기화가 완료되면 주어진 루트 파티션을 마운트 /
한 다음 호출 하여 계속 진행합니다 /sbin/init
(다른 매개 변수로 재정의하지 않은 경우).
그런 다음 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
당신은 초기화 그것을 다시 마운트하면 다음 적용 할 것 파일 시스템 매개 변수를 지정할 수 있습니다.
답변
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
되지만 시스템은 부팅됩니다.