|
||||
Монтирование файловой системы rsync.net в FreeBSDСуществует возможность смонтировать файловую систему rsync.net как локальную файловую систему FreeBSD 6.x посредством использования sshfs (FUSE). FUSE и sshfs недоступны для FreeBSD 4.x и 5.x - вы можете использовать данную функциональность только начиная с FreeBSD 6.x. Кроме того, после установки, FreeBSD 6.0-RELEASE не содержит порта /usr/ports/sysutils/fusefs-sshfs - вам необходимо загрузить порты самостоятельно. Данный документ детально описывает процесс получения и установки порта fusefs-sshfs для монтирования файловой системы rsync.net как локальной файловой системы FreeBSD. Шаг 1: Получение порта fusefs-sshfs с использованием cvsup Если cvsup уже установлен, просто запустите команды ниже: # cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile \ -h cvsup2.freebsd.org -i ports/sysutils/fusefs-sshfs # cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile \ -h cvsup2.freebsd.org -i ports/sysutils/fusefs-libs # cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile \ -h cvsup2.freebsd.org -i ports/sysutils/fusefs-kmod Если cvsup еще не установлен, то его необходимо установить: # cd /usr/ports/net/cvsup-without-gui # make install Шаг 2: Очистка портов К сожалению, порт fusefs-libs который устанавливается вместе с fusefs-sshfs, содержит ошибку в Makefile. Данная ошибка содержится в 6.0-RELEASE и 6.1-RELEASE. Отредактируйте файл /usr/ports/sysutils/fusefs-libs/Makefile, и замените все вхождения ${REINPLACE_CMD} командой sed. Т.о. следующая часть Makefile:
post-patch:
${REINPLACE_CMD} -e 's,-lpthread,${PTHREAD_LIBS},' \
-e 's,-D_FILE_OFFSET_BITS=64,-D_FILE_OFFSET_BITS=64 ${PTHREAD_CFLAGS},' \
${WRKSRC}/fuse.pc.in
${REINPLACE_CMD} -e 's,-lpthread,${PTHREAD_LIBS},' \
${WRKSRC}/lib/Makefile.in \
${WRKSRC}/example/Makefile.in
Должна выглядеть как:
post-patch:
sed -e 's,-lpthread,${PTHREAD_LIBS},' \
-e 's,-D_FILE_OFFSET_BITS=64,-D_FILE_OFFSET_BITS=64 ${PTHREAD_CFLAGS},' \
${WRKSRC}/fuse.pc.in
sed -e 's,-lpthread,${PTHREAD_LIBS},' \
${WRKSRC}/lib/Makefile.in \
${WRKSRC}/example/Makefile.in
Далее, вы должны быть готовы к тому, что первая попытка выполнить `make install` с портом /usr/ports/sysutils/fusefs-sshfs закончится неудачей в самом конце перед регистрацией fusefs-libs. Далее, вы должны быть готовы к тому, что вторая попытка выполнить `make install` закончится неудачей по той же причине, но при регистрации fusefs-kmod. Шаг 3: Установка # cd /usr/ports/sysutils/fusefs-sshfs # make install Установка может завершиться неудачей при регистрации fusefs-libs. Если такое произошло, просто запустите `make install` повторно. Среди предложенных опций установки выберете опцию AUTOSETUP. Установка может завершиться неудачей при регистрации fusefs-kmod. Если такое произошло, просто запустите `make install` повторно. Шаг 4: Проверка загрузки модуля ядра При установке порта загрузится модуль ядра fuse.ko. Для проверки загрузки модуля выполните команду:
# kldstat и в выводе найдите строку: 3 1 0xc3865000 b000 fuse.ko В дальнейшем, вы можете загружать и выгружать модуль командами: # kldload fuse.ko # kldunload fuse.ko Шаг 5: Монтирование файловой системы rsync.net Создайте директорию для точки монтирования: # mkdir /mnt/rsync.net После этого выполните команду sshfs: # sshfs -o idmap=user 1004@usw-s017.rsync.net: /mnt/rsync.net Помните: команда sshfs должна быть запущена под пользователем root и без использования sudo. После того, как файловая система смонтирована при помощи sshfs, она может быть доступна другим пользователям. При выполнении команды у вас будет запрошен пароль для доступа к rsync.net. После ввода пароля команда завершится без сообщений. После этого введите команду: # mount которая отобразит состояние монтируемой файловой системы: /dev/fuse0 on /mnt/rsync.net (fusefs, local, synchronous) По завершению работы вы можете отмонтировать файловую систему выполнив команду: # umount /dev/fuse0 Шаг 6: Альтернативный вариант Другой путь для монтирования файловой системы rsync.net состоит в выполнении команды: # mount_fusefs auto /mnt/rsync.net sshfs -o idmap=user 1004@usw-s017.rsync.net: |
||||
|
|
||||