проблема с ecryptfs-recover-private: mount(2) неудачен

Вопрос или проблема

Я в процессе переноса своей операционной системы и данных с одного диска на другой на одном и том же компьютере. (Я купил отличный новый SSD.) Мой старый домашний каталог содержал зашифрованный подкаталог, и я хотел бы получить доступ к зашифрованному каталогу из новой установки. Я пытаюсь использовать ecryptfs-recover-private. Однако я сталкиваюсь со следующей ошибкой.

$ sudo ecryptfs-recover-private /BLAH/.Private
INFO: Найден [.Private/].
Попробовать восстановить этот каталог? [Y/n]: 
INFO: Найдена ваша обернутая парольная фраза
Вы знаете свою парольную фразу LOGIN? [Y/n] 
INFO: Введите вашу парольную фразу LOGIN...
Парольная фраза: 
Вставлена токен аутентификации с подписью [BLAH] в ключевую цепочку пользовательской сессии
mount: mount(2) не удалось: Нет такого файла или директории
ERROR: Не удалось смонтировать приватные данные по адресу [/tmp/ecryptfs.NcWkVmQ5].

Я сталкиваюсь с той же проблемой, если позволяю ecryptfs-recover-private самостоятельно найти каталог или если я говорю “нет” на вопрос о парольной фразе для входа, но использую вместо этого парольную фразу монтирования.

Мысли?

(Я понимаю, что на этом сайте есть несколько похожих вопросов, но ни один из них, похоже, не охватывает мою ситуацию.)

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

Тем не менее, добавление обернутой парольной фразы в ключевую цепочку ядра перед попыткой восстановить файловую систему работает (обязательно используйте sudo в обеих командах ниже):

sudo ecryptfs-insert-wrapped-passphrase-into-keyring /BLAH/.ecryptfs/wrapped-passphrase
sudo ecryptfs-recover-private /BLAH/.Private

Таким образом, эта простая команда ecryptfs-recover-private оказалась ненадежной.
Ни один из методов выше не сработал для меня, пытаясь перейти с ecryptfs на контейнер LUKS.

Тем не менее, сработал ручной метод, описанный в вики сообщества ubuntu

В деталях:

# sudo -i
# ecryptfs-add-passphrase --fnek 
Вставлена токен аутентификации с подписью [aaaaaaaaaaaaa] в ключевую цепочку пользовательской сессии 
Вставлена токен аутентификации с подписью [bbbbbbbbbbbbb] в ключевую цепочку пользовательской сессии  
# mkdir -p /mnt/new_mount_point  
# mount -t ecryptfs /mnt/old_mount_point/home/username/.Private /mnt/new_mount_point
  • выберите 3 (используйте тип ключа парольной фразы и используйте свою восстановленную парольную фразу, т.е. не обернутую)
  • выберите aes (используйте шифр aes)
  • выберите 16 (используйте 16-байтный ключ)
  • включите прохождение в открытом виде: n
  • включите шифрование имени файла: y

Для меня это сработало, как обсуждалось на ecryptfs-mount-private не удается инициализировать ключи ecryptfs:

sudo keyctl link @u @s
sudo ecryptfs-recover-private .Private

В данный момент я использую Debian testing и недавно мне понадобилось восстановить файл из резервной копии моей зашифрованной папки .Private. Резервная копия хранится на моем NAS. Я столкнулся с той же проблемой, что и вы. Ручное добавление обернутой парольной фразы не помогло, и ручное монтирование файловой системы cifs (с моего NAS) от имени root вместо создания монтирования от имени основного пользователя (чтобы избежать конфликтов прав и всего прочего) тоже не помогло.

Тем не менее, после простого перезагрузки системы, я смог непосредственно использовать команду ecryptfs-recover-private для монтирования папки .Private, которая сама находилась на файловой системе cifs.

Хотя это не объясняет, что идет не так, и это одна из более разочаровывающих подсказок, которые вы можете получить как пользователь linux:

перезагрузите свою систему и попробуйте снова 🙂

У меня были похожие ошибки после того, как я переименовал предыдущий (оригинальный) POSIX-имя пользователя в old_user и затем создал нового пользователя с названием оригинального (предыдущего имени пользователя).

Чтобы иметь возможность смонтировать зашифрованный домашний каталог от old_user, мне пришлось заново создать символические ссылки для .encryptfs и .Private в его папке (поскольку они указывали на /home/original_name/).

После этого следующая команда смонтировала старый домашний каталог без каких-либо проблем. /usr/bin/ecryptfs-recover-private /home/old_user/.Private

Я потратил часы на эту проблему, не понимая, почему эти простые команды не работали.
Я обнаружил, что в …/home/.ecryptfs и …/home/.ecryptfs/username/.ecryptfs есть вводящие в заблуждение ссылки.

ИЗМЕНЕНИЕ: следующее решение требует подтверждения.
Можно обойтись без повторного связывания, но параметры, переданные ecryptfs-recover-private, могут быть источником проблемы.

Мое решение заключалось в повторном связывании с относительным путем файла .Private и .ecryptfs в /home/.ecryptfs/

Чтобы уточнить:

В моем случае домашний пользователь, которого я хотел прочитать, был в /mnt/sda5/home и пользователь был guy

    $ cd /mnt/sda5/home 

    $ ls -lag .ecryptfs/guy/
        drwxr-xr-x  4 guy    4096  .
        drwxr-xr-x  3 root   4096  ..
        drwx------ 16 guy    4096  .Private
        drwx------  2 guy    4096  .ecryptfs


    $ ls -lag .ecryptfs/guy/.ecryptfs/
        drwx------ 2 guy 4096 Jan 1 00:12 .
        drwxr-xr-x 4 guy 4096 Jan 1 00:11 ..
        -rw------- 1 guy   13 Jan 1 00:11 Private.mnt
        -rw------- 1 guy   34 Jan 1 00:11 Private.sig
        -rw-r--r-- 1 guy    0 Jan 1 00:11 auto-mount
        -rw-r--r-- 1 guy    0 Jan 1 00:11 auto-umount
        -rw------- 1 guy   58 Jan 1 00:12 wrapped-passphrase

    #Здесь хранятся данные

Если вы перечислите файлы в домашнем каталоге, у вас будут следующие ссылки (до моего исправления)

    $ ls -lag guy/
   lrwxrwxrwx 1 root     28 Янв 2 15:52 .Private  -> /home/guy/.Private
   lrwxrwxrwx 1 root     29 Янв 2 15:49 .ecryptfs -> /home/guy/.ecryptfs

поэтому файлы ссылаются на текущий /home и пользователя, а не на те, что вы пытаетесь прочитать, что сбивает вас с толку и команды монтирования.

После исправления я выполнил:

    $ ls -lag guy/
    dr-x------ 2 guy 4096 Янв 2 15:52 .
    drwxr-xr-x 6 root   4096 Янв 1 00:11 ..
    lrwxrwxrwx 1 root     28 Янв 2 15:52 .Private -> ../.ecryptfs/guy/.Private
    lrwxrwxrwx 1 root     29 Янв 2 15:49 .ecryptfs -> ../.ecryptfs/guy/.ecryptfs
    lrwxrwxrwx 1 guy   56 Янв 1 00:11 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
    lrwxrwxrwx 1 guy   52 Янв 1 00:11 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt

Мое решение заключалось в повторном связывании с относительным путем файла .Private и .ecryptfs

    $ cd /mnt/sda5/home 
    $ cd guy
    $ sudo unlink .Private
    $ sudo unlink .ecryptfs 
    $ sudo ln -sr ../.ecryptfs/guy/.Private
    $ sudo ln -sr ../.ecryptfs/guy/.ecryptfs

После этого вы можете вручную смонтировать домашний каталог или использовать

 cd /mnt/sda5/home 
 sudo ecryptfs-recover-private .ecryptfs/guy/.ecryptfs/.Private

(вам понадобится ваша парольная фраза МОНТАЖА – серия из 32 символов)

Необходимо включить опцию Чтение/Запись:

sudo ecryptfs-recover-private --rw /BLAH/.Private

Ответ или решение

Проблема с ecryptfs-recover-private: возникновение ошибки mount(2) failed: No such file or directory

При перемещении операционной системы и данных на новый SSD, вы столкнулись с проблемой доступа к зашифрованной директории внутри старого домашнего каталога. Ошибка, которая возникает при попытке использовать ecryptfs-recover-private, указывает на несуществующий файл или директорию, что может вызывать множество затруднений. В этой статье мы подробно рассмотрим возможные причины возникновения этой ошибки и методы ее устранения.

Подробный анализ проблемы

Ошибка mount(2) failed: No such file or directory обычно свидетельствует о том, что временная директория, в которую ecryptfs пытается смонтировать зашифрованные данные, не может быть создана или доступ к ней ограничен. Возможные причины и их решения включают:

  1. Проблемы с правами доступа:

    • Убедитесь, что у вас есть права администратора на выполнение команд с sudo. Если файл .Private находится на сетевом ресурсе, могут возникнуть сложности, связанные с правами доступа к CIFS. В этом случае попробуйте перенести зашифрованную директорию на локальный диск перед восстановлением.
  2. Ошибки в ключах ядра:

    • Если вы используете одинаковый пароль для входа на новую установку, это может вызвать путаницу в ключах ядра. Для решения проблемы попробуйте вручную вставить зашифрованный ключ с помощью команды:

      sudo ecryptfs-insert-wrapped-passphrase-into-keyring /BLAH/.ecryptfs/wrapped-passphrase

    После этого снова запустите:

    sudo ecryptfs-recover-private /BLAH/.Private
  3. Необходимость ручного восстановления:

    • Если предыдущие методы не помогли, возможно, имеет смысл перейти к ручному восстановлению. Это можно сделать так:
    sudo -i
    ecryptfs-add-passphrase --fnek 
    mkdir -p /mnt/new_mount_point  
    mount -t ecryptfs /mnt/old_mount_point/home/username/.Private /mnt/new_mount_point

    При выполнении команды mount, вам понадобится указать следующие параметры:

    • Тип ключа: passphrase
    • Шифр: aes
    • Размер ключа: 16
    • Разрешите шифрование имен файлов: y
    • Параметр plaintext passthrough: n
  4. Ссылки на директории:

    • Иногда проблема возникает из-за неправильных символических ссылок между директориями. Убедитесь, что ссылки на .ecryptfs и .Private правильно указывают на необходимые пути. Вы можете использовать команду ls -l для проверки связей и в случае необходимости пересоздать их.
    cd /mnt/sda5/home/guy
    sudo unlink .Private
    sudo unlink .ecryptfs 
    sudo ln -sr ../.ecryptfs/guy/.Private
    sudo ln -sr ../.ecryptfs/guy/.ecryptfs
  5. Перезагрузка системы:

    • Простая перезагрузка системы может помочь. Иногда конфигурации ядра и сессии могут не обновляться должным образом, и перезагрузка может восстановить необходимое состояние.

Заключение

Проблема, с которой вы столкнулись, при использовании ecryptfs-recover-private может быть вызвана рядом факторов, включая права доступа, ошибки с ключами ядра и неправильные ссылки на директории. С применением перечисленных решений вы сможете эффективно устранить данную проблему и получить доступ к зашифрованным данным. Если после выполнения всех шагов проблема все еще не решается, рассмотрите возможность использования резервной копии данных или других методов восстановления.

Оцените материал
Добавить комментарий

Капча загружается...