Ubuntu / Mint / Kali tidak memuat dengan initramfs di BusyBox

Dalam artikel ini, kami akan mempertimbangkan solusi untuk masalah ketika server virtual atau fisik berbasis Ubuntu / Mint / Kali tidak memuat dan jatuh di busybox pada saat inisialisasi initramfs. Dalam hal ini, Linux tidak bisa boot, dan hanya baris perintah initramfs yang tersedia untuk pengguna.

Initramfs - ini adalah sistem file RAM awal berdasarkan tmpfs, yang tidak menggunakan perangkat blok terpisah. Seperti initrd, itu berisi utilitas dan skrip yang diperlukan untuk me-mount sistem file sebelum memanggil init, yang terletak di sistem file root.

Masalah superblok

Jika Ubuntu jatuh ke busybox selama inisialisasi initramfs, superblock yang rusak mungkin muncul pada disk. Linux menyimpan banyak salinan superblok.

Untuk memulihkan jika ada masalah seperti itu, kita perlu mem-boot dari image / disk dan menjalankan Terminal. Setelah memuat, di terminal kita masukkan perintah:

# sudo fdisk -l | grep Linux | grep -Ev 'swap'

Tim akan mengembalikan informasi tentang bagian kami:

/ dev / vda2 4096 83884031 83879936 sistem file 40G Linux

Ingat nama bagian dan tentukan dalam perintah berikut:

# sudo dumpe2fs / dev / vda2 | grep superblock

Perintah akan mengembalikan daftar superblok kunci cadangan:

Kami akan menggunakan superblok cadangan kedua untuk mengganti yang rusak (Anda dapat memilih selain yang Utama). Mari kita periksa disk menggunakan sub-blok cadangan untuk pemulihan:

# sudo fsck -b 98304 / dev / vda2 -y

Jika Anda mendapatkan output:

fsck dari util-linux 2.31.1 e2fsck 1.44.1 (24-Mar-2018) / dev / vda2 sudah di-mount. e2fsck: Tidak bisa melanjutkan, batal

Anda perlu meng-unmount bagian:
# umount / dev / vda2

Setelah berhasil mengganti superblok, Anda harus menerima pesan berikut:

fsck dari util-linux 2.31.1 e2fsck 1.44.1 (24-Mar-2018) / dev / vda2 tidak di-unmount dengan bersih, periksa paksa. Pass 1: Memeriksa inode, blok, dan ukuran Pass 2: Memeriksa struktur direktori Pass 3: Memeriksa konektivitas direktori Pass 4: Memeriksa jumlah referensi Pass 5: Memeriksa informasi ringkasan grup Free block menghitung salah untuk grup # 231 (32254, dihitung = 32253) . Memperbaiki? ya Gratis blok salah menghitung untuk grup # 352 (32254, dihitung = 32248). Memperbaiki? ya Gratis blok salah menghitung untuk grup # 358 (32254, dihitung = 27774). Memperbaiki? ya ... / dev / vda2: ***** SISTEM FILE DIMODIFIKASI ***** / dev / vda2: 85986/905464576 file (0,2% tidak bersebelahan), 3904682/905464576 blok

Sekarang restart komputer dengan melepaskan disk distribusi dan semuanya harus beres.

Kesalahan disk fsck

Varian kedua kesalahan adalah adanya baris berikut di jendela terminal:

/ dev / hda1: Inkonsistensi yang TIDAK TERKENAL; RUN fsck SECARA MANUAL Sistem file root di / dev / sda1 membutuhkan fsck manual.

Jika Anda tidak melihat kesalahan seperti itu, coba masukkan (initramfs) keluar di jendela terminal. Kesalahan mungkin muncul setelah itu ...

Kesalahan akan menunjukkan volume yang mengharuskan menjalankan pemeriksaan disk manual. Pada prompt perintah initramfs, lakukan:

# fsck / dev / sda1 -y

Setelah pemeriksaan penuh, Anda perlu me-restart server dan memeriksa apakah semuanya beres.

Kesalahan disk: / dev / sda1 tidak ada

Masalah dengan fstab

Jika Anda melihat kesalahan saat memuat server:

PERINGATAN! / dev / sda1 tidak ada. Menjatuhkan ke shell.

Kemungkinan besar Anda baru saja menginstal Linux atau ada masalah di server Anda fstab. Paling sering, masalah terjadi ketika menginstal sistem dengan usb-berkendara. Bagian di mana sistem bersumpah bisa apa saja. Seperti pada kasus pertama, kita perlu mem-boot dari gambar sistem dan melakukan beberapa tindakan. Verifikasi UUID disk dengan perintah:

# sudo blkid

Sistem akan menghasilkan sesuatu seperti ini:

/ dev / hda2: UUID = "36cce3d5-cbdb-46f4-adbf-3f9aaa01d729" TYPE = "ext4" PARTUUID = "fea4dab1-4e12-4327-85c6-76ade18f64e1"

Dari sini sudah jelas bahwa sistem harus boot dari sda2, tetapi sebenarnya boot dari sda1.

Kami memasang bagian kami di direktori mana pun, misalnya:

# sudo mount / dev / sda2 / mnt

Kita mendapatkan seluruh partisi / dev / sda2 di direktori / mnt, cari file / etc / fstab di sana dan ubah baris yang berisi / dev / sda1 ke:

UUID = 36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 / ext4 kesalahan = remount-rw 0 1

Simpan file. Lepas partisi dari / mnt dan reboot, jika masalahnya terkait dengan alamat partisi yang salah, server akan boot.

Selain itu, opsi ini dapat diselesaikan dengan memuat ke dalam keadaan darurat. Remount root untuk menulis:

# sudo mount -o remount, rw /

Kemudian ganti fstab dan mulai ulang server.

Masalah besi

Pada beberapa motherboard, porta SATA bisa mendapatkan nomor acak. Ini juga dapat menyebabkan kesalahan yang dijelaskan dalam paragraf sebelumnya. Untuk memperbaiki kesalahan, Anda perlu mengubah bootloader grub.

Boot dalam mode darurat atau dengan live-cd dan modifikasi file /boot/grub/grub.cfg

Di baris tempat bagian memuat, misalnya:

Linux / boot / vmlinuz-4.15.0-70- root umum = / dev / sda1 rw quiet elevator = noop fsck.repair = yes

Ubah jalur drive ke Uuid:

Linux / boot / vmlinuz-4.15.0-70- root umum = UUID = 36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 ro quiet elevator = noop fsck.repair = yes