10

У меня есть раздел Linux /home зашифрованный с помощью ecryptfs , моя установка Linux больше не работает, и я хотел бы получить доступ к файлам, хранящимся в этом разделе, из Windows. Есть ли инструмент / процедура, которая позволила бы мне сделать это?

2 ответа2

9

eCryptfs - это файловая система, встроенная в ядро Linux. Невозможно расшифровать эти данные из Windows.

Однако вы можете загрузить Ubuntu LiveCD, расшифровать и восстановить ваши данные (при условии, что у вас есть необходимые ключи), используя утилиту ecryptfs-recovery-private .

Полные инструкции можно найти здесь:

Полное раскрытие: я один из авторов и сопровождающих eCryptfs.

0

Поскольку 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .