Menginstal sistem baru menggunakan disk yang dipartisi GPT yang didedikasikan untuk satu partisi, diformat ext4 , extlinux (versi 4.05) sebagai bootloader, Ubuntu Core versi 13.10 amd64 sebagai rootfs, dan Ubuntu linux-image-3.11.0-18-generic as kernel, dan extlinux-update untuk menghasilkan konfigurasi bootloader.
Hasil setelah reboot (masih di dalam mesin virtual berbasis KVM) adalah prompt (initramfs) dan pesan-pesan ini:
mount: can't read '/etc/fstab': No such file or directory
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
The filesystem doesn't have requested /sbin/init.
No init found. Try passing init= bootarg.
BusyBox adalah v1.20.2.
Regresi:
- sistem file telah diperiksa
fsck.ext4
Periksa keberadaan root
(initramfs) ls -l /dev/[hs]da*
ls: /dev/[hs]da*: No such file or directory
Rooting argumen root
(initramfs) cat /proc/cmdline
initrd=/boot/initrd.img-3.11.0-18-generic ro quiet BOOT_IMAGE=/boot/vmlinuz-3.11.0-18-generic
Periksa modul yang dimuat
(initramfs) cat /proc/modules
e1000 145368 0 - Live 0xffffffffa0000000
/ boot konten folder
$ sudo ls -l boot
-rw------- 1 root root 3296162 Feb 18 22:37 System.map-3.11.0-18-generic
-rw-r--r-- 1 root root 1007681 Feb 18 22:37 abi-3.11.0-18-generic
-rw-r--r-- 1 root root 163258 Feb 18 22:37 config-3.11.0-18-generic
drwxr-xr-x 2 root root 4096 Mar 17 20:13 extlinux
-rw-r--r-- 1 root root 4995000 Mar 16 23:35 initrd.img-3.11.0-18-generic
-rw------- 1 root root 5634192 Feb 18 22:37 vmlinuz-3.11.0-18-generic
Bagaimana membuat sistem ini boot ke bash prompt default yang diharapkan?
Jawaban:
Ubah parameter boot kernel Anda dengan mengatur
root=/dev/sdaX
opsi.sdaX
akan menjadi partisi/
atau Andaroot
. Setelah mem-boot di waktu berikutnya, Anda akan melihat bahwa Andainitramfs
mencoba memasang partisi sebelum mencoba mengakses/etc/fstab
dan memasang sistem file.Lihat pertanyaan " Apakah initramfs menggunakan / etc / fstab? " Untuk lebih jelasnya.
sumber
root=/dev/sdaX
meningkatkan situasi, tidak ada lagi(initramfs)
tetapibash
prompt login sebagai gantinya.root=/dev/sdaX
ke boot kernel, saya perlu memperbarui/mnt/etc/default/extlinux
dan mengubahEXTLINUX_ROOT=""
ke yang disarankanEXTLINUX_ROOT="/dev/sdaX"
dan menjalankanextlinux-update
lagi.Yang perlu Anda pahami
initramfs
adalah bahwa itu adalah sistem file. Karena kernel 2.6, pada dasarnya, ini adalah satu-satunya filesystem yang dipaksakan kernel (mengesampingkan VFS, yang bisa dibilang juga merupakan filesystem) pada mesin Anda. Andainitramfs image
adalah disk image.Dalam
initramfs image
kehendak Anda, file apa pun yang ditentukan distribusi Anda cukup penting untuk diminta sebelum root disk Anda ditemukan. Biasanya itu Busybox dan modul kernel apa pun yang Anda butuhkan untuk menemukan dan memasang perangkat root Anda. Ini tidak bekerja untukmu.Tidak ada misteri nyata di sini, semua hal dipertimbangkan. Jika Anda dapat menemukan jalan di sekitar terminal prompt, Anda dapat menavigasi
initramfs.
Tapi pertama Anda harus demistify itu.Pertama dan terpenting dan sekali lagi - ini hanyalah
/.
Linux root yang melakukan hal-hal jenis root Linux. Faktanya, jika berada di file terpisah dari kernel Anda, sebenarnya itu sudah menjadi perangkat root kedua Anda. Setiap Linux kernel mengandung dasarnya mengosongkan/
semua sendiri yang tunggangan pertama sebelum menarik di Andainitramfs.
Terlebih lagi
initramfs
adalah root yang sebenarnya . Di sinilah kernel Linux menginisialisasi userspace dengan mengeksekusiinit
dan kemudian melepaskan semua tanggung jawab untuk setiap masalah yang mungkin Anda temui sesudahnya.init
Tampaknya Anda Busybox, seperti banyak, yang berarti mengendalikan tindakannya harus sesederhana mengedit skrip shell yang menyertainya.Lalu mengapa kesalahan tentang tidak menemukan?
init?
Hampir pasti ini merujuk ke sebuah program bernamainit
yang sebenarnya Andainit
telah diinstruksikan melalui skrip shell untuk mengeksekusi dirinya sendiri.Yang paling mencolok bagi saya adalah bahwa sistem file pseudo kernel -
dev sys proc
- jangan mount. Ini bisa sangat mengganggu atau petunjuk yang sangat bagus. Anda menyebutkan KVM yang membuat saya mempertanyakan kemampuan kernel, tetapi sebelum kita melewati jalan yang gelap dan kumuh itu, dapatkah kita terlebih dahulu mencoba sesuatu yang lain?Menurut saya, pesan kesalahan itu berulang kali:
Gagal yang Anda butuhkan untuk membangun kembali
initramfs
gambar Anda . Boot ke live disc untuk melakukannya dan jalankan alat apa pun yang disediakan distribusi Anda untuk mencapai tujuan itu. Oh, dan pastikan disk langsung ini dimuat dalam mode EFI .Jadi, inilah satu-satunya hal yang benar-benar di luar kebiasaan
initramfs - switchroot.
Kernel Linux menyediakan syscall yang sangat khusus untuk ruang pengguna awal dan menangani perpindahan dari
initramfs
ke perangkat root disk Anda. Ini bekerja dengan pertama-tama memasang disk root Anda ke mountpoint diinitramfs
dan kemudian memutar sistem file root ke dalamnya. Saya berasumsiinitramfs's
target mount point Andaroot
didasarkan pada cara ia terus mengeluh tentang hal itu. Mengapa tidak memastikan itu ada di sana?Untuk penyelidikan lebih lanjut, Anda perlu sedikit berpasir. Sesuaikan bootloader Anda untuk lulus ...
... sebagai parameter kernel.
sumber
efibootmgr
prompt Anda di mesin virtual Anda.Saya memiliki masalah yang sama. Apa yang dikatakan Alex benar. Pertama saya mengatur fstab saya tetapi itu tidak membantu. Jadi, saya memeriksa grub saya. Jika Anda memiliki kemungkinan untuk mengakses menu grub.
Itu memecahkan masalah saya. Setelah reboot Linux saya membutuhkan waktu lebih lama untuk mulai memeriksa disk. Tapi sekarang berhasil lagi.
Saya berharap bisa membantumu.
Salam
sumber