Альтернативные Windows операционные системы (Linux, FreeBSD) наконец-то осознали, что для того, чтобы расширить долю своего присутствия на рынке, надо не только предложить пользователю удобный графический интерфейс, но и обеспечить возможность доступа к разделам доминирующей на рынке ОС. Причем доступ не к разделам устаревшей FAT, а к разделам более современных файловых систем FAT32 и NTFS. В Linux, хотя это принципиально возможно, начиная с версии ядра 2.0.х, поддержка разделов NTFS начала появляться только в последних дистрибутивах
(по заявлению представителей MandrakeSoft, в дистрибутив
Mandrake Linux 9.0
впервые включена «родная» поддержка дисковых разделов NTFS.). FeeeBSD получила такую поддержку начиная с версии
4.2.1. В более ранних версиях доступ к разделам NTFS из FeeeBSD реализовывался при помощи драйверов.

Драйвер, позволяющий под FreeBSD иметь доступ к NTFS в режиме «только для чтения»
лежит тут
. Предназначен для версии FeeeBSD 3.1. Порядок его подключения мы и рассмотрим более подробно.

Для того чтоб инсталлировать драйвер поддержки NTFS необходима перекомпиляция ядра, поскольку один из заголовочных файлов, использованных ядром будет пропатчен, хотя никаких других изменений в конфигурационных файлах произведено не будет. Если вы не имеете установленных исходников ядра, то запустите sysinstall или выполните следующее (необходимо иметь права root):

# mount -t cd9660 /dev/cd0c /mnt
# cd /mnt/src
# cat ssys.?? | tar —unlink -zxpvf — -C /usr/src

Также драйверу требуется файл mntopts.h из архива исходников. Для его извлечения:

# cd /mnt/src
# cat ssbin.?? | tar —unlink -xzpvf — -C /usr/src sbin/mount

Затем, как root, создайте каталог, в который распакуете архив, содержащий NTFS драйвер:

# cd /tmp
# mkdir ntfs

Скачайте и поместите в созданный каталог два файла ntfs-0.17beta.tgz и
ntfs.0.17beta-0.18beta.diff. Распакуйте архив:

# cd /tmp/ntfs
# tar xzvf ntfs-0.17beta.tgz

Теперь пропатчим:

# cd /tmp/ntfs/src/sys/ntfs
# patch < /tmp/ntfs/ntfs.0.17beta-0.18beta.diff Убедившись, что все прошло без ошибок продолжим (patch(1) делает backup копии файлов, которые пропатчивает (с расширением .orig), так что если что-то пошло не так всегда можно скопировать .orig файл обратно и разобраться в причинах). Теперь копируем исходники куда надо: # cd /tmp/ntfs
# cp -p -R -i src /usr/

Необходимо пропатчить файл vnode.h:

# cd /usr/src/sys/sys
# patch < /tmp/ntfs/diff/vnode.h.diff Снова проверим успешность патча, вы должны увидеть что-то наподобие следующего:
—————————
|*** ./sys/sys/vnode.h.orig Fri Nov 29 01:12:51 2002
|— ./sys/sys/vnode.h Wed Dec 2 12:31:31 2001
—————————
Patching file vnode.h using Plan A…
Hunk #1 succeeded at 62.
done

Теперь можно компилировать.

# cd /usr/src/sbin/mount_ntfs
# make
# make install

# cd /usr/src/sys/modules/ntfs
# make
# make install

Перекомпилируем ядро (поскольку меняли vnode.h). Если вы использовали ядро GENERIC, то сделайте копии соответствующих конфигурационных файлов (это не строгая необходимость, но таким образом, возможно изменение имени ядра, что делает более простой идентификацию ядра с которым вы загружаетесь). Я склоняюсь к использованию содержательных имен, так что GENERIC_NTFS кажется мне подходящим:

# cd /usr/src/sys/i386/conf
# cp GENERIC GENERIC_NTFS
# /usr/sbin/config GENERIC_NTFS
# cd ../../compile/GENERIC_NTFS
# make depend
# make
# make install

И так, все сделано, но перед загрузкой нового ядра необходимо идентифицировать NTFS слайсы. Номер слайса зависит от разбивки вашего диска. Например, если вы имеете FAT слайс, за которым следует NTFS слайс и ваш FreeBSD слайс в конце, тогда нумерация будет следующей («da» или «sd» для SCSI дисков, если выполнялся апгрейд до FreeBSD 3.1 с FreeBSD
2.2.x; В версии FeeBSD 4.5 диски с IDE интерфейсом идентифицируются префиксом ad и номером (начиная с 0), в зависимости от порядка подключения к контроллерам. Так, Master на первом IDE контроллере будет идентифицирован как ad0, Slave — ad1, на втором канале Master — ad2, Slave — ad3. Если у вас установлен дополнительный ATA RAID контроллер, то в случае, если режим RAID не включен, нумерация будет ad4-ad7, а если включен, поменяется префикс на ar, и, соответственно, нумерация устройств на ar0-ar3.):

FAT — da0s1
NTFS — da0s2
FreeBSD — da0s3

Вы можете посмотреть в /etc/fstab для того, чтоб убедиться в нумерации FreeBSD слайсов (и, возможно, FAT слайсов, если они, конечно, присутствуют).

Исключением из всего сказанного является случай, когда NTFS слайс является логическим диском в расширенном разделе. Логические диски нумеруются с 5, несмотря на количество слайсов на диске:

FAT — da0s1
FreeBSD — da0s3
Extended partition — da0s2
NTFS — da0s5

Отметим, что хотя расширенный раздел представлен в виде слайса, вы не
сможете его использовать, то есть смонтировать.

Теперь понимая, как идентифицируется NTFS слайс, можно добавить запись в /etc/fstab. Отметим, что опция «ro» означает монтирование только для чтения (поскольку и сам драйвер для иного не предназначен). Такая запись вызовет автоматическое монтирование NTFS слайса во время загрузки, если вы этого не хотите, то замените «ro» на «ro,noauto». Обратите внимание на отсутствие пробелов до и после запятой. Также необходимо сделать точку монтирования — /ntfs в этом примере, хотя вы можете заменить ее на скажем /winnt.

# Device Mountpoint FStype Options Dump Pass#
/dev/da0s5 /ntfs ntfs ro 0 0

Если ваш выбор — не монтировать слайсы во время загрузки, используйте следующую команду, чтоб сделать это (необходимо иметь права root). Только измените устройство и точку монтирования, соответственно вашей системе:

# mount -t ntfs /dev/da0s5 /ntfs

Вот и все, осталось перезагрузиться.

Оставить мнение

Check Also

Скрытая сила пробела. Эксплуатируем критическую уязвимость в Apache Tomcat

В этой статье мы поговорим о баге в Apache Tomcat, популярнейшем веб-сервере для сайтов на…