Восстановить / изменить пароль шифрования

На прошлой неделе я по глупости сменил свой пароль шифрования для всего диска, потому что, по-видимому, я не смог надежно набрать предыдущий пароль. К сожалению, мой компьютер был включен с тех пор, и я нигде не записывал новый пароль, поэтому я забыл его. Не мой самый гордый момент, но я очень благодарен, что понял, прежде чем пришло время для ввода пароля. Я все еще вошел в компьютер, поэтому у меня есть доступ ко всем моим файлам, но как только я выключу компьютер, мне не повезет. Я хотел бы избежать переустановки всего, если смогу.

Итак, мой вопрос, есть ли способ восстановить / изменить мой пароль шифрования, пока я все еще вошел в систему как администратор?

1
задан 14 March 2018 в 19:59

1 ответ

Резервное копирование и Восстановление Дешифрованные Разделы: Предупреждение этого немного технического

Я соединяю некоторые сценарии, которые автоматизируют большую часть из этого, но если Вы не ожидали бы, я протестировал шаги ниже. Просто убедитесь, что Вы знаете то, что Вы делаете. Не слепо следуйте командам, которые я записал. Некоторые из них могут потребовать замен, характерных для Вашей конфигурации системы. После того как я закончил сценарии. Я загружу их на GitHub и отредактирую этот ответ.

К сожалению, Вы не собираетесь быть способными восстановить или изменить пароль шифрования. Вы не сможете создать любые новые или не имея одного из существующих ключей или паролей. Однако, так как в Вас входят система, Вы находитесь в удаче! Вот опция, которая технически не требует полной переустановки. Вы говорите использование шифрования целого диска таким образом, я собираюсь предположить, что у Вас есть два основных раздела на Вашем диске, разделе начальной загрузки и разделе LUKS (при использовании EFI у Вас, вероятно, есть третий раздел для этого). Затем Ваш дешифрованный раздел LUKS, вероятно, использует LVM для любого и всех других дешифрованных разделов.
Ваш вывод lsblk, вероятно, выглядит примерно так:

NAME                    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sr0                      11:0    1 1024M  0 rom   
sda                       8:0    0   16G  0 disk  
├─sda2                    8:2    0  488M  0 part  /boot
├─sda3                    8:3    0   15G  0 part  
│ └─sda3_crypt          253:0    0   15G  0 crypt 
│   ├─ubuntu--vg-root   253:1    0 11.8G  0 lvm   /
│   └─ubuntu--vg-swap_1 253:2    0  3.3G  0 lvm   [SWAP]
└─sda1                    8:1    0  512M  0 part  /boot/efi

Единственная часть интереса здесь sda диск.


Как заставить его произойти в целом

В основном бит системы, которая шифруется, sda3, и это шифруется с LUKS. Раздел LUKS при разблокировании содержит физический том LVM, sda3_crypt, это размещает единственную названную группу объема ubuntu--vg. Эта группа объема затем содержит два логических тома LVM, ubuntu--vg-root и ubuntu--vg-swap_1. Если мы можем скопировать физический том LVM, sda3_crypt, затем мы можем сдуть старый раздел LUKS на sda3, создайте новый и выведите физический том LVM назад на новом разделе LUKS. Существует одна выгода, хотя! Все загрузочные файлы в Вашем разделе начальной загрузки, sda2 все еще сошлитесь на старый раздел LUKS, который Вы уничтожили. Необходимо обновить Ваш /etc/crypttab файл, чтобы указать на новый раздел LUKS, что Вы создали и восстанавливаете свои initram диски. Только после этого закончен, должен Вы перезагружать свою систему.

Продолжите читать следующий раздел для фактических шагов, чтобы заставить это произойти.


Фактический пошаговый процесс

  1. Вы испытываете необходимость в диске, который можно позволить себе вытереть, или по крайней мере диск, который имеет партон равного или большего размера к тому из sda3. Содержание упомянутого диска или раздела будет полностью вытерто в этом процессе. Я собираюсь сделать этот пример с помощью целого диска.
  2. Выполненный lsusb с Вашим диском, присоединенным, и, определяют местоположение Вашего внешнего диска, sdb в моем случае.
    sdb                       8:16   0   16G  0 disk  
    └─sdb1                    8:17   0   16G  0 part  /media/test/external-drive
    sr0                      11:0    1 1024M  0 rom   
    sda                       8:0    0   16G  0 disk  
    ├─sda2                    8:2    0  488M  0 part  /boot
    ├─sda3                    8:3    0   15G  0 part  
    │ └─sda3_crypt          253:0    0   15G  0 crypt 
    │   ├─ubuntu--vg-root   253:1    0 11.8G  0 lvm   /
    │   └─ubuntu--vg-swap_1 253:2    0  3.3G  0 lvm   [SWAP]
    └─sda1                    8:1    0  512M  0 part  /boot/efi
    
  3. Размонтируйте свой внешний диск, потому что мы собираемся быть перезаписью содержания, которое это там. Замена /media/test/external-drive с фактическим путем к Вашему диску в следующей команде.
    sudo umount /media/test/external-drive
  4. Необходимо клонировать существующий, дешифрованный физический том LVM к внешнему устройству. В следующей команде, замене sdX с устройством Вашего внешнего жесткого диска. В моем случае записал бы я ... of=/dev/sdb.... Также замена sda3_crypt с названием Вашего раздела LUKS. Это собирается занять хорошее долгое время. Мне потребовались 35 минут в тесте только с разделом LUKS на 16 ГБ.
    sudo dd if=/dev/mapper/sda3_crypt of=/dev/sdX bs=4M status=progress
  5. Отсюда на, знать, чем какие-либо изменения Вы делаете в своей системе, может не присутствовать, когда Вы восстанавливаете. На самом деле, вероятно, лучше, что Вы не используете свой компьютер, в то время как это делает это - резервное копирование.
  6. После того как резервное копирование закончило, перезагружает использующее компьютеры живая Ubuntu USB и выбирает опцию попробовать Ubuntu без установки.
  7. После того как система произошла, откройте терминал и отбрасывание для укоренения.
    sudo -i
  8. В этом терминале создайте новый раздел LUKS на по старому. В моем примере идет раздел LUKS sda3. Замените корректным числом от своей системы вместо sdaN в команде ниже.
    cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sdaN
  9. Следуйте за подсказками и введите пароль, который Вы надеетесь никогда не забыть.
  10. После того как это сделано, необходимо разблокировать раздел LUKS. Измените число для соответствия системе в следующей команде, заменив цифру 3 с соответствующим числом для Вашего устройства.
    cryptsetup luksOpen /dev/sda3 sda3_crypt
  11. Теперь Ваш дешифрованный раздел LUKS открыт и готов к тому, что чернил физический том LVM назад (следующая команда). Замените X в sdX с устройством Вашего внешнего диска. Замените 3 в sda3_crypt с соответствующим количеством Вашего раздела. dd if=/dev/sdX of=/dev/mapper/sda3_crypt
  12. Снова, Вы оказываетесь перед необходимостью ожидать в течение действительно долгого времени, в то время как все восстанавливается. Пойдите находят, что что-то еще делает, в то время как Вы ожидаете.
  13. Когда восстановление будет закончено, идите вперед и удалите внешний диск и перезагрузку. Мы хотим удостовериться, что нет никаких конфликтов LVM, когда мы возвращаем систему, чтобы закончить обновлять загрузочные файлы на внутреннем диске. После того, как перезагруженный без внешнего диска, откройте терминал и отбрасывание для укоренения как на шаге 7.
  14. Теперь мы должны дешифровать раздел LUKS снова. В корневом терминале, выполненном следующее, заменяя цифру 3 с корректным числом для Вашего раздела. При запросе введите пароль, Вы создали это, Вы никогда не собираетесь забывать снова.
    cryptsetup /dev/sda3 sda3_crypt
  15. Затем позволяет, устанавливает некоторые переменные для упрощения команд в следующих шагах. Выполните каждое из следующих. Вы не будете видеть вывода, потому что он будет сохранен к переменным
    • vg=$(pvscan | grep PV | tr -s ' ' | cut -f 5 -d ' ') <-сохраняют название группы объема к $vg
    • export uuid=$(blkid | grep LUKS | grep -oP "\bUUID=\".*?\"" | tr -d '"' | cut -f 2 -d '=') <-сохраняют UUID LUKS к $uuid (это - вся одна строка),
  16. Существует всего одна вещь, оставленная сделать, и это должно обновить загрузочные файлы, и сделать это мы должны смонтировать некоторые вещи. Выполните следующие команды в корневом терминале для монтирования всего. Я собираюсь использовать ту информацию о разделе от своего примера. Измените свои команды соответственно.
    • mount /dev/mapper/${vg/-/--}-root /mnt
    • mount /dev/sda2 /mnt/boot
    • mount /dev/sda1 /mnt/boot/efi <-только делают это для систем UEFI
    • mount --bind /dev /mnt/dev
    • mount --bind /run/lvm /mnt/run/lvm
  17. Теперь нам нужно к chroot в Вашу фактическую систему.
    chroot /mnt
    Удостоверьтесь, что следующие команды выполняются в этом chroot'd терминале!
  18. Теперь, когда мы находимся в Вашей системе, мы должны смонтировать пару большего количества вещей, прежде чем мы сможем обновить загрузочные файлы.
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  19. Затем мы должны обновить /etc/crypttab файл с UUID нового раздела LUKS.
    sed -i "s/UUID=\([0-9a-f\-]\+\)/UUID=$uuid/" /etc/crypttab
  20. Наконец, мы обновляем загрузочные файлы.
    update-initramfs -k all -c
    update-grub
1
ответ дан 7 December 2019 в 15:22

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

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