여러 커널 업그레이드를 거친 Ubuntu 시스템이 있습니다. 저는 5.11.0-34, 5.11.0-46, 5.11.0-49의 3개 커널을 설치하여 하루를 시작했습니다. 여러 패키지를 업그레이드한 다음 중간 커널을 제거하여 부팅 파티션에 공간을 확보해야 했습니다.
이제 나머지 커널을 부팅할 수 없습니다. 그 중 어느 것도 Linux가 설치된 드라이브의 암호를 해독하기 위해 비밀번호를 묻는 메시지를 표시하지 않습니다. 복구 모드로 부팅하는지 여부에 관계없이 메시지를 인쇄하고 다음과 같은 셸로 종료됩니다.
Unable to init MCE device (rc: -5)
Volume group "vgubuntu" not found
Cannot process volume group vgubuntu
Gave up waiting for suspend/resume device
Gave up waiting for root file system device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapp/vgubuntu-root does not exist. Dropping to a shell!
BusyBox v1.30.1 (Ubuntu 1:1.30.1-6ubuntu2.1) built-in shell (ash)
오래 전에 나는다음에 추가 mce=off
커널 매개변수로. 모든 GRUB 메뉴 옵션에 나타납니다.
부팅하려면 어떻게 설치를 수정해야 합니까?
답변1
어딘가 문제가 생겨서 도망쳐야 했어요 update-initramfs
. 세 곳에서 매우 유사한 지침을 찾았습니다.
- https://ubuntuforums.org/showthread.php?t=2409754&s=e1f324bf5e566b3bb93374cd07bdcc17&p=13828993
- https://askubuntu.com/a/868726/538768
- https://feeding.cloud.geek.nz/posts/recovering-from-unbootable-ubuntu-encrypted-lvm-root-partition/
이것이 내가 거기에 도착한 방법입니다.
나는 라이브 USB에서 Ubuntu를 로드하고 fdisk -l
내 파티션을 살펴보고 어느 파티션이 암호화되었는지 추측하기 위해 실행했습니다. 나는 다음을 본다(다른 것들 중에서):
/dev/nvme2n1p1
: 512M EFI 시스템/dev/nvme2n1p2
: 732M 리눅스 파일 시스템/dev/nvme2n1p3
: 1.8T 리눅스 파일 시스템 <-- 이게 아닐까 싶습니다.
그런 다음 파티션의 암호를 해독하고 다음과 같이 마운트했습니다.
sudo -i
cryptsetup open /dev/nvme2n1p3 $name
vgchange -ay
mkdir /mnt/root
mount /dev/mapper/$name /mnt/root
/etc/crypttab
이를 통해 파티션을 해독할 때 어떤 장치 이름이 사용되었는지 확인할 수 있습니다 ( nvme0n1p3_crypt
이 경우):
nvme0n1p3_crypt UUID=743ab129-75bb-429b-8366-9c066f00c4fe none luks,discard
/etc/fstab
그런 다음 어떤 파티션이 부팅 파티션이고 EFI 파티션인지 확인했습니다 .
# /boot was on /dev/nvme0n1p2 during installation
UUID=773ceeb2-5c0f-4838-baad-a1182d7fdd80 /boot ext4 defaults 0 2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=5C17-FB32 /boot/efi vfat umask=0077 0 1
설치 시 이러한 파티션의 이름은 와 유사하게 지정되었지만 nvme0n1p*
더 이상 이름이 지정되지 않았습니다. 다음을 나열하여 현재 이름을 찾을 수 있습니다 /dev/disk/by-uuid
.
$ ls -l /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 15 Jan 31 12:29 5C17-FB32 -> ../../nvme2n1p1
lrwxrwxrwx 1 root root 15 Jan 31 12:29 743ab129-75bb-429b-8366-9c066f00c4fe -> ../../nvme2n1p3
lrwxrwxrwx 1 root root 15 Jan 31 12:29 773ceeb2-5c0f-4838-baad-a1182d7fdd80 -> ../../nvme2n1p2
이제 지침을 따르는 데 필요한 모든 부품이 준비되었습니다. 내가 실행한 실제 명령은 다음과 같습니다.
sudo -i
cryptsetup open /dev/nvme2n1p3 nvme0n1p3_crypt
mount /dev/mapper/nvme0n1p3_crypt /mnt/root
mount /dev/nvme2n1p2 /mnt/root/boot
mount /dev/nvme2n1p1 /mnt/root/boot/efi
mount --bind /dev /mnt/root/dev
mount --bind /run /mnt/root/run
chroot /mnt/root
mount -t proc proc /proc
mount -t sysfs sys /sys
update-initramfs -c -k all
그런 다음 시스템을 재부팅하고 설치된 커널 중 하나로 부팅할 수 있습니다.