Gần đây tôi đã mua một chiếc Lenovo Thinkpad T470 đã qua sử dụng. Sau khi cài đặt Ubuntu 20.04 và sử dụng một thời gian, tôi nhận thấy rằng thỉnh thoảng nó bị treo, có vẻ như ổ SSD ngừng phản hồi. Sau đó, tôi luôn có thể khởi động lại hệ thống và mọi thứ sẽ ổn.
Nhưng rồi một ngày nọ, nó bị lỗi trong khi hệ thống đang cập nhật và khi khởi động, tôi nhận được thông báo rằng hệ thống đã từ bỏ việc chờ thiết bị hệ thống tập tin gốc và
BÁO ĐỘNG! UUID=xxx không tồn tại. Rơi vào một cái vỏ!
Tôi đã thử thêm rootdelay=5 từ các tham số khởi động GRUB (nhấn 'e') nhưng không được.
Vì vậy, thử nghiệm của tôi bắt đầu. Không có dữ liệu có giá trị nào trên hệ thống, vì vậy tôi đã thử rất nhiều lời khuyên để cố gắng khôi phục hệ thống bao gồm thử sửa chữa và định dạng phân vùng nhưng không gặp may.
SSD có vẻ ổn về mặt vật lý - chạy các bài kiểm tra bộ nhớ và lưu trữ BIOS được cung cấp cùng với hệ thống, tất cả đều có vẻ ổn. Tôi đã quyết định cài đặt lại Ubuntu bằng Live USB, nhưng tôi không nhận được bất kỳ tùy chọn nào để chọn phân vùng khi chạy trình cài đặt. Đang chạy boot-repair, tôi gặp vấn đề tương tự - không có nút sửa lỗi khởi động.
Vì vậy, đây là nỗ lực thứ hai của tôi trong việc giải cứu hệ thống và tôi đã quyết định ghi lại chi tiết điều này, hy vọng điều này có thể giúp ích cho những người khác.
Cập nhật initram và GRUB
Theo lời khuyên đưa ra ở đây
BÁO ĐỘNG! /dev/disk/by-uuid/xxxxxxxxx không tồn tại. Rơi vào một cái vỏ
Tôi đã khởi động bằng Live USB (Ubuntu 20.04) và xem đầu ra từ sudo blkid
:
ubuntu@ubuntu:~$ Sudo blkid
/dev/sda1: UUID="2020-07-31-16-51-12-00" LABEL="Ubuntu 20.04.1 LTS amd64" TYPE="iso9660" PTUUID="zzzz" PTTYPE="dos" PARTUUID=" zzzzz"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/sda2: SEC_TYPE="msdos" UUID="zzzz" TYPE="vfat" PARTUUID="zzz"
/dev/sda3: UUID="yyy" TYPE="ext4" PARTUUID="zzzz"
UUID được cung cấp trong thông báo lỗi khởi động khác với thông báo tôi nhận được từ blkid
. Dựa trên thông tin này và đầu ra từ fdisk -l
Khởi động thiết bị Bắt đầu Kết thúc Sector Kích thước Loại Id
/dev/sda1 * 0 5439487 5439488 2.6G 0 Trống
/dev/sda2 5017392 5025327 7936 3,9M ef EFI (FAT-16/12/32)
/dev/sda3 5439488 30031871 24592384 11.7G 83 Linux
Tôi quyết định nói tiếp:
ubuntu@ubuntu:~$ sudo mount /dev/sda3 /mnt
ubuntu@ubuntu:~$ Sudo mount --bind /dev /mnt/dev
gắn kết: /mnt/dev: điểm gắn kết không tồn tại.
Ok - Tôi có thể tạo các thư mục trước, np
sudo mkdir /mnt/dev
ubuntu@ubuntu:~$ sudo mount /dev/sda3 /mnt
ubuntu@ubuntu:~$ Sudo mount --bind /dev /mnt/dev
gắn kết: /mnt/dev: điểm gắn kết không tồn tại.
ubuntu@ubuntu:~$ sudo mkdir /mnt/dev
ubuntu@ubuntu:~$ Sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo mount --bind /proc /mnt/proc
gắn kết: /mnt/proc: điểm gắn kết không tồn tại.
ubuntu@ubuntu:~$ sudo mkdir /mnt/proc
ubuntu@ubuntu:~$ sudo mount --bind /proc /mnt/proc
ubuntu@ubuntu:~$ Sudo mount --bind /sys /mnt/sys
gắn kết: /mnt/sys: điểm gắn kết không tồn tại.
ubuntu@ubuntu:~$ sudo mkdir /mnt/sys
ubuntu@ubuntu:~$ Sudo mount --bind /sys /mnt/sys
ubuntu@ubuntu:~$ Sudo chroot /mnt
chroot: không thể chạy lệnh â/bin/bashâ: Không có tệp hoặc thư mục như vậy
https://unix.stackexchange.com/questions/128046/chroot-failed-to-run-command-bin-bash-no-such-file-or-directory
chúng ta cần làm đánh đập
có thể truy cập từ chroot
ubuntu@ubuntu:~$ Sudo chroot /mnt /usr/bin/bash
chroot: không thể chạy lệnh â/usr/bin/bashâ: Không có tệp hoặc thư mục như vậy
ubuntu@ubuntu:~$ mà bash
/usr/bin/bash
ubuntu@ubuntu:~$ sudo mkdir /mnt/usr
ubuntu@ubuntu:~$ Sudo mount --bind /usr /mnt/usr
ubuntu@ubuntu:~$ Sudo chroot /mnt /usr/bin/bash
chroot: không thể chạy lệnh â/usr/bin/bashâ: Không có tệp hoặc thư mục như vậy
Vâng
ubuntu@ubuntu:~$ sudo mkdir /mnt/lib
ubuntu@ubuntu:~$ sudo mkdir /mnt/lib64
ubuntu@ubuntu:~$ Sudo mount --bind /lib /mnt/lib
ubuntu@ubuntu:~$ Sudo mount --bind /lib64 /mnt/lib64
ubuntu@ubuntu:~$ Sudo chroot /mnt /usr/bin/bash
bash-5.0
VÂNG! Quay lại cập nhật initramfs!
bash-5.0
bash: /usr/sbin/update-initramfs: /bin/sh: trình thông dịch kém: Không có tệp hoặc thư mục như vậy
Tôi biết thủ thuật đó bây giờ.
thoát bash-5.0
lối ra
ubuntu@ubuntu:~$ sudo mkdir /mnt/bin
ubuntu@ubuntu:~$ Sudo mount --bind /bin /mnt/bin
ubuntu@ubuntu:~$ Sudo chroot /mnt /usr/bin/bash
bash-5.0
update-initramfs bị tắt do chạy trên phương tiện chỉ đọc
Thất vọng.
https://superuser.com/questions/903142/how-to-run-update-initramfs-from-bootable-usb
bash-5.0
cập nhật-initramfs: /usr/sbin/update-initramfs /usr/sbin/update-initramfs.distrib /usr/share/man/man8/update-initramfs.8.gz
bash-5.0
echo "update-initramfs bị tắt do chạy trên phương tiện chỉ đọc"
thoát 0
chúng ta cần gọi mkinitramfs
trực tiếp, có vẻ như
bash-5.0
bash-5.0
5.4.0-42-chung
Kích thích!
root@ubuntu:/
chạm: không thể chạm vào '/boot/initrm.img-5.4.0-42-generic': Không có tệp hoặc thư mục như vậy
mktemp: không thể tạo thư mục qua mẫu â/var/tmp/mkinitramfs_XXXXXXâ: Không có tệp hoặc thư mục như vậy
hiểu rồi. Vẫn còn một số thư mục được gắn kết.
root@ubuntu:/
lối ra
ubuntu@ubuntu:~$ sudo mkdir /mnt/boot
ubuntu@ubuntu:~$ Sudo mount --bind /boot /mnt/boot
ubuntu@ubuntu:~$ Sudo chroot /mnt /usr/bin/bash
root@ubuntu:/
mktemp: không thể tạo thư mục qua mẫu â/var/tmp/mkinitramfs_XXXXXXâ: Không có tệp hoặc thư mục như vậy
root@ubuntu:/
lối ra
ubuntu@ubuntu:~$ sudo mkdir /mnt/var
ubuntu@ubuntu:~$ Sudo mount --bind /var /mnt/var
ubuntu@ubuntu:~$ Sudo chroot /mnt /usr/bin/bash
Những ngón tay vượt qua!
root@ubuntu:/# mkinitramfs -o /boot/initrm.img-5.4.0-42-generic 5.4.0-42-generic
...
/usr/sbin/mkinitramfs: 76: modprobe: không tìm thấy
/usr/sbin/mkinitramfs: 75: modprobe: không tìm thấy
/usr/sbin/mkinitramfs: 76: modprobe: không tìm thấy
tìm: â/var/tmp/mkinitramfs_TcMfi0/lib/modules/5.4.0-42-generic/kernelâ: Không có tệp hoặc thư mục như vậy
/usr/sbin/mkinitramfs: 75: modprobe: không tìm thấy
/usr/sbin/mkinitramfs: 76: modprobe: không tìm thấy
E: /usr/share/initramfs-tools/hooks/brltty không thành công với trả về 1.
Không có niềm vui.
lỗi initramfs khi cài đặt/cập nhật
Thật không may, làm theo lời khuyên trên về các gói không giúp được gì:
root@ubuntu:/# apt-get auto-remove && apt-get clean && apt-get update && apt-get upgrade
Đang đọc danh sách gói... Xong
Xây dựng cây phụ thuộc
Đang đọc thông tin trạng thái... Xong
0 đã nâng cấp, 0 mới cài đặt, 0 cần xóa và 0 chưa nâng cấp.
Ign:1 cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ - Bản phát hành tiêu điểm AMD64 (20200731) InRelease
Lần truy cập:2 cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ - Bản phát hành tiêu điểm AMD64 (20200731)
Err:3 http://archive.ubuntu.com/ubuntu tiêu điểm InRelease
Lỗi tạm thời khi giải quyết 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntufocal-updates InRelease
Lỗi tạm thời khi giải quyết 'archive.ubuntu.com'
Err:5 http://security.ubuntu.com/ubuntufocal-security InRelease
Lỗi tạm thời khi giải quyết 'security.ubuntu.com'
Err:6 cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ - Bản phát hành tiêu điểm AMD64 (20200731).gpg
Không thể tạo tệp tạm thời /tmp/apt.conf.NMc68S để chuyển cấu hình sang khóa apt
Đang đọc danh sách gói... Error!
W: Đã xảy ra lỗi trong quá trình xác minh chữ ký. Kho lưu trữ không được cập nhật và các tệp chỉ mục trước đó sẽ được sử dụng. Lỗi GPG: cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ - Bản phát hành bản phát hành tiêu điểm amd64 (20200731): Không thể tạo tệp tạm thời /tmp/apt.conf.NMc68S để chuyển cấu hình sang khóa apt
W: Không thể tìm nạp http://archive.ubuntu.com/ubuntu/dists/focal/InRelease Lỗi tạm thời khi giải quyết 'archive.ubuntu.com'
W: Không thể tìm nạp http://security.ubuntu.com/ubuntu/dists/focal-security/InRelease Lỗi tạm thời khi giải quyết 'security.ubuntu.com'
W: Không thể tìm nạp http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease Lỗi tạm thời khi giải quyết 'archive.ubuntu.com'
W: Không thể tìm nạp cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ - Bản phát hành amd64 (20200731)/dists/focal/Release.gpg Không thể tạo tệp tạm thời /tmp/apt.conf.NMc68S để chuyển cấu hình tới apt- Chìa khóa
W: Một số tệp chỉ mục không tải xuống được. Họ đã bị bỏ qua, hoặc những người thân cũ được sử dụng để thay thế.
E: Quy trình con trả về mã lỗi
E: Không thể mkstemp /tmp/clearsigned.message.WSluIb - GetTempFile (2: Không có tệp hoặc thư mục như vậy)
E: Không thể phân tích hoặc mở danh sách gói hoặc tệp trạng thái.
root@ubuntu:/#
Trí thông minh kết thúc ở đây. Giúp đánh giá cao nhất.