У меня есть раздел Linux /home
зашифрованный с помощью ecryptfs
, моя установка Linux больше не работает, и я хотел бы получить доступ к файлам, хранящимся в этом разделе, из Windows.
Есть ли инструмент / процедура, которая позволила бы мне сделать это?
2 ответа
eCryptfs - это файловая система, встроенная в ядро Linux. Невозможно расшифровать эти данные из Windows.
Однако вы можете загрузить Ubuntu LiveCD, расшифровать и восстановить ваши данные (при условии, что у вас есть необходимые ключи), используя утилиту ecryptfs-recovery-private .
Полные инструкции можно найти здесь:
Полное раскрытие: я один из авторов и сопровождающих eCryptfs.
Поскольку ecryptfs был написан как модуль ядра, "инструментом" для этого является, в общем-то, ядро Linux.
Но тогда мы все равно должны скопировать данные в Windows или прочитать их из Linux.
К счастью, мы можем использовать инструменты автоматизации для загрузки, установки, настройки и запуска ядра Linux в Windows с помощью некоторых опытных команд оболочки Windows. Vagrant легко управляет общими папками между Windows и Ubuntu и может быть установлен с помощью нескольких команд в Windows
Прежде чем мы начнем, если вы хотите скопировать зашифрованные файлы (включая мета-каталоги) из раздела ext4 в NTFS, я рекомендую Disk Internals Linux Reader, но если вы разбираетесь в команде unix mount
вы можете пропустить этот шаг (я просто предпочитаю GUI команде mount
)
Установите vagrant через официальный установщик (шоколадные порты не рекомендуются)
В командной строке Windows Windows (нажмите клавишу Windows и введите команду, затем щелкните правой кнопкой мыши запустить от имени администратора):
Установите chocolatey, затем перезапустите командную строку администратора и введите:
choco install Cygwin cyg-get
В приглашении cygwin (нажмите клавишу Windows и введите cygwin):
cyg-get install
# ASSUMING you copied all the decrypted files to windows, otherwise use mount method below
cd /cygdrive/c/<path to where encryptfs folder is located in windows>
# Either way:
vagrant init ubuntu/xenial64
vagrant up
vagrant ssh
Вы должны быть в оболочке Ubuntu через виртуальную машину:
sudo apt update
sudo apt install ecrypt-utils tree -y
# At this point you can use mount command, or if you just have the raw files on disk:
cd /vagrant/.ecryptfs
ls
cd myusername
ls .Private
# Either way, let's decrypt
# This WILL fail the first time due a strange bug,
ecrypt-recover-private .Private
# We will start and cancel a mount to fix the bug.
# Choose defaults for everything except passphrase (just press ENTER repeatedly)
sudo mount -t ecryptfs .Private/ decrypted
# Then cancel the mount
Would you like to proceed with the mount (yes/no)? : no
# Now that we fixed the bug with a canceled mount, let's actually recover:
ecrypt-recover-private .Private
# Now that should succeed, so see your data with this
tree /tmp
Если это не удастся, вы можете убедиться, что у вас есть упакованный файл паролей (sudo updatedb && locate wrapped-passphrase
) или посмотреть, как вставить упакованную фразу-пароль в связку ключей.
Все еще есть проблемы? Попробуйте метод монтирования. Вы также можете поиграть со следующим (более подробно здесь):sudo mount -t ecryptfs /dev/mydevicehere decrypted
Обратите внимание, что вы можете сделать это монтирование, не копируя ЛЮБЫЕ файлы из ext4 в NTFS, и пропустить некоторые шаги.
Если вы добились успеха, если вы хотите, чтобы эти файлы были доступны для Windows, просто скопируйте их в /vagrant
с помощью команды cp
- помните, что при этом вы дублируете данные.
Все сделано? Счастливый? Выйдите из виртуальной машины Ubuntu, введя команду exit
а затем выключите ее, введя vagrant halt
, и удалите виртуальную машину, введя vagrant destroy