Panik kernel dengan kesalahan "Tidak dapat membuka perangkat root", di mana saya harus menambahkan opsi "root ="?


9

setiap kali saya mencoba untuk boot dengan linux kernel 3.0.0.13 (yang diinstal dengan upgrade) saya mendapatkan kesalahan Panic Kernel:

VFS: Tidak dapat membuka perangkat root "sda1" atau blok tidak dikenal (0,0) Silakan tambahkan opsi boot "root =" yang benar;

Untungnya, jika saya boot menggunakan versi sebelumnya, saya tidak memiliki masalah. Bagaimana saya bisa memecahkan masalah ini? Di mana saya harus menambahkan yang benar root= option? Jika saya tidak membuat Kernel ini berfungsi, bagaimana saya bisa menghapusnya sebagai default dan tetap pada yang lebih lama?


Masalah yang sama disini. Perbedaan utama yang saya amati adalah hingga 3.0.0.12, grub conf mencoba mengidentifikasi hard disk menggunakan UUID-nya, 3.0.0.13 sekarang menggunakan / dev / sda6 .. aneh ...
Dan Soap

Jawaban:


11

Anda belum memberikan banyak informasi dengan log dan semacamnya untuk melanjutkan, tetapi saya menduga kemungkinan besar kesalahan yang Anda hadapi ini karena kernel dikacaukan oleh drive IDE / SATA. Melakukan pencarian Google cepat membawa saya ke tautan 1 , tautan 2 , tautan 3

Berikut adalah kutipan dari tautan yang dirujuk oleh salah satu tautan di atas :

Kemungkinan besar salah satu masalah yang paling sering terjadi (tetapi setelah Anda menyelesaikannya, kemungkinan besar Anda tidak akan pernah melihatnya lagi):

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

atau

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

Digit 0,0atau 8,3dapat berbeda dalam kasus Anda - ini merujuk ke perangkat yang coba diakses oleh kernel (dan yang gagal). Secara umum orang dapat mengatakan bahwa, jika angka pertama adalah 0, maka kernel tidak dapat mengidentifikasi perangkat keras. Jika ini digit lain (seperti 8), ia tidak dapat mengidentifikasi sistem file (tetapi dapat mengakses perangkat keras).

Masalahnya di sini adalah bahwa kernel yang Anda boot tidak dapat menerjemahkan root=/dev/...parameter yang Anda berikan (di dalam konfigurasi boot loader) menjadi sistem file yang nyata dan dapat diakses. Beberapa alasan dapat menyebabkan kegagalan seperti itu:

  • konfigurasi kernel tidak ada driver untuk pengontrol HDD Anda (kasus 1, 4, 5)
  • konfigurasi kernel tidak memiliki driver untuk bus yang digunakan oleh pengontrol HDD Anda
  • konfigurasi kernel tidak ada driver untuk sistem file yang Anda gunakan
  • perangkat salah diidentifikasi pada root = parameter Anda (kasus 2, 3)

Mengatasi masalah itu mudah jika Anda tahu apa alasannya. Anda kemungkinan besar tidak, jadi inilah pemeriksaan cepat.

Buka wizard konfigurasi kernel (bagian make menuconfig ) sehingga Anda dapat memperbarui konfigurasi kernel yang sesuai.

  • Periksa apakah Anda memiliki dukungan bawaan (dan bukan sebagai modul) untuk bus / protokol yang digunakan pengontrol hard disk Anda.
  • Kemungkinan besar ini adalah dukungan PCI, dukungan SATA (yang berada di bawah dukungan perangkat SCSI), ...
  • Periksa apakah Anda memiliki dukungan bawaan (dan bukan sebagai modul) untuk pengontrol HDD yang Anda gunakan. Salah satu kasus yang paling sering terjadi: Anda memilih dukungan untuk protokol pengontrol harddisk Anda (IDE, SATA, SCSI, ...) tetapi lupa untuk
    memilih driver pengontrol HDD itu sendiri (seperti Intel PIIX). Coba
    jalankan perintah lscpi berikut, dan tempel outputnya di
    http://kmuto.jp/debian/hcl/ . Situs ini akan menunjukkan kepada Anda driver kernel mana yang perlu Anda pilih untuk sistem Anda. Di dalam menuconfig,
    Anda dapat mengetik "/" untuk membuka fungsi pencarian, dan ketik
    nama driver untuk mencari tahu di mana ia berada. # lspci -n
  • Periksa apakah Anda memiliki dukungan bawaan (dan bukan sebagai modul) untuk sistem file yang Anda gunakan.
  • Katakanlah sistem file root Anda menggunakan btrfs (yang saya pasti tidak merekomendasikan) tetapi Anda tidak memilihnya, atau memilihnya untuk dibangun sebagai
    modul, maka Anda akan mendapatkan kesalahan yang Anda lihat. Pastikan
    dukungan sistem file dibangun di kernel.
  • Periksa apakah parameter kernel untuk root=menunjuk ke partisi yang benar.

    Ini tidak sebodoh kedengarannya. Ketika Anda di-boot dengan satu kernel, disk Anda mungkin terdaftar sebagai / dev / sda sedangkan kernel (dikonfigurasi) Anda mengharapkannya menjadi / dev / hda. Ini bukan karena kernel tidak konsisten satu sama lain, tetapi karena driver yang digunakan: driver yang lebih lama menggunakan sintaks hda, sda yang lebih baru.

    Coba alihkan hda dengan sda (dan hdb dengan sdb, dan ...).

    Juga, kernel terbaru memberikan gambaran umum tentang partisi yang mereka temukan pada perangkat yang diceritakan. Jika ya, mungkin membantu Anda mengidentifikasi jika Anda salah memilih partisi (dalam contoh yang diberikan di awal bagian ini, hanya dua partisi yang ditemukan sedangkan kernel diinstruksikan untuk mem-boot partisi ketiga). Jika tidak, kemungkinan besar karena kernel tidak tahu akan memulainya dengan perangkat (sehingga tidak dapat mencoba untuk menampilkan partisi).

  • Periksa apakah kernel yang sedang boot oleh boot loader adalah kernel yang benar. Saya telah melihat orang-orang yang, setelah membangun kernel pertama (yang tidak bisa boot), lupa bahwa mereka harus me-mount /bootsebelum menimpa kernel dengan yang baru. Sebagai hasilnya, mereka menyalin kernel ke sistem file root ( /) sedangkan boot loader masih mengharapkan image kernel berada di /bootpartisi.


1
Hai, ini menghabiskan banyak waktu, tapi terima kasih. Saya memiliki CD-Rom yang salah, menghapus semuanya bekerja dengan baik!
lucacerone

Tautan 1, Tautan 4 dan Tautan 5 semuanya mati sekarang.
Questionmark

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.