Menyerah menunggu perangkat root, ubuntu - vg-root tidak ada

16

hari ini saya menginstal Ubuntu 64-bit di sebuah netbook. Saat netbook mem-boot ini, laporan kesalahan muncul. Saya pikir ada masalah dengan partisi.

Gave up waiting for root device. Common problems:
  — Boot args (cat /proc/cmdline)
    — Check rootdelay= (did the system wait long enough?)
    — Check root= (did the system wait for the right device?)
  — Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/ubuntu--vg-root does not exist. Dropping to a shell! 

BusyBox v.1.21.1 (Ubuntu 1:1.21.1-1ubuntu1) built-in shell (ash)   
Enter 'help' for list of built-in commands.  

(initramfs)

Output lsblk seperti yang diminta:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 232.9G  0 disk 
├─sda1   8:1    0   231G  0 part 
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0     2G  0 part [SWAP]
sr0     11:0    1   1.2G  0 rom  /cdrom
loop0    7:0    0   1.1G  1 loop /rofs
Jonas Franz
sumber
1
jalankan lsblkdan tambahkan output ke pertanyaan Anda.
psusi
6
@psusi Bagaimana jika lsblktidak tersedia?
sitilge

Jawaban:

10

Silakan tambahkan output lsblk -fs, fdisk / dev / sda dengan p flag dan laporan perbaikan grub ke pertanyaan sebagai tautan pastebin.

Berdasarkan pencarian, tampaknya ada pertanyaan serupa di Tanya Ubuntu yang tidak memiliki jawaban terkini di sini dan Di sini satu jawaban diberikan yang menjelaskan tentang raid dan ubuntu.

Tampaknya ada beberapa saran, beberapa di antaranya tampaknya bekerja untuk sebagian orang.

  1. Dari prompt initframs, coba ketikkan ls /dev/mapperdan lihat apakah volume root Anda tercantum. Jika tidak terdaftar, coba tunggu 10 detik dan jalankan lagi.

    Jika sekarang terdaftar, ketik exitdan sekarang harus menemukan perangkat root dan boot (diambil dari sini

  2. Edit konfigurasi boot dengan menekan eketika grub waspada untuk memilih OS, dan ganti root=UUID-6500...dengan di root=/dev/sdxmana sdx adalah partisi boot. Masalahnya di sini tampaknya adalah bahwa UUID salah, atau /dev/disk/by-UUID...tidak ada (1)

  3. Menambahkan parameter all_generic_ideke akhir boot-line like kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=43206294-74ef-434d-aca2-db74b4257590 ro quiet splash all_generic_idesepertinya berfungsi untuk sebagian orang (2)
  4. Pertanyaan Pengguna Super di sini , sepertinya menyarankan kesalahan ini disebabkan LVM. Solusinya juga diberikan dalam hal yang sama yaitu menginstal lvm2.
  5. Situs Pengguna Super yang sama juga menyarankan boot menggunakan Kernel yang lebih tua, jika tersedia. Tampaknya bekerja untuk sebagian orang. Mencoba mem-boot menggunakan Recoveryopsi mungkin berhasil bagi sebagian orang
  6. Posting oleh nux_man777 sini tampaknya menunjukkan kesalahan mungkin dalam media instalasi.
  7. Kesalahannya /dev/mapper/ubuntu-vg-root tampaknya terkait dengan serangan seperti dijelaskan di sini .

    "Di layar ringkasan penginstal tepat sebelum proses penyalinan dimulai, klik tombol Advanced. Ubah partisi boot (ini adalah partisi" parent "gaya MSDOS bukan partisi Linux) ke / dev / mapper / pdc_feddabdf (atau apa pun daftar dmraid) sebagai partisi fakeraid Anda) Pastikan kotak centang diklik untuk mem-boot dari disk ini. perhatikan bahwa penginstal akan memodifikasi grub2 untuk menunjuk ke partisi logis yang benar / dev / mapper / pdc_feddabdf1 atau apa pun / sedang aktif. "

    Instruksi terperinci tentang instalasi diberikan di situs yang dimaksud. Silakan periksa di sana untuk info lebih lanjut tentang instalasi grub.

  8. Boot ke media instalasi langsung dan memperbarui ubuntu dengan mengubah root menggunakan chroottampaknya berfungsi untuk beberapa orang (disarankan oleh cpttripzz di sini ). Instruksi tentang chroot ada di sini . Anda juga dapat merujuk ke pertanyaan ini di Unix & Linux. Rincian lebih lanjut dapat ditemukan di Arch Wiki dan Gentoo Wiki .
  9. Mengubah Pengontrol SATA ke IDE Asli dari RAID dan melakukan instalasi baru tampaknya bekerja untuk beberapa orang di sini dan di sini
  10. Kabel IDE atau hard disk mungkin rusak (forum ubuntu yang sama dengan halaman 40 di atas)
Satu wajah
sumber
OS sebelumnya adalah Win7
Jonas Franz
fdisk hastebin.com/wayiqowine.rib
Jonas Franz
lsblk --fs hastebin.com/vadapinoro.hs
Jonas Franz
Perbaikan Booting: paste.ubuntu.com/9660149
Jonas Franz
Pesan Kesalahan: postimg.org/image/tzuyske3d
Jonas Franz
8

Dalam versi Ubuntu tertentu (mis. Xubuntu 18.10) masalah ini mungkin disebabkan oleh apt autoremove. Karena bug ini, apt akan menyarankan untuk menghapus

cryptsetup cryptsetup-bin cryptsetup-initramfs cryptsetup-run dmeventd libdevmapper-event1.02.1 liblvm2app2.2 liblvm2cmd2.02 libreadline5 lvm2

yang membuat sistem tidak dapat di-boot (karena partisi root tidak dapat dipasang dan tidak dienkripsi menggunakan LVM).

Jika Anda tidak menggunakan LVM dan enkripsi disk, jawaban ini mungkin bukan untuk Anda.

Saya dapat memperbaikinya dengan menginstal ulang cryptsetup dan lvm2 di lingkungan chroot: boot dari stik USB langsung, jalankan perintah di bawah dalam terminal, reboot.

# find root partition
sudo fdisk -l

# unencrypt partition
#   Note: replace /dev/nvme0n1p3 with your disk
#         replace "nvme0n1p3_crypt" with the correct name 
#         check by running this in chroot:
#         $ cat /etc/crypttab | cut -f1 -d " "
#         nvme0n1p3_crypt
sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

# mount root partition
sudo vgscan 
sudo vgchange -ay
sudo mount /dev/mapper/xubuntu--vg-root /mnt

# prepare chroot environment
sudo mount /dev/nvme0n1p2 /mnt/boot/   # replace nvme0n1p2 with your boot partition!
sudo mount -o rbind /dev/ /mnt/dev/
sudo mount -t proc proc /mnt/proc/
sudo mount -t sysfs sys /mnt/sys/

# make dns available in chroot
sudo cp /etc/resolv.conf  /mnt/etc/resolv.conf 

# enter chroot
sudo chroot /mnt /bin/bash

# re-install missing packages
apt install cryptsetup lvm2

# re-generate  (this might be done also by apt in the step before, I'm not sure)
update-initramfs -u -k all

# Leave chroot environment - not sure if the following is really necessary...
exit
# Write buffers to disk
sudo sync
# Unmount file systems
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot

Ini Q & A membantu saya mengumpulkan perintah.

lumbric
sumber
1
Ohh, Anda baru saja menyelamatkan saya sekitar tiga hari kerja yang saya lakukan untuk menyiapkan perangkat baru. Bekerja dengan sempurna! Diganti nvme0n1p3dengan sda5dan nvme0n1p2dengan sda1(partisi linux di dalam LVM dan partisi boot kecil di luar LVM, masing-masing)
Oliver U
1
@ OliverU hebatnya itu berhasil! Bahkan jika Anda tidak dapat membuatnya boot lagi, Anda masih dapat menyalin direktori home Anda dan mungkin sebagian / etc atau lebih untuk instalasi baru. Itu seharusnya mungkin kurang bekerja daripada pengaturan awal.
lumbric
1
Bekerja dengan sempurna untuk Ubuntu 18.10, di mana masalah terjadi pada saya setelah apt autoremovemasalah. Seperti Oliver di atas, saya hanya perlu mengganti yang berikut dalam instruksi: nvme0n1p3sda5, nvme0n1p3sda5_crypt, nvme0n1p2sda1. Dengan tebakan yang tepat seperti itu, tidak perlu memasukkan chrootdua kali karena cat /etc/crypttab | cut -f1 -d " "di dalam chroothanya akan mengkonfirmasi Anda membuat tebakan yang benar. Jika Anda perlu memasukkan dua kali, lakukan setelah reboot seperti menutup dan membuka kembali lingkungan crytpsetup + LVM2 tanpa me-reboot tampaknya ... rumit.
tanius
Juga untuk dicatat, instruksi ini bekerja sangat baik dengan hard drive non-boot dimasukkan ke dalam enclosure drive dan terpasang ke komputer Ubuntu lain (yang berfungsi dengan baik) melalui USB. Tidak perlu sistem hidup kalau begitu.
tanius
Terima kasih kawan, ini membantu setelah 4 jam mencoba untuk memperbaikinya. Berfungsi bahkan pada Ubuntu 19.10
WellBloud
3

Saya memiliki masalah ini dan tidak ada yang dapat membantu di pos mana pun di sini atau di tempat lain. Khususnya dalam kasus saya, saya bisa melihat yang /dev/mappertidak mengandung ubuntu--vg-rootatau apa pun dalam hal ini. Ini berarti bahwa ada sesuatu yang salah ketika LVM mencoba untuk me-mount / memetakan volume ATAU ada yang salah sebelumnya dalam proses boot, dan kesalahan ini hanyalah gejala umum untuk semua masalah sebelumnya.

Yang kedua adalah kasus bagi saya dan hanya karena membaca tentang initramfssaya, saya bisa memahami dan mendiagnosis masalah tersebut. Ini harus menjadi hal pertama yang Anda lakukan jika Anda mencurigai ada kesalahan sebelum LVM melakukan hal itu.

Dalam kasus saya (yang mungkin tidak sama dengan Anda tetapi layak untuk didokumentasikan), saya mengaktifkan enkripsi disk penuh (LUKS), dan entah bagaimana cryptsetupalat telah dihapus initramfs, oleh karena itu saya tidak dimintai kata sandi untuk dibuka, dan drive tidak dapat diakses, yang berarti /dev/sdaXtidak dapat dipasang, dan karena ubuntu--vg-rootitu tidak dapat dipasang / dipetakan ke dalam /dev/mapper. Jika Anda mencoba menjalankan cryptsetupdari prompt BusyBox, ll know you have the same issue if thecryptsetup` Anda tidak dapat ditemukan.

Solusinya adalah boot dari LiveCD, buka kunci drive secara manual dengan cryptsetup, chrootke sistem file root, instal ulang cryptsetupdan panggil update-initramfs.

cwilko
sumber
Selamat Datang di Tanya Ubuntu! :-) Bisakah Anda memperluas baris terakhir menjadi perintah yang sebenarnya?
Fabby
1
Saya menulis skrip untuk kasus ini (LUKS + LVM) pada drive NVMe, tetapi dapat memperluasnya ke /dev/sd*drive gaya. unix.stackexchange.com/a/467113/103652
dragon788
2

Bagi mereka yang menderita masalah terkait enkripsi, seperti dalam jawaban @ Zanna, Anda harus mengikuti prosedur yang serupa dengan ini:

  1. Boot ke sistem Anda menggunakan distro langsung / USB.

  2. Pasang partisi terenkripsi (di Ubuntu, Anda akan melihat volume terenkripsi tersedia di desktop; mengklik dua kali dan memasukkan kata sandi sudah cukup). Partisi akan dipasang di /media/ubuntu/[mount point]. (Nama pengguna akan berubah berdasarkan distro; mis., Penggunaan Xubuntu xubuntu.)

  3. Buka jendela terminal dan bourbon.

  4. Atur binding yang sesuai untuk titik pemasangan di dalam sistem:

    sudo su -
    mount -t auto /dev/sdX /media/ubuntu/[mount point]/boot
    mount --bind /dev /media/ubuntu/[mount point]/dev
    mount --bind /dev/pts /media/ubuntu/[mount point]/dev/pts
    mount --bind /sys /media/ubuntu/[mount point]/sys
    
  5. chroot ke direktori root disk terenkripsi Anda: chroot /media/ubuntu/[mount point]

  6. Pastikan bahwa sistem Anda memiliki sesuai initramfspaket yang diinstal: sudo apt install cryptsetup-initramfs lvm2.

  7. Kritis, Anda juga harus memastikan bahwa file konfigurasi Anda memaksa initramfsuntuk menyertakan binari cryptsetup, yang dihapus di beberapa titik, tampaknya : nano /etc/cryptsetup-initramfs/conf-hook, tanda komentar yang CRYPTSETUPline, dan pastikan itu berbunyi CRYPTSETUP=Y.

  8. Akhirnya, jalankan update-initramfs -u -k all, matikan, tarik media langsung, dan mulai kembali.

Jarak tempuh Anda di sini dapat bervariasi tergantung pada apa yang terjadi dengan sistem Anda. Jika, misalnya, Anda telah mengubah nama grup LVM atau UUID, Anda mungkin perlu menyelaraskan /etc/crypttabdan /etc/fstabmenggunakan pengidentifikasi yang tepat. Jika, seperti saya, Anda melakukan migrasi dari satu rilis ke rilis lainnya, Anda mungkin menemukan bahwa Anda memiliki dua volume terenkripsi dengan nama grup yang sama — ini membuat pemasangan disk agak sulit (Anda perlu menggunakan UUID secara eksplisit).

Secara keseluruhan, pemutakhiran ke Xubuntu 18.10 mengerikan karena hal ini. (Sistem stok tidak akan reboot setelah upgrade ke kernel ditarik!) Setidaknya dalam pengaturan saat ini yang saya miliki, sistem stabil melalui reboot.

Nb, kesalahan ACPI yang mengarahkan saya ke seluruh Internet mencari solusi adalah herring merah: mereka tidak ada hubungannya dengan apakah Anda bisa boot dari disk yang dienkripsi.

Ethan
sumber
Apa yang ada sdXdalam kasus ini? Saat mem-boot dari LiveCD, tidak ada /bootpartisi, jadi tidak jelas apa yang harus dimasukkan ke sana.
ralien
@ralien - sdXadalah drive yang memegang partisi terenkripsi, mungkin sdadi sebagian besar sistem. Dalam kasus saya, saya mengenkripsi disk utama ( sda) selama instalasi baru.
Ethan
0

Coba yang berikut ini:

(initramfs) reboot

Kemudian, pada prompt pemilih OS, coba boot dengan kernel yang lebih lama.

Jika Anda berhasil, maka mungkin ini akan memperbaiki masalah, seperti yang disarankan di peluru One Face 4 dan 5, dan tautan yang dimaksud:

sudo apt-get install lvm2
e18r
sumber
Jika lvm2 tidak diinstal, kernel lama tidak akan bisa boot. Paket lvm2 dan kernel tidak terkait hal-hal. Perlu boot dengan Sistem Penyelamatan dan menginstal paket melalui chroot.
PRIHLOP