Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

บู๊ท Ubuntu / Mint / Kali เป็นพรอมต์ Initramfs ใน BusyBox

ในบทความนี้ เราจะแสดงวิธีแก้ปัญหาที่เกิดขึ้นเมื่อคอมพิวเตอร์ที่ใช้ Linux Ubuntu/Mint/Kali ไม่บู๊ตหรือหยุดทำงานที่ busybox พรอมต์ระหว่าง initramfs การเริ่มต้น. ผู้ใช้สามารถเข้าถึงและใช้พรอมต์คำสั่ง initramfs เท่านั้น

Initramfs  เป็น tmpfsเริ่มต้น -ตามระบบไฟล์ใน RAM ที่ไม่ใช้อุปกรณ์บล็อกแยกต่างหาก ชอบ initrd มันมีเครื่องมือและสคริปต์เพื่อเมานต์ระบบไฟล์ก่อนที่จะเรียก init ที่อยู่ในระบบไฟล์รูท

บู๊ท Ubuntu / Mint / Kali เป็นพรอมต์ Initramfs ใน BusyBox

การซ่อมแซม Ext4 Superblock ที่เสียหายใน LInux

หาก Ubuntu ขัดข้องใน busybox ระหว่างการเริ่มต้น initramfs อาจมี superblock ที่เสียหายบนดิสก์

สำเนา superblock ทุกชุดจะถูกเก็บไว้ใน Linux ในการกู้คืนระบบในกรณีที่เกิดปัญหานี้ คุณต้องบูตเครื่องจาก Rescue Image/disk/Live CD และเรียกใช้พรอมต์เทอร์มินัล หลังจากบู๊ตแล้ว ให้ป้อนคำสั่งต่อไปนี้ในเทอร์มินัล:

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

คำสั่งส่งคืนข้อมูลเกี่ยวกับโวลุ่มของคุณ:

/dev/vda2 4096 83884031 83879936 40G Linux filesystem

จำชื่อวอลุ่มและระบุในคำสั่งต่อไปนี้:

# sudo dumpe2fs /dev/vda2 | grep superblock

คำสั่งจะแสดงรายการของ superblock สำรอง:

บู๊ท Ubuntu / Mint / Kali เป็นพรอมต์ Initramfs ใน BusyBox

เราจะใช้ superblock สำรองที่สองเพื่อแทนที่ superblock ที่เสียหาย (คุณสามารถใช้ superblock ใดก็ได้ยกเว้น Primary) ตรวจสอบดิสก์โดยใช้ superblock สำรอง:

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

หากคุณได้รับผลลัพธ์นี้:

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

เลิกเมานท์โวลุ่ม:

# umount /dev/vda2

หลังจากแทนที่ superblock เรียบร้อยแล้ว คุณจะได้รับข้อความดังนี้:

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

จากนั้นยกเลิกการต่อเชื่อมสื่อสำหรับบูตและรีสตาร์ทคอมพิวเตอร์ของคุณ ทุกอย่างควรทำงานอย่างถูกต้อง

ข้อผิดพลาดในการบูต Fsck:ความไม่สอดคล้องกันที่ไม่คาดคิด

ตัวแปรที่สองของปัญหา initramfs (BusyBox) มีข้อความต่อไปนี้ในหน้าต่างเทอร์มินัล:

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

บู๊ท Ubuntu / Mint / Kali เป็นพรอมต์ Initramfs ใน BusyBox

หากไม่เห็น ให้ลองป้อน (initramfs) exit ในหน้าต่างเทอร์มินัล ข้อผิดพลาดอาจปรากฏขึ้นหลังจากที่คุณทำ...

ข้อความจะแสดงโวลุ่มที่ต้องใช้การตรวจสอบดิสก์ด้วยตนเอง เรียกใช้คำสั่งต่อไปนี้ในพร้อมต์ initramfs:
# fsck /dev/sda1 -y
หลังจากการตรวจสอบดิสก์สิ้นสุดลง ให้รีสตาร์ทคอมพิวเตอร์และตรวจสอบว่า Linux บู๊ตอย่างถูกต้อง

เตือน! /dev/volume ไม่มีอยู่

ฉบับ Fstab

คุณจะเห็นข้อผิดพลาดต่อไปนี้เมื่อทำการบูทโฮสต์ Linux:

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

บู๊ท Ubuntu / Mint / Kali เป็นพรอมต์ Initramfs ใน BusyBox

คุณอาจเพิ่งติดตั้ง Linux หรือโฮสต์ของคุณมี fstab ปัญหา. ปัญหามักเกิดขึ้นเมื่อติดตั้งระบบจาก USB ขับ. ระบบอาจแสดงข้อผิดพลาดของโวลุ่มใดๆ เช่นเดียวกับในกรณีแรก เราต้องบูตจากสื่อ Rescue/boor Linux และดำเนินการบางอย่าง ตรวจสอบดิสก์ UUID โดยใช้คำสั่งนี้:
# sudo blkid

ระบบจะส่งคืนสิ่งนี้:

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

ในที่นี้เราจะเห็นว่าระบบต้องบูตจาก sda2 แต่จริงๆ แล้วระบบพยายามบูตจาก sda1

เมานต์โวลุ่มไปยังไดเร็กทอรีใด ๆ เช่น:

# sudo mount /dev/sda2 /mnt

เมื่อคุณเห็น /dev/sda2 ในไดเร็กทอรี /mnt ให้ค้นหาไฟล์ /etc/fstab ที่นั่นและแก้ไขบรรทัดที่มี /dev/sda1 ดังนี้:

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

บันทึกไฟล์. เลิกเมานท์โวลุ่มจาก /mnt และรีบูต หากปัญหาเกี่ยวข้องกับชื่อวอลุ่มที่ไม่ถูกต้อง เซิร์ฟเวอร์จะบู๊ต

นอกจากนี้ คุณสามารถแก้ปัญหานี้ได้ด้วยการบูทในโหมดฉุกเฉิน เมานต์ไดเร็กทอรีรากใหม่เป็นอ่าน/เขียน:
# sudo mount -o remount,rw /
จากนั้นเปลี่ยน fstab และรีสตาร์ทเซิร์ฟเวอร์

ปัญหาฮาร์ดแวร์

ในเมนบอร์ดบางรุ่น SATA พอร์ตอาจได้รับตัวเลขสุ่ม นอกจากนี้ยังอาจทำให้เกิดข้อผิดพลาดที่อธิบายไว้ในส่วนก่อนหน้า หากต้องการแก้ไข คุณต้องแก้ไข grub bootloader

บูตในโหมดฉุกเฉินหรือจาก Live CD และแก้ไข /boot/grub/grub.cfg ไฟล์.

ในบรรทัดที่กำหนดปริมาณการบูต ตัวอย่างเช่น:

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

แทนที่เส้นทางไปยังดิสก์ด้วย UUID :

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 เป็นพรอมต์ Initramfs ใน BusyBox