저는 부팅 중에 커널이 어떻게 제어권을 타사 코드나 배포판별 코드로 전달하는지 항상 궁금했습니다.
성공적인 부팅 후 수행할 작업을 알려주는 커널에 전달된 특수 매개변수가 있다고 의심하면서 GRUB의 구성 파일을 자세히 살펴봤지만 아무 것도 찾을 수 없었습니다. 이로 인해 커널이 루트 파티션에서 특정 파일을 찾고 있는 것 같습니다.
누구든지 이 문제에 대해 밝힐 수 있다면 감사하겠습니다. 배포판은 이를 어떻게 달성합니까?
답변1
하드코딩되어 있지만 커널 매개변수를 통해 기본값을 무시할 수 있습니다 init=...
.
에서 init/main.c
:
if (execute_command) {
run_init_process(execute_command);
printk(KERN_WARNING "Failed to execute %s. Attempting "
"defaults...\n", execute_command);
}
run_init_process("/sbin/init");
run_init_process("/etc/init");
run_init_process("/bin/init");
run_init_process("/bin/sh");
panic("No init found. Try passing init= option to kernel. "
"See Linux Documentation/init.txt for guidance.");
답변2
Wikipedia에는 좋은 내용이 있습니다.기사Linux 시작 프로세스에 대해
오늘은 보통파일 시스템 초기화사용된.