Недавно я купил подержанный Lenovo Thinkpad T470. После установки Ubuntu 20.04 и некоторого использования я заметил, что время от времени он зависает, по-видимому, SSD-диск перестал отвечать. После этого я всегда мог перезапустить систему, и все было бы хорошо.
Но на днях произошел сбой во время обновления системы, и при загрузке я получил сообщение о том, что система отказалась от ожидания устройства корневой файловой системы и
ТРЕВОГА! UUID=xxx не существует. Падение в ракушку!
Я попытался добавить rootdelay=5 из параметров запуска GRUB (нажав «e»), но это не помогло.
Так начались мои эксперименты. В системе нет ценных данных, поэтому я испробовал много советов, пытаясь восстановить систему, включая попытки исправления и форматирования разделов, но безуспешно.
С твердотельным накопителем, кажется, все в порядке физически - при запуске тестов памяти и хранилища BIOS, поставляемых с системой, все выглядит нормально. Я решил переустановить Ubuntu с помощью Live USB, но у меня нет возможности выбрать раздел при запуске программы установки. Запустив boot-repair, я получаю аналогичную проблему - нет кнопки для исправления загрузки.
Итак, это моя вторая попытка спасти систему, и я решил подробно задокументировать это, надеюсь, это поможет другим.
Обновление initram и GRUB
Следуя совету, данному здесь
ТРЕВОГА! /dev/disk/by-uuid/xxxxxxxxx не существует. Падение в оболочку
Я загрузился с Live USB (Ubuntu 20.04) и посмотрел на вывод из Судо Блкид
:
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=" ззззз"
/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, указанный в сообщении об ошибке загрузки, отличается от того, который я получаю от черный
. На основании этой информации и выходных данных fdisk -l
Размер начальных и конечных секторов загрузки устройства Идентификатор типа
/dev/sda1 * 0 5439487 5439488 2.6G 0 Пусто
/dev/sda2 5017392 5025327 7936 3.9M ef EFI (FAT-12/16/32)
/dev/sda3 5439488 30031871 24592384 11.7G 83 Linux
Я решил продолжить:
ubuntu@ubuntu:~$ sudo mount /dev/sda3 /mnt
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
mount: /mnt/dev: точка монтирования не существует.
Хорошо - я могу сначала создать каталоги, np
sudo mkdir /mnt/dev
ubuntu@ubuntu:~$ sudo mount /dev/sda3 /mnt
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
mount: /mnt/dev: точка монтирования не существует.
ubuntu@ubuntu:~$ sudo mkdir /mnt/dev
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo mount --bind /proc /mnt/proc
mount: /mnt/proc: точка монтирования не существует.
ubuntu@ubuntu:~$ sudo mkdir /mnt/proc
ubuntu@ubuntu:~$ sudo mount --bind /proc /mnt/proc
ubuntu@ubuntu:~$ sudo mount --bind /sys /mnt/sys
mount: /mnt/sys: точка монтирования не существует.
ubuntu@ubuntu:~$ sudo mkdir /mnt/sys
ubuntu@ubuntu:~$ sudo mount --bind /sys /mnt/sys
ubuntu@ubuntu:~$ sudo chroot /mnt
chroot: не удалось выполнить команду «/bin/bash»: нет такого файла или каталога
https://unix.stackexchange.com/questions/128046/chroot-failed-to-run-command-bin-bash-no-such-file-or-directory
Нам нужно сделать бить
доступный из chroot
ubuntu@ubuntu:~$ sudo chroot /mnt /usr/bin/bash
chroot: не удалось выполнить команду «/usr/bin/bash»: нет такого файла или каталога
ubuntu@ubuntu:~$ какой баш
/USR/бин/Баш
ubuntu@ubuntu:~$ sudo mkdir /mnt/usr
ubuntu@ubuntu:~$ sudo mount --bind /usr /mnt/usr
ubuntu@ubuntu:~$ sudo chroot /mnt /usr/bin/bash
chroot: не удалось выполнить команду «/usr/bin/bash»: нет такого файла или каталога
хорошо
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
Баш-5.0 #
ДА! Вернемся к обновлению initramfs!
bash-5.0# обновление-initramfs -u
bash: /usr/sbin/update-initramfs: /bin/sh: плохой интерпретатор: нет такого файла или каталога
Теперь я знаю этот трюк.
bash-5.0# выход
выход
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# обновление-initramfs -u
update-initramfs отключен, так как работает на носителе только для чтения
Разочаровывает.
https://superuser.com/questions/903142/how-to-run-update-initramfs-from-bootable-usb
bash-5.0#, где находится update-initramfs
обновление-initramfs: /usr/sbin/update-initramfs /usr/sbin/update-initramfs.distrib /usr/share/man/man8/update-initramfs.8.gz
bash-5.0# кошка /usr/sbin/update-initramfs
#! /бин/ш
echo "update-initramfs отключен, так как работает на носителе только для чтения"
выход 0
Нам нужно позвонить mkinitramfs
прямо кажется
bash-5.0# cd /lib/modules
bash-5.0# лс
5.4.0-42-общий
Захватывающе!
root@ubuntu:/# mkinitramfs -o /boot/initrm.img-5.4.0-42-общий 5.4.0-42-общий
сенсорный: нельзя трогать '/boot/initrm.img-5.4.0-42-generic': нет такого файла или каталога
mktemp: не удалось создать каталог с помощью шаблона «/var/tmp/mkinitramfs_XXXXXX»: нет такого файла или каталога
Попался. Еще несколько каталогов, которые нужно смонтировать.
root@ubuntu:/# выход
выход
ubuntu@ubuntu:~$ sudo mkdir /mnt/boot
ubuntu@ubuntu:~$ sudo mount --bind /boot /mnt/boot
ubuntu@ubuntu:~$ sudo chroot /mnt /usr/bin/bash
root@ubuntu:/# mkinitramfs -o /boot/initrm.img-5.4.0-42-общий 5.4.0-42-общий
mktemp: не удалось создать каталог с помощью шаблона «/var/tmp/mkinitramfs_XXXXXX»: нет такого файла или каталога
root@ubuntu:/# выход
выход
ubuntu@ubuntu:~$ sudo mkdir /mnt/var
ubuntu@ubuntu:~$ sudo mount --bind /var /mnt/var
ubuntu@ubuntu:~$ sudo chroot /mnt /usr/bin/bash
Скрещенные пальцы!
root@ubuntu:/# mkinitramfs -o /boot/initrm.img-5.4.0-42-общий 5.4.0-42-общий
...
/usr/sbin/mkinitramfs: 76: modprobe: не найден
/usr/sbin/mkinitramfs: 75: modprobe: не найден
/usr/sbin/mkinitramfs: 76: modprobe: не найден
найти: «/var/tmp/mkinitramfs_TcMfi0/lib/modules/5.4.0-42-generic/kernel»: нет такого файла или каталога
/usr/sbin/mkinitramfs: 75: modprobe: не найден
/usr/sbin/mkinitramfs: 76: modprobe: не найден
E: Ошибка /usr/share/initramfs-tools/hooks/brltty с возвратом 1.
Нет радости.
ошибка initramfs при установке/обновлении
Следование приведенному выше совету относительно пакетов, к сожалению, не помогло:
root@ubuntu:/# apt-get auto-remove && apt-get clean && apt-get update && apt-get upgrade
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
0 обновлено, 0 установлено заново, 0 удалено и 0 не обновлено.
Ign:1 cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ — выпуск amd64 (20200731) focus InRelease
Попадание: 2 cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ - Выпуск amd64 (20200731) focal Release
Err:3 http://archive.ubuntu.com/ubuntu focus InRelease
Временная ошибка разрешения «archive.ubuntu.com»
Err:4 http://archive.ubuntu.com/ubuntu focus-updates InRelease
Временная ошибка разрешения «archive.ubuntu.com»
Ошибка: 5 http://security.ubuntu.com/ubuntu focus-security InRelease
Временная ошибка при разрешении «security.ubuntu.com»
Err:6 cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ — выпуск amd64 (20200731) focus Release.gpg
Не удалось создать временный файл /tmp/apt.conf.NMc68S для передачи конфигурации в apt-key.
Чтение списков пакетов... Ошибка!
W: Произошла ошибка при проверке подписи. Репозиторий не обновляется, и будут использоваться предыдущие индексные файлы. Ошибка GPG: cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ — выпуск amd64 (20200731) focus Release: не удалось создать временный файл /tmp/apt.conf.NMc68S для передачи конфигурации в apt-key
W: Не удалось получить http://archive.ubuntu.com/ubuntu/dists/focal/InRelease. Временная ошибка разрешения «archive.ubuntu.com».
W: Не удалось получить http://security.ubuntu.com/ubuntu/dists/focal-security/InRelease. Временная ошибка при разрешении «security.ubuntu.com».
W: Не удалось получить http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease. Временная ошибка разрешения «archive.ubuntu.com».
W: Не удалось получить cdrom://Ubuntu 20.04.1 LTS _Focal Fossa_ — выпуск amd64 (20200731)/dists/focal/Release.gpg Не удалось создать временный файл /tmp/apt.conf.NMc68S для передачи конфигурации в apt- ключ
W: Не удалось загрузить некоторые индексные файлы. Их игнорировали или вместо них использовали старые.
E: подпроцесс вернул код ошибки
E: невозможно выполнить mkstemp /tmp/clearsigned.message.WSluIb — GetTempFile (2: такого файла или каталога нет)
E: Не удалось проанализировать или открыть списки пакетов или файл состояния.
root@ubuntu:/#
На этом остроты заканчиваются. Помощь наиболее ценится.