Личинка ища зашифрованный корневой UUID перед контейнерным дешифрованием

Я чистил Ubuntu 18.10 с bleachbit, когда мой ПК заморозился. При перезагрузке я был stucked после Личинки в BusyBox (initramfs). При выходе из BusyBox я получаю сообщение:

ALERT! UUID=f6fc1852-25c6-47a6-9976-... does not exist. Dropping to a shell.

Режим восстановления перестал работать точно также.

Я перезагрузил с Живым CD и работал fsck -f на диске незначительные ошибки были обнаружены и зафиксированы, затем вывод был в порядке, но система не передала Личинку перезагрузке.

Мне зашифровали LVM полностью с другим /boot раздел в ясном:

$ sudo fdisk -l
Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 6B6C7A2C-478C-4999-ABD9-53A3BB5FE607

Device             Start        End   Sectors   Size Type
/dev/nvme0n1p1      2048     534527    532480   260M EFI System
/dev/nvme0n1p2    534528     567295     32768    16M Microsoft reserved
/dev/nvme0n1p3    567296  547442295 546875000 260.8G Microsoft basic data
/dev/nvme0n1p4 998166528 1000214527   2048000  1000M Windows recovery environment
/dev/nvme0n1p5 547442688  547969023    526336   257M Linux filesystem
/dev/nvme0n1p6 547969024  998166527 450197504 214.7G Linux filesystem

$ sudo blkid
/dev/nvme0n1p1: LABEL="SYSTEM" UUID="7AA1-7D80" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="8030af7e-64f9-4090-9457-fcd97de33216"
/dev/nvme0n1p3: LABEL="Windows" UUID="DA32A3D932A3B8C1" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="ccc54701-8855-4d06-a7af-b3c4ce9e3c11"
/dev/nvme0n1p4: LABEL="WinRE_DRV" UUID="B242A4E642A4B111" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="73272228-de36-4cb9-959e-53792c2dc104"
/dev/nvme0n1p5: UUID="8618de9e-f06e-46de-9717-38f6da7b1969" TYPE="ext4" PARTUUID="7cdfe2e1-103d-4cf1-9436-0008d34b5ed6"
/dev/nvme0n1: PTUUID="6b6c7a2c-478c-4999-abd9-53a3bb5fe607" PTTYPE="gpt"
/dev/nvme0n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="6d62624f-eba4-4fbb-838e-9ce6087d1135"
/dev/nvme0n1p6: UUID="69a32ddc-3092-487f-99b5-b0e757c5ddf1" TYPE="crypto_LUKS" PARTUUID="f7199882-ca6f-44a9-8730-92386d62ef50"

Никакой UUID здесь не начинается f6fc. Я думаю, что это был UUID зашифрованного LVM на / раздел, однажды дешифрованный с udisksctl unlock -b.

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>
/dev/mapper/nvme0n1p6_crypt /               ext4    errors=remount-ro 0       1
# /boot was on /dev/nvme0n1p5 during installation
UUID=8618de9e-f06e-46de-9717-38f6da7b1969 /boot           ext4    defaults        0       2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=7AA1-7D80  /boot/efi       vfat    umask=0077      0       1
# /windows was on /dev/nvme0n1p3 during installation
UUID=DA32A3D932A3B8C1 /windows        ntfs    defaults,umask=007,gid=46 0       0
/swapfile                                 none            swap    sw              0       0

Таким образом, я попробовал к chroot систему, и переустановите Личинку, с помощью обоих udisksctl unlock -b и что следует для дешифрования корня:

$ sudo cryptsetup luksOpen /dev/nvme0n1p6 crypt
Enter passphrase for /dev/nvme0n1p6: 
$ sudo vgchange -ay
$ sudo mount /dev/mapper/crypt /mnt
$ sudo mount /dev/nvme0n1p5 /mnt/boot/
$ sudo mount -t proc proc /mnt/proc
$ sudo mount -o bind /dev /mnt/dev
$ sudo mount -o bind /sys /mnt/sys
$ sudo chroot /mnt
root@ubuntu:/# update-initramfs -c -k all
update-initramfs: Generating /boot/initrd.img-4.18.0-12-generic
Warning: couldn't identify filesystem type for fsck hook, ignoring.
root@ubuntu:/# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.0-12-generic
Found initrd image: /boot/initrd.img-4.18.0-12-generic
  WARNING: Failed to connect to lvmetad. Falling back to device scanning.
Adding boot menu entry for EFI firmware configuration
done

Но, здесь, Личинка не обнаруживает Windows 10, и Вы предполагаете, отправляю ли я здесь, это - потому что это не работало. Я все еще застреваю с этой странной ошибкой на UUID, который не находится в fstab. Я также пытался grub-install на целом диске, никаком изменении.

Править: разблокирование корня с udisks2, Я добираюсь:

$ sudo udisksctl unlock -b /dev/nvme0n1p6
Unlocked /dev/nvme0n1p6 as /dev/dm-0.
$ sudo udisksctl mount -b /dev/dm-0 
Mounted /dev/dm-0 at /media/root/f6fc1852-25c6-47a6-9776-4ed8b8d6b70e.

заметьте название медиа, оно совпадает с дефектным UUID. Таким образом, я подозреваю, что Grub ищет UUID дешифрованного LVM, прежде чем он будет на самом деле дешифрован. Проблема состоит в том, где найти тот вызов?

Редактирование 2: между тем, перезагрузив в Windows 10 впервые за 3 месяца, BIOS и встроенное микропрограммное обеспечение SSD были обновлены. Все еще никакая удача с Личинкой.

Редактирование 3: Я нашел, что плохие призывают /boot/grub/grub.cfg :

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f6fc1852-25c6-47a6-9776-4ed8b8d6b70e' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_gpt
    insmod ext2
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root  8618de9e-f06e-46de-9717-38f6da7b1969
    else
      search --no-floppy --fs-uuid --set=root 8618de9e-f06e-46de-9717-38f6da7b1969
    fi
    linux   /vmlinuz-4.18.0-12-generic root=UUID=f6fc1852-25c6-47a6-9776-4ed8b8d6b70e ro  quiet splash elevator=noop $vt_handoff
    initrd  /initrd.img-4.18.0-12-generic
}

но вот /etc/default/grub:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Так, как я делаю то право?

2
задан 2 December 2018 в 08:47

2 ответа

Если /et/crypttab пусто, который является certinaly проблема.

Необходимо поместить там корневой раздел как это:

nvme0n1p6_crypt UUID=f6fc1852-25c6-47a6-9776-4ed8b8d6b70e none luks

Я предполагаю, что Вы введете свой пароль при начальной загрузке. Если Вы хотите использовать изменение файла ключей 'ни один' для Вашего файла ключей.

Таким образом, необходимо повторно выполниться update-initramfs из chroot. И я не уверен, но это должно добиться цели. Можно также повторно выполниться update-grub быть уверенным.

# boot a live USB/CD and open a terminal
$ sudo cryptsetup luksOpen /dev/nvme0n1p6 crypt
Enter passphrase for /dev/nvme0n1p6: 
$ sudo mount /dev/mapper/crypt /mnt
# edit your /mnt/etc/crypttab to add root parttion as shown above
$ sudo mount /dev/nvme0n1p5 /mnt/boot/
$ sudo mount -o bind /proc /mnt/proc
$ sudo mount -o bind /dev /mnt/dev
$ sudo mount -o bind /sys /mnt/sys
$ sudo chroot /mnt
root@ubuntu:/# sudo update-initramfs -u -k all
root@ubuntu:/# sudo update-grub
root@ubuntu:/# exit
$ sudo umount /mnt/proc
$ sudo umount /mnt/sys
$ sudo umount /mnt/dev
$ umount /mnt/boot
$ umount /mnt
$ sudo reboot
2
ответ дан 2 December 2019 в 03:30

Восстановление начальной загрузки обычно работает

Начальная загрузка с живым USB и выбором "Пробует Ubuntu без установки". Затем откройте новый Терминал, затем введите следующие команды (нажмите Enter после каждой строки):

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Рекомендуемое восстановление

  1. запустите Восстановление начальной загрузки от также: Тире (логотип Ubuntu в верхнем левом из экрана) или путем ввода 'восстановления начальной загрузки' в терминале

  2. Затем нажмите кнопку "Recommended repair". Когда восстановление закончено, отметьте URL (paste.ubuntu.com/XXXXX), который появился на бумаге, затем перезагрузка, и проверьте, восстановили ли Вы доступ к своему OSs.

  3. Если восстановление не успешно выполнялось, укажите на URL людям, которые помогают Вам по электронной почте или форуму.

Предупреждение: настройки по умолчанию - те используемые "Рекомендуемым Восстановлением". Изменение их может ухудшить Вашу проблему. Не изменяйте их прежде, чем создать BootInfo URL и попросить совета относительно Форумов Ubuntu у Абсолютного Раздела Новичков или в Установке и Обновлениях.

0
ответ дан 2 December 2019 в 03:30

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

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