새로 컴파일된 커널을 부팅할 수 없습니다(일반 커널 3.12.14).

새로 컴파일된 커널을 부팅할 수 없습니다(일반 커널 3.12.14).

kernel.org에서 커널을 다운로드, 구성 및 설치했습니다. 이 새 커널을 처음으로 부팅할 때 이 오류 화면은 루트 장치가 없거나 잘못 언급된 것을 가리킬 수 있습니다. 하지만 명시적으로 언급하지는 않았으며 설치 스크립트에서 언급했습니다. 이것이 버그라면 누군가 수정 방법을 알려줄 수 있나요?

아니면 원인이 다른 것일 수 있다면 그것이 무엇일 수 있는지 말해주세요.

참고: 저는 이 모든 과정에 VirtualBox를 사용했습니다. 이 실험 중에 랩톱을 부팅할 수 없게 되는 것을 원하지 않습니다.여기에 이미지 설명을 입력하세요.

노트:

  1. Grub 항목은 이 시스템에서 실행되는 다른 커널과 동일하고 다른 커널이 잘 작동하기 때문에 문제가 없습니다.
  2. DEVTMPS는 단지 경고를 생성합니다. 프로그래머는 경고가 아닌 오류에만 관심이 있다고 생각합니다. 따라서 그것이 주된 이유도 아니길 바랍니다.
  3. TSC에서 오류가 나서 확인해 보니 아마도 루트 디바이스와는 아무런 관련이 없는 클럭 모드였을 것입니다.
  4. 다시 말하지만, 작동 중인 다른 커널 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_xxxata_genericlibataahci
  • MD, 해당하는 경우 BLK_DEV_MD올바른 RAID 모드(→ md_mod및 예 raid1)
  • MD, BLK_DEV_DM(→ md_mod, dm_mod)는 LVM의 경우;
  • MD, BLK_DEV_DM및 dm - DM_CRYPTcrypt에 필요한 암호화 알고리즘(→ md_mod, 예를 들어 , 등 )dm_moddm_cryptaes_genericsha256_genericcbc
  • EXT4_FS(→ ext4) 또는 기타 파일 시스템.

이는 커널에 내장되거나 모듈로 컴파일될 수 있습니다. 모듈로 컴파일하는 경우 initramfs에 모듈을 포함하는 것을 잊지 마십시오. 당신이 사용하는 경우Ubuntu의 커널 빌드 인프라, 커널 패키지를 설치할 때 모든 것이 자동으로 수행됩니다.

답변2

그것을 발견! ! ! 이것은 내 하드 디스크 컨트롤러용 드라이버입니다. 컴파일하기 전에 커널을 구성할 때 SATA AHCI가 추가되지 않았습니다. 이제 추가, 재컴파일 및 비올라를 수행합니다! 새로 설치된 커널이 시작됩니다. :)

관련 정보