![새로 컴파일된 커널을 부팅할 수 없습니다(일반 커널 3.12.14).](https://linux55.com/image/52650/%EC%83%88%EB%A1%9C%20%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%90%9C%20%EC%BB%A4%EB%84%90%EC%9D%84%20%EB%B6%80%ED%8C%85%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4(%EC%9D%BC%EB%B0%98%20%EC%BB%A4%EB%84%90%203.12.14)..png)
kernel.org에서 커널을 다운로드, 구성 및 설치했습니다. 이 새 커널을 처음으로 부팅할 때 이 오류 화면은 루트 장치가 없거나 잘못 언급된 것을 가리킬 수 있습니다. 하지만 명시적으로 언급하지는 않았으며 설치 스크립트에서 언급했습니다. 이것이 버그라면 누군가 수정 방법을 알려줄 수 있나요?
아니면 원인이 다른 것일 수 있다면 그것이 무엇일 수 있는지 말해주세요.
참고: 저는 이 모든 과정에 VirtualBox를 사용했습니다. 이 실험 중에 랩톱을 부팅할 수 없게 되는 것을 원하지 않습니다.
노트:
- Grub 항목은 이 시스템에서 실행되는 다른 커널과 동일하고 다른 커널이 잘 작동하기 때문에 문제가 없습니다.
- DEVTMPS는 단지 경고를 생성합니다. 프로그래머는 경고가 아닌 오류에만 관심이 있다고 생각합니다. 따라서 그것이 주된 이유도 아니길 바랍니다.
- TSC에서 오류가 나서 확인해 보니 아마도 루트 디바이스와는 아무런 관련이 없는 클럭 모드였을 것입니다.
- 다시 말하지만, 작동 중인 다른 커널 grub 항목이 동일한 ID를 사용하고 올바르게 부팅하므로 UUID는 문제가 되지 않습니다.
답변1
루트 파일 시스템에 액세스하는 데 필요한 드라이버 중 하나가 누락되었습니다. initramfs의 코드는 마운트할 블록 장치를 찾고 있지만 실패하므로 문제는 해당 장치에 액세스하는 것입니다. initramfs의 코드는 자신이 액세스할 수 있는 코드만 볼 수 있고 문제는 필요한 루트 장치에 액세스할 수 없기 때문에 더 명확한 메시지를 얻을 수 없습니다.
make localmodconfig
커널 소스 디렉터리에서 실행하여 현재 사용 중인 모든 드라이버를 포함하여 커널을 구성할 수 있습니다. 더 나은 방법은 배포판의 커널을 사용하거나(이렇게 하지 않는 유일한 일반적인 이유는 하드웨어가 너무 새롭기 때문에 지원할 수 없다는 것입니다) 최소한 배포판의 커널 구성을 사용하는 것입니다. Ubuntu를 사용하고 있으므로 다음을 찾을 수 있습니다.업데이트된 사전 컴파일된 커널필요한 경우.
자신만의 커널을 구성하고 싶다면 부팅에 포함해야 할 사항에 대한 체크리스트가 있습니다. 일반적인 요구 사항만 나열했으며 이는 전체 목록이 아닙니다.
SCSI
,BLK_DEV_SD
(→scsi_mod
,sd_mod
)는 대부분의 하드 드라이브 및 유사 장치(SCSI 또는 ATA를 포함한 SCSI와 유사한 명령 세트 포함)입니다.- 하드 디스크 컨트롤러의 오른쪽
ATA_xxx
,PATA_xxx
또는 기타(예 : 및 Intel PC 칩셋의 AHCI 컨트롤러의 경우SATA_xxx
)SCSI_xxx
ata_generic
libata
ahci
MD
, 해당하는 경우BLK_DEV_MD
올바른 RAID 모드(→md_mod
및 예raid1
)MD
,BLK_DEV_DM
(→md_mod
,dm_mod
)는 LVM의 경우;MD
,BLK_DEV_DM
및 dm -DM_CRYPT
crypt에 필요한 암호화 알고리즘(→md_mod
, 예를 들어 , 등 )dm_mod
dm_crypt
aes_generic
sha256_generic
cbc
EXT4_FS
(→ext4
) 또는 기타 파일 시스템.
이는 커널에 내장되거나 모듈로 컴파일될 수 있습니다. 모듈로 컴파일하는 경우 initramfs에 모듈을 포함하는 것을 잊지 마십시오. 당신이 사용하는 경우Ubuntu의 커널 빌드 인프라, 커널 패키지를 설치할 때 모든 것이 자동으로 수행됩니다.
답변2
그것을 발견! ! ! 이것은 내 하드 디스크 컨트롤러용 드라이버입니다. 컴파일하기 전에 커널을 구성할 때 SATA AHCI가 추가되지 않았습니다. 이제 추가, 재컴파일 및 비올라를 수행합니다! 새로 설치된 커널이 시작됩니다. :)