cryptsetup: ожидание зашифрованного исходного устройства / файла подкачки, fstab empty

На загрузочном экране я получаю сообщение:

cryptsetup: waiting for encrypted source device /swapfile...

, после чего я в течение примерно 2 минут зависаю, а затем

Initramfs unpacking failed: Decoding failed.

, после чего меня сбрасывают в Initramfs.

Это в Ubuntu. 20.04 с зашифрованной домашней папкой. Я получил ошибку после переключения обратно на драйвер nouveau для установки cuda-10 (он жаловался на то, что драйвер nvidia уже используется)

Другие предложения включают в себя что-то сделать с / etc / crypttab , но этот файл не существует в моей системе. cat / etc / fstab также показывает пустой файл. Некоторые читатели предполагают, что в этом случае будут использоваться настройки по умолчанию, но если это так, как он узнает, какой диск следует использовать в качестве пространства подкачки? Или есть что-то, что я могу сделать с живым usb?

Выходные данные mount:

none on / type rootfs (rw)
sysfs on /sys type sysfs (rw,nosuid, nodev, noexec, relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid, noexec,relatime,size=32840428k,nr_inodes=8210107,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on/run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=6583428k,mode=755)

lsblk возвращает не найденную ошибку (это происходит в Inframs, поэтому может не работать)

При монтировании sdc1 on / mnt on Жизнь USB я могу получить следующие результаты: cat / mnt / etc / fstab выглядит как

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdc1 during installation
UUID=5df229c0-be7c-43d7-b616-67ec15e2a6d3 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/nvme0n1p2 during installation
UUID=D23D-B0F6  /boot/efi       vfat    umask=0077      0       1
#/swapfile none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

. cat / mnt / etc / crypttab

выглядит как

# <target name> <source device>     <key file>  <options>
cryptswap1 /swapfile /dev/urandom swap,offset=1024,cipher=aes-xts-plain64

и lsblk -o name, type, uuid, label выглядит как

NAME        TYPE UUID                                 LABEL
loop0       loop                                      
loop1       loop                                      
loop2       loop                                      
loop3       loop                                      
loop4       loop                                      
loop5       loop                                      
sda         disk                                      
└─sda1      part 8C45-E3AC                            UBUNTU 20_0
sdb         disk                                      
├─sdb1      part                                      
└─sdb2      part                                      
sdc         disk                                      
└─sdc1      part 5df229c0-be7c-43d7-b616-67ec15e2a6d3 
nvme0n1     disk                                      
├─nvme0n1p1 part 60FC3C5FFC3C3220                     Recovery
├─nvme0n1p2 part D23D-B0F6                            
├─nvme0n1p3 part                                      
└─nvme0n1p4 part                                      
5
задан 8 July 2020 в 10:31

1 ответ

Если я ничего не пропущу, все будет в порядке с вашими настройками. Однако это может помочь восстановить initramfs при отключении шифрования файла / swap .

Загрузите систему с живого диска Ubuntu. Смонтируйте эти два раздела:

$ sudo mount /dev/sdc1 /mnt
$ sudo mount /dev/nvme0n1p2 /mnt/boot/efi

Откройте / mnt / etc / fstab и прокомментируйте эту строку (добавьте # в начале):

/dev/mapper/cryptswap1 none swap sw 0 0

Откройте / mnt / etc / crypttab и прокомментируйте эту строку (добавьте # в начале):

cryptswap1 /swapfile /dev/urandom swap,offset=1024,cipher=aes-xts-plain64

Теперь нам нужно chroot в систему и восстановить initramfs :

$ sudo mount --bind /dev /mnt/dev
$ sudo chroot /mnt
# mount --type proc none /proc
# mount --type sysfs none /sys
# update-initramfs -k all -c

Это все сделано. выход из среды chroot:

# exit

Размонтируйте смонтированные разделы и перезагрузитесь:

$ sudo umount -R /mnt
$ sudo reboot

Теперь вы потеряли шифрование в / swap . Однако я думаю, что вы не хотели этого в первую очередь. Вы можете попробовать эти инструкции без редактирования / etc / fstab и / etc / crypttab . Это тоже может сработать.

1
ответ дан 30 July 2020 в 22:17

Другие вопросы по тегам:

Похожие вопросы: