Многие пользователи, использующие на своих компьютерах одновременно Windows и Linux, сталкиваются с проблемой доступа к разделам NTFS из Linux. Сейчас для решения этой проблемы обычно используют популярный драйвер ntfs3g, работающий в пространстве пользователя через fuse. Однако есть ещё утилита ntfsmount из пакета ntfsprogs, разработанного в рамках проекта linux-ntfs.
Основным преимуществом ntfsmount перед ntfs3g является поддержка чтения зашифрованных и сжатых файлов. В остальном эти два драйвера очень схожи. Но в пакете ntfsprogs кроме собственно ntfsmount есть ещё ряд полезных утилит, таких как ntfsresize, ntfsundelete, ntfslabel, ntfsfix и других.
Рассмотрим установку и использование пакета ntfsprogs на примере дистрибутива Gentoo.
Итак. Если вы используете стабильную ветку Gentoo то вам нужно размаскировать версию ntfsprogs из нестабильной ветки. Для этого добавьте строчку:
sys-fs/ntfsprogs ~x86
В файл /etc/portage/package.keywords. Кроме того, независимо от используемой ветки, нужно явно указать необходимость сборки ntfsprogs с поддержкой fuse. Для этого нужно дописать в файл /etc/portage/package.use строчку:
sys-fs/ntfsprogs fuse
Устанавливаем пакет:
emerge --ask sys-fs/ntfsprogs
Проверяем загружен ли модуль fuse:
lsmod | grep fuse
Если нет - загружаем и настраиваем его автоматическую загрузку:
echo fuse >> /etc/modules.autoload.d/kernel-2.6 modprobe fuse
Всё. Теперь мы можем легко подмонтировать ntfs раздел:
ntfsmount /dev/sda1 /mnt/windows
Если мы хотим чтобы раздел автоматически монтировался при загрузке, то нужно дописать в /etc/fstab строку:
/dev/hda1 /mnt/windows ntfs-fuse umask=0,rw,force 0 0
Для получения метки раздела нужно ввести команду:
ntfslabel /dev/sda1
Для смены метки используется команда:
ntfslabel /dev/sda1 Windows
Нужно помнить что ntfslabel работает только с отмонтированными разделами. Если у вас появились какие-то ошибки на файловой системе, то раздел можно проверить с помощью команды ntfsfix:
ntfsfix /dev/sda1
Если вы ошибочно удалили какой-то файл, то расстраиваться не надо. Положение может спасти команда ntfsundelete. Для получения списка доступных для восстановления файлов воспользуйтесь командой:
ntfsundelete -f /dev/sda1
Она выведет примерно вот такой список:
WARNING: Dirty volume mount was forced by the 'force' mount option. Inode Flags %age Date Size Filename --------------------------------------------------------------- 16 F..! 0% 1970-01-01 0 <none> 17 F..! 0% 1970-01-01 0 <none> 18 F..! 0% 1970-01-01 0 <none> 19 F..! 0% 1970-01-01 0 <none> 20 F..! 0% 1970-01-01 0 <none> 21 F..! 0% 1970-01-01 0 <none> 22 F..! 0% 1970-01-01 0 <none> 23 F..! 0% 1970-01-01 0 <none> 12249 FR.. 100% 2007-11-19 9 <none> 15741 FN.. 100% 2007-03-19 1056768 tmp.edb 16208 FN.. 100% 2007-03-19 1048576 edb.log 16210 FN.. 100% 2007-03-19 1048576 res2.log 16211 FN.. 100% 2007-03-19 1048576 res1.log 16213 FN.. 100% 2007-03-19 8192 edb.chk 16305 FR.. 100% 2007-03-19 512 ~DFEDD9.tmp 16307 FR.. 100% 2007-03-19 166 h2r21.tmp 16327 FN.. 100% 2007-03-19 5253 h2r22.tmp 16328 FR.. 100% 2007-03-19 0 ms2159.tmp 16329 F..! 0% 1970-01-01 0 <none> 16330 F..! 0% 1970-01-01 0 <none> 16331 F..! 0% 1970-01-01 0 <none> 16332 F..! 0% 1970-01-01 0 <none> 16333 F..! 0% 1970-01-01 0 <none> 16334 F..! 0% 1970-01-01 0 <none> 16335 F..! 0% 1970-01-01 0 <none>
Далее находим в первом столбике Inode нужного файла (например если нам нужен файл edb.log то это 16208) и выполняем команду:
ntfsundelete -f -u -i 16208 /dev/sda1
Всё. Файл восстановлен.
Более подробно узнать об утилитах из пакета ntfsprogs можно на официальном сайте проекта linux-ntfs
Никита 2007-11-19 18:03:38 (#)