"루트 장치를 열 수 없습니다"오류와 함께 커널 패닉이 발생합니다. "root ="옵션을 어디에 추가합니까?


9

리눅스 커널 3.0.0.13 (업그레이드로 설치된 것)으로 부팅하려고 할 때마다 커널 패닉 오류가 발생합니다.

VFS : 루트 장치 "sda1"또는 알 수없는 블록 (0,0)을 열 수 없습니다 올바른 "root ="부팅 옵션을 추가하십시오.

다행히도 이전 버전을 사용하여 부팅하면 아무런 문제가 없습니다. 이 문제를 어떻게 해결할 수 있습니까? 올바른 것을 어디에 추가해야 root= option합니까? 이 커널이 작동하지 않으면 기본 커널을 제거하고 이전 커널을 어떻게 사용할 수 있습니까?


여기에도 같은 문제가 있습니다. 내가 관찰 한 가장 큰 차이점은 최대 3.0.0.12이고, grub conf는 UUID를 사용하여 하드 디스크를 식별하려고 시도합니다. 3.0.0.13은 / dev / sda6를 사용합니다. weird ...
Dan Soap

답변:


11

로그와 함께 많은 정보를 제공하지 않았으며 계속 진행할 수 있지만 커널이 IDE / SATA 드라이브에 의해 혼동되기 때문에 아마도이 오류가 발생했을 가능성이 높습니다. 빠른 Google 검색을 수행하면 링크 1 , 링크 2 , 링크 3

a로부터 발췌 한 다음 참조 링크 에 의해 위의 링크 중 하나가 :

가장 많이 발생하는 문제 중 하나 일 가능성이 높습니다 (하지만 일단 해결 한 후에는 다시는 보지 못할 것입니다).

Unable to mount root fs on unknown-block(0,0)

또는

VFS: Cannot open root device "sda3" or unknown-block(8,3)
Please append a correct "root=" boot option; here are the available partitions:
  sda driver: sd
    sda1 sda2

숫자는 0,0또는 8,3귀하의 경우 다를 수 있습니다-커널이 액세스하려고 시도하는 장치 (및 실패한 장치)를 나타냅니다. 일반적으로 첫 번째 숫자가 0이면 커널이 하드웨어를 식별 할 수 없다고 말할 수 있습니다. 8과 같은 다른 숫자이면 파일 시스템을 식별 할 수 없지만 하드웨어에 액세스 할 수는 있습니다.

여기서 문제는 부팅중인 커널이 사용자가 제공 한 root=/dev/...매개 변수 (부트 로더 구성 내부)를 액세스 가능한 실제 파일 시스템으로 변환 할 수 없다는 것입니다. 다음과 같은 몇 가지 이유가 있습니다.

  • 커널 구성에 HDD 컨트롤러 용 드라이버가 없습니다 (1, 4, 5).
  • 커널 구성에 HDD 컨트롤러에서 사용하는 버스의 드라이버가 누락되었습니다
  • 커널 구성에 사용중인 파일 시스템에 대한 드라이버가 없습니다
  • root = 매개 변수에서 장치가 잘못 식별되었습니다 (2, 3).

이유가 무엇인지 아는 경우 문제를 쉽게 해결할 수 있습니다. 당신은 아마하지 않을 것입니다, 그래서 여기에 빠른 점검이 있습니다.

커널 구성 마법사 ( make menuconfig 부분)를 열어서 커널 구성을 적절하게 업데이트 할 수 있습니다.

  • 하드 디스크 컨트롤러가 사용하는 버스 / 프로토콜에 대한 지원 (모듈이 아닌)을 내장했는지 확인하십시오.
  • 이것은 아마도 PCI 지원, SATA 지원 (SCSI 장치 지원 아래), ...
  • 사용하는 HDD 컨트롤러에 대해 내장 된 (및 모듈이 아닌) 지원이 있는지 확인하십시오. 가장 빈번한 사례 중 하나 : 하드 디스크 컨트롤러 프로토콜 (IDE, SATA, SCSI 등)에 대한 지원을
    선택했지만 HDD 컨트롤러 드라이버 자체 (Intel PIIX 등) 를 선택하지 않았습니다. 시도
    다음 lscpi 명령을 실행하고,에 출력을 붙여
    http://kmuto.jp/debian/hcl/ . 이 사이트에는 시스템에 선택해야하는 커널 드라이버가 표시됩니다. menuconfig 내에서
    "/"를 입력하여 검색 기능을 열고 드라이버
    이름을 입력하여 해당 위치를 찾을 수 있습니다. # lspci -n
  • 사용하는 파일 시스템에 대한 지원 (모듈이 아닌)을 내장했는지 확인하십시오.
  • 루트 파일 시스템이 btrfs (확실히 권장하지는 않음)를 사용한다고 선택했지만이를 선택하지 않았거나
    모듈 로 빌드하도록 선택 하면 오류가 발생합니다. 파일 시스템
    지원이 커널에 내장되어 있는지 확인하십시오 .
  • 커널 매개 변수 root=가 올바른 파티션을 가리키는 지 확인하십시오 .

    이 소리만큼 바보가 아닙니다. 하나의 커널로 부팅하면 디스크가 / dev / sda로 표시되고 (구성된) 커널은 / dev / hda가 될 것으로 예상 할 수 있습니다. 커널이 서로 일치하지 않기 때문이 아니라 사용 된 드라이버 때문입니다. 이전 드라이버는 hda 구문 인 최신 sda를 사용합니다.

    sda로 hda를 전환하십시오 (sdb로 hdb 및 ...).

    또한 최근 커널은 장치에서 찾은 파티션에 대한 개요를 제공합니다. 이 경우 파티션을 잘못 선택했는지 식별하는 데 도움이 될 수 있습니다 (이 섹션의 시작 부분에 제공된 예에서는 커널이 세 번째 부팅을 지시 한 반면 두 개의 파티션 만 발견되었습니다). 그렇지 않은 경우, 커널이 시작할 장치를 모르기 때문에 (아마도 파티션을 표시 할 수 없음) 가능성이 높습니다.

  • 부트 로더가 부팅하는 커널이 올바른 커널인지 확인하십시오. 나는 첫 번째 커널 (부팅하지 않은)을 빌드 한 후 /boot새로운 커널로 덮어 쓰기 전에 마운트 해야 한다는 것을 잊은 사람들을 보았다 . 결과적으로 커널은 루트 파일 시스템 ( /)으로 커널을 복사 하지만 부트 로더는 여전히 커널 이미지가 /boot파티션 에있을 것으로 예상 합니다.


1
안녕하세요 시간이 많이 걸렸지 만 고마워요 CD-Rom에 결함이있어서 모든 것이 제대로 작동한다는 것을 제거했습니다!
lucacerone

링크 1, 링크 4 및 링크 5는 이제 모두 죽었습니다.
Questionmark

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.