Сборка TrueCrypt из исходного кода в Linux — предохранитель: неверная точка монтированияLinux

Ответить
Anonymous
 Сборка TrueCrypt из исходного кода в Linux — предохранитель: неверная точка монтирования

Сообщение Anonymous »

Поскольку TrueCrypt больше не поддерживается, я пытаюсь собрать его из исходного кода на своей машине с Linux со следующими характеристиками:
  • x86_64 GNU/Linux с ядром 5.16.9
  • g++ (GCC) 11.2.0
  • libfuse-fuse-3.12.0
  • wxWidgets-3.2.1
Мои исследования проводились с использованием архива TrueCrypt 7.2 Unix, поскольку я считал его новейшим и лучшим. Я заметил, что некоторые вещи отсутствуют по сравнению с версией 7.1a, но на данный момент это не проблема.
Файл Readme в исходном каталоге содержит определенные требования для правильной сборки пакета. Среди прочего «GNU C++ Compiler 4.0» и «wxWidgets 2.8». В нем ничего не говорится о версии libfuse, но я исходю из справочной системы, что libfuse-fuse_2_9_4 должно подойти.
По моему мнению, TrueCrypt — отличное программное обеспечение, и поэтому я хотел бы перенести его в свою систему разработки. Мое видение и задача — сделать его переносимым и продолжать использовать в современной Linux-системе, такой как Debian GNU/Linux. Поэтому я использую версии пакета, перечисленные выше.
Для этого я настроил драйвер Fuse (FuseService.cpp) для работы с интерфейсом libfuse 3.12.0. Грубо говоря, в некоторых местах пришлось подправить вызовы библиотек в TrueCrypt, например, на «struct Fuse_file_info *fi». К сожалению, я не являюсь продвинутым кандидатом libfuse. Поэтому я использовал примеры библиотеки в качестве подсказки.
Основываясь на том, что мне сказал компилятор, я также изменил незначительные вещи, такие как «auto_ptr», на «unique_ptr».
Также я сравнил с исходным кодом VeraCrypt скомпилировать TrueCrypt. Насколько я могу судить, он компилируется правильно.
Однако при выполнении TrueCrypt возникают проблемы.
  • Что-то не так с wxWidgets: я пока откладываю решение этой проблемы, так как могу отключить графический интерфейс с помощью опции -t.
    Похоже, проблема с предохранителем. Сообщение об ошибке время от времени меняется, но наиболее стабильным из них является сообщение о «неверной точке монтирования», например: «предохранитель: неверная точка монтирования `q\006\325\001': нет такого файла или каталога».
Я использую следующую команду:
$> Main/truecrypt -t ~/myfile.tc /media/truecrypt1
Я проверял примеры, поставляемые с libfuse. Насколько я понимаю, мои настройки соответствуют примерам. Пример «привет» отлично работает на моем компьютере.
Я понимаю, что обмен интерфейсом и сервером TC осуществляется по конвейеру. Сужая проблему, я оказываюсь в CoreService. При получении ответа на запрос на монтирование тома, т.е. выполнении строки
Core/Unix/CoreService.cpp:293 : ответ auto_ptr (GetResponse());
, исключение неправильной точки монтирования извлекается в
Core/Unix/CoreService.cpp:33 : deserializedException->Throw();
.
Я понятия не имею, как сузить проблему и где в канале выполнения между отправкой запроса на монтирование тома и получением ответа на него фактически создается исключение.< /p>
Есть ли кто-нибудь, кто мог бы подсказать мне, как правильно применять libfuse? Любая помощь будет очень признательна. Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... ount-point
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»