Столкнулся с проблемой: создал шифрованный раздел на своем переносном диске.
Под Windows все работает прекрасно: и монтируется и отмонтируется без проблем.
А вот под Linux траблы - монтируется нормально, а при попытке отмонтировать раздел говорит, что раздел занят, и никакие танцы с бубном и без не помогают - только ребут.
Прошерстил кучу форумов, понял, что я не одинок и натолкнулся на https://bugs.archlinux.org/task/23184. Там уважаемый ilya (leniviy) выложил патч для ntfs-3g_ntfsprogs-2011.4.12 (можно, и нужно, скачать с http://www.tuxera.com/community/ntfs-3g-download/). Народ радостно пишет, что им помогло, но на моей OpenSUSE 11.4 почему-то этот драйвер не собирается, в частности, не удавалось найти canonicalize_path() функцию, введенную патчем. Патч предполагает, что функция импортируется из библиотеки, /usr/lib/libmount.a, но моя библиотека почему-то этого не хочет экспортировать :). Без сомнения, я допускаю возможность кривизны своих рук.
Решением было поискать реализацию этой функции на просторах интернета, так как самому ее писать с нуля очень не хотелось. Поиски реализации навели меня на http://doxygen.postgresql.org/path_8c-source.html, где выложены внутренности файла path.c из дистрибутива PostgreSQL.
Под Windows все работает прекрасно: и монтируется и отмонтируется без проблем.
А вот под Linux траблы - монтируется нормально, а при попытке отмонтировать раздел говорит, что раздел занят, и никакие танцы с бубном и без не помогают - только ребут.
Прошерстил кучу форумов, понял, что я не одинок и натолкнулся на https://bugs.archlinux.org/task/23184. Там уважаемый ilya (leniviy) выложил патч для ntfs-3g_ntfsprogs-2011.4.12 (можно, и нужно, скачать с http://www.tuxera.com/community/ntfs-3g-download/). Народ радостно пишет, что им помогло, но на моей OpenSUSE 11.4 почему-то этот драйвер не собирается, в частности, не удавалось найти canonicalize_path() функцию, введенную патчем. Патч предполагает, что функция импортируется из библиотеки, /usr/lib/libmount.a, но моя библиотека почему-то этого не хочет экспортировать :). Без сомнения, я допускаю возможность кривизны своих рук.
Решением было поискать реализацию этой функции на просторах интернета, так как самому ее писать с нуля очень не хотелось. Поиски реализации навели меня на http://doxygen.postgresql.org/path_8c-source.html, где выложены внутренности файла path.c из дистрибутива PostgreSQL.
Выкинув оттуда все ненужное был получен следующий патч - ntfs-3g_ntfsprogs-2011.4.12.patch.
И вот такой патч уже спас мою ситуацию с проблемами при отмонтировании.Для тех, кто не силен в установке патчей, привожу подробную инструкцию.
- Скачиваем ntfs-3g_ntfsprogs-2011.4.12 по адресу http://www.tuxera.com/community/ntfs-3g-download/. На момент написания этого блога версия 2011.4.12 является самой свежей, и именно на нее рассчитан патч. Копируем этот файл куда-нибудь, например, создаем каталог ~/src и помещаем файл в него.
- Переходим в этот каталог с файлом: cd ~/src
- Распаковываем полученный файл ntfs-3g_ntfsprogs-2011.4.12.tgz командой tar xvf ./ntfs-3g_ntfsprogs-2011.4.12.tgz
- В этот же каталог помещаем файл ntfs-3g_ntfsprogs-2011.4.12.patch
- Выполняем команду: patch -p0 < ./ntfs-3g_ntfsprogs-2011.4.12.patch
- Далее собираем драйвер. Переходим в его каталог: cd ntfs-3g_ntfsprogs-2011.4.12
- Выполняем ./configure
- Собираем проект: make
- Если никаких ошибок доселе не было, то сносим имеющиеся драйвера. В зависимости от Вашего дистрибутива Linux команда может различаться. Для OpenSUSE это zypper, для ubuntu-подобных это apt-get, можно через графический интерфейс (KPackageKit или Synaptics). Нужно снести ntfs-3g и ntfsprogs. Например, так: apt-get remove ntfs-3g ntfsprogs
- Вот теперь можно установить наши пропатченные драйвера. Из каталога ~/src/ntfs-3g_ntfsprogs-2011.4.12 (мы ведь еще в нем) выполняем: sudo make install
- И, на всякий случай, делаем симлинк: sudo ln -s /sbin/ntfs-3g /sbin/ntfs