initrd 없이 시스템을 실행하려고 합니다.

initrd 없이 시스템을 실행하려고 합니다.

나는 부팅하는 데 initrd가 필요하지 않은 커널을 구성하려고 노력해 왔습니다. 저는 아직 성공하지 못했습니다. 내가 부팅하려는 파일 시스템은 ext4이고 모든 확장 기능이 커널에 컴파일되어 있습니다(모듈이 아니라 커널 자체에 있음). 저는 2.5" 1TB WD 드라이브가 장착된 2011년 초 MacBook Pro를 사용하고 있습니다. 명령줄은 이며 root=PARTUUID=5c595262-cd6a-48f9-b199-6d72dae95b09 ro rootfstype=ext4 rootwait 부팅할 때마다 커널 패닉이 발생하고 루트 파티션을 마운트할 수 없으며 root=명령줄의 일부가 유효하지 않습니다. 업데이트 보기CONFIG_DEVTMPFS를 활성화했고 루트 파일 시스템 앞에 /dev를 마운트할 수 있었지만 원래 이 질문을 게시한 이후 로 경로를 PARTUUID지정하는 대신 a를 사용하도록 전환했기 dev때문에 더 이상 필요하지 않지만 여전히 활성화되어 있습니다. CONFIG_EFI_STUB 옵션을 활성화하고 부팅했는데, 명령줄이 커널에 하드코딩되었습니다.

내 커널을 부팅하려고 할 때 커널 패닉이 발생합니다.부팅하려고 하면 커널 패닉이 발생합니다(하드 드라이브가 인식되지 않기 때문에).

내 .config 파일

initrd가 HDD와 통신 하지 않고 시스템이 제대로 작동하도록 하려면 어떤 구성 옵션을 변경해야 합니까 ? 부팅하는 유일한 방법은 EFI 스타일로 커널을 직접 로드하는 것이기 때문에 initrd를 사용할 수 없습니다. 따라서 커널 자체는 initrd를 로드할 수 없습니다(initrd를 로드하려면 부트로더가 필요하다는 것을 아는 한). 둘 중 하나를 사용하지 않음

고쳐 쓰다:이 질문을 게시한 이후로 내 커널이 내 2.5" 내부 1TB SATA 드라이브를 볼 수 없다는 점을 제외하면 모든 것이 잘 구성되어 있음을 확인했습니다(이것이 내 커널이 처음에 매개변수가 root유효하지 않고 sda가 존재하지 않는다고 말한 이유입니다). 그러면 어떻게 해야 합니까? 구성 커널이 내부 SATA HDD와 통신하도록 하려면 어떻게 해야 합니까?(별도의 질문으로 게시해야 합니까?)

lsmod초기 램 디스크를 지원하기 위해 약간 수정된 구성으로 실행한 결과

lspci동일한 약간 수정된 구성 및 초기 RAM 디스크에서

답변1

내 SATA 컨트롤러(libata)를 내 커널로 컴파일하여 실행할 수 있었습니다. 커널은 원래 모듈로 컴파일되었습니다(그래서 초기 램 디스크에서 제대로 실행되었습니다).

관련 정보