Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Ubuntu/Mint/Kali Boot vào Initramfs Prompt trong BusyBox

Trong bài viết này, chúng ta sẽ chỉ cách giải quyết vấn đề xảy ra khi máy tính chạy Linux Ubuntu/Mint/Kali không khởi động hoặc rơi vào dấu nhắc busybox trong quá trình khởi tạo initramfs. Người dùng chỉ có thể truy cập và sử dụng dấu nhắc lệnh initramfs.

Initramfs là hệ thống file tmpfs ban đầu dựa trên RAM không sử dụng thiết bị khối riêng biệt. Giống như initrd, nó chứa công cụ và script để mount hệ thống file trước khi gọi init nằm trong hệ thống file gốc.

Ubuntu/Mint/Kali Boot vào Initramfs Prompt trong BusyBox

Sửa chữa Superblock Ext4 hỏng trong Linux

Nếu Ubuntu bị crash vào busybox trong quá trình khởi tạo initramfs, có thể có superblock hỏng trên ổ cứng.

Một số bản sao superblock được giữ trong Linux. Để khôi phục hệ thống khi vấn đề này xảy ra, bạn cần boot từ hình ảnh cứu hộ/đĩa/Live CD và chạy dấu nhắc terminal. Sau khi boot, nhập lệnh sau trong terminal:

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

Lệnh trả về thông tin về volume của bạn:

/dev/vda2 4096 83884031 83879936 40G Linux filesystem

Nhớ tên volume và chỉ định nó trong lệnh sau:

# sudo dumpe2fs /dev/vda2 | grep superblock

Lệnh sẽ hiển thị danh sách superblock dự phòng:

Ubuntu/Mint/Kali Boot vào Initramfs Prompt trong BusyBox

Chúng ta sẽ dùng superblock dự phòng thứ hai để thay thế superblock hỏng (bạn có thể dùng bất kỳ superblock nào trừ Primary). Kiểm tra ổ cứng bằng superblock dự phòng:

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

Nếu bạn nhận được đầu ra sau:

fsck from util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
/dev/vda2 is mounted.
e2fsck: Cannot continue, aborting

Unmount volume:

# umount /dev/vda2

Sau khi thay thế superblock thành công, bạn sẽ nhận được thông báo như sau:

fsck from util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
/dev/vda2 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #231 (32254, counted=32253). Fix? yes
Free blocks count wrong for group #352 (32254, counted=32248). Fix? yes
Free blocks count wrong for group #358 (32254, counted=27774). Fix? yes
.........
/dev/vda2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/vda2: 85986/905464576 files (0.2% non-contiguous), 3904682/905464576 blocks

Sau đó unmount phương tiện boot và khởi động lại máy tính. Mọi thứ nên hoạt động bình thường.

Lỗi Fsck Boot: Unexpected Inconsistency

Biến thể thứ hai của vấn đề initramfs (BusyBox) bao gồm thông báo sau trong cửa sổ terminal:

/dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
The root filesystem on /dev/sda1 requires a manual fsck.

Ubuntu/Mint/Kali Boot vào Initramfs Prompt trong BusyBox

Nếu bạn không thấy nó, hãy thử nhập (initramfs) exit trong cửa sổ terminal. Lỗi có thể xuất hiện sau khi bạn làm vậy…

Thông báo sẽ hiển thị volume yêu cầu chạy kiểm tra ổ cứng thủ công. Chạy lệnh sau tại dấu nhắc initramfs:
# fsck /dev/sda1 -y
Sau khi kiểm tra ổ cứng xong, khởi động lại máy tính và đảm bảo Linux boot đúng.

Alert! /dev/volume Does Not Exist

Vấn đề Fstab

Bạn có thể thấy lỗi sau khi boot máy chủ Linux:

ALERT! /dev/sda1 does not exist. Dropping to a shell.

Ubuntu/Mint/Kali Boot vào Initramfs Prompt trong BusyBox

Bạn có thể vừa cài đặt Linux hoặc máy chủ của bạn có vấn đề fstab. Thường vấn đề xảy ra khi hệ thống được cài từ ổ USB. Hệ thống có thể báo lỗi bất kỳ volume nào. Giống như trường hợp đầu tiên, chúng ta phải boot từ phương tiện rescue/boot Linux và làm một số hành động. Kiểm tra UUID ổ cứng bằng lệnh:
# sudo blkid

Hệ thống sẽ trả về kiểu như sau:

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

Ở đây chúng ta thấy hệ thống phải boot từ sda2, nhưng thực tế nó cố gắng boot từ sda1.

Mount volume vào bất kỳ thư mục nào, ví dụ:

# sudo mount /dev/sda2 /mnt

Khi bạn thấy /dev/sda2 trong thư mục /mnt, tìm file /etc/fstab đó và sửa dòng chứa /dev/sda1 như sau:

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

Lưu file. Unmount volume từ /mnt và reboot. Nếu vấn đề liên quan đến tên volume sai, máy chủ sẽ boot.

Cũng có thể giải quyết vấn đề này bằng cách boot vào chế độ khẩn cấp. Remount thư mục gốc đọc/ghi:
# sudo mount -o remount,rw /
Sau đó sửa fstab và khởi động lại máy chủ.

Vấn đề phần cứng

Trên một số bo mạch chủ, cổng SATA có thể nhận số ngẫu nhiên. Điều này cũng có thể gây ra lỗi được mô tả ở phần trước. Để khắc phục, bạn phải chỉnh sửa bootloader grub.

Boot vào chế độ khẩn cấp hoặc từ Live CD và chỉnh sửa file /boot/grub/grub.cfg.

Trong dòng xác định volume boot, ví dụ:

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

Thay thế đường dẫn ổ cứng bằng UUID của nó:

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

Ubuntu/Mint/Kali Boot vào Initramfs Prompt trong BusyBox