커널이 initramfs로 부팅되면 실제 rootfs에 대한 준비를 위해 init 프로세스가 시작됩니다. 실제 rootfs가 준비되면 initramfs의 init 프로세스는 실제 rootfs의 다른 init로 넘겨져야 합니다.
내 질문은: init(old)에 이미 프로세스 ID 1이 있는데 왜 새 init 프로세스에도 프로세스 ID 1이 있습니까?
어떤 사람들은 switch_root 명령으로 전환이 이루어진다고 말하는데, 코드를 살펴본 결과 switch_root는 /dev, proc 등만 마운트하고 루트를 새 fs로 변경한 다음 execv(/sbin/init)를 발견했습니다.
switch_root는 init(old)의 하위 프로세스로 실행되어야 하며 프로세스 ID는 2,3 또는 1을 제외한 모든 값이어야 합니다. 맞아?