|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 21 Apr 2007 14:40:57 To : Vlad Gnatov Subject : Re: копирование --------------------------------------------------------------------------------
20 апр 2007, пятница, в 13:15 KRAST, Vlad Gnatov написал(а):
EG>>>>> Оно в настоящее время неживое по нескольким причинам:
EG>>>>> 1. Дистфайл от версии 1.0 (что в портах) не скачивается.
EG>>>>> 2. Версия 1.417, что скачивается - требует удаления всех патчей из
EG>>>>> files/ (интегрированы).
EG>>>>> 3. Версия 1.417 не собирается.
EG>>>> Точнее, собирается, если один патч все-таки оставить, не все
EG>>>> интегрировано.
EG>> Хм, это я слишком много патчей поудалял, нифига оно там не интегрировано.
EG>> Hо видимо, патчей еще надо написать, 1.417 все равно не работает.
VG> 1.0 работает. Hайдите distfile в гугле.
VG> Тормоза на запись космические. Чтение нормально.
Я сделал по-другому. Обновил таки порт до 1.417, добавив недостающий
патч (PR: ports/111979). Заодно порт ставит симлинк mount_ntfs-3g.
Кроме того, пропатчил mount(8) (PR: bin/111978), чтобы ему можно
было задавать путь для поиска команд mount_XXX переменной среды SYSPATH
(сейчас путь поиска жестко вкомпилирован, /sbin:/usr/sbin).
Теперь можно делать так:
export SYSPATH=/sbin:/usr/sbin:/usr/local/sbin
mount -t ntfs-3g /dev/ad6s4 /dos/g
Если хочется иметь возможность в /etc/fstab вставлять монтирование
ntfs-3g, чтобы монтировало при загрузке (и не хочется отдельные
скрипты для этого в rc.d совать), нужно еще:
- обеспечить нужный SYSPATH при загрузке; это можно было бы
сделать при помощи /etc/login.conf, для /etc/rc и запускаемых из него
команд init'ом используется login class daemon, пишем в login.conf:
daemon:\
:setenv=SYSPATH=/sbin\c/usr/sbin\c/usr/local/sbin:\
:tc=default:
К сожалению, init из ресурсов login.conf выставляет только приоритет
и лимиты на ресурсы, поэтому нужен патч, чтобы еще переменные выставлял:
- --- init.c.orig Sat Apr 21 14:35:55 2007
+++ init.c Sat Apr 21 14:36:04 2007
@@ -1640,7 +1640,7 @@
{
login_cap_t *lc;
if ((lc = login_getclassbyname(cname, NULL)) != NULL) {
- setusercontext(lc, (struct passwd*)NULL, 0,
LOGIN_SETPRIORITY|LOGIN_SETRESOURCES);
+ setusercontext(lc, (struct passwd*)NULL, 0,
LOGIN_SETPRIORITY|LOGIN_SETRESOURCES|LOGIN_SETENV);
login_close(lc);
}
}
Теперь SYSPATH будет выставлен; возможно, есть менее напряжный способ?
- в момент запуска mount -t ntfs-3g нужно, чтобы был уже подгружен
ядерный модуль fuse.ko, который портом устанавливается в /usr/local/modules,
что в общем-то верно, но означает, что при старте загрузчика файловая
система с модулем может быть еще недоступна. Поэтому в /etc/fstab
нужно использовать флаг late:
/dev/ad6s4 /dos/g ntfs-3g rw,late 0 0
Таким образом, откладываем монтирование на более поздний этап загрузки,
для этого надо еще пропатчить /usr/local/etc/rc.d/fusefs:
- --- fusefs.orig Sat Apr 21 15:28:39 2007
+++ fusefs Sat Apr 21 15:04:42 2007
@@ -4,6 +4,7 @@
#
# PROVIDE: fusefs
# REQUIRE: sysctl
+# BEFORE: mountlate
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
- mount(8) теперь будет находить mount_ntfs-3g, но тот хочет, чтобы
mount_fusefs был в каталоге, указанном в PATH обязательно.
Вообще-то надо чинить fusefs-libs, но по-быстрому сделал тупой
патч на /etc/rc.d/mountlate:
- --- mountlate.orig Sat Apr 21 15:31:01 2007
+++ mountlate Sat Apr 21 14:58:27 2007
@@ -18,7 +18,7 @@
{
# Mount "late" filesystems.
echo -n 'Mounting late file systems:'
- mount -a -l
+ PATH=$PATH:/usr/local/sbin mount -a -l
echo '.'
case $? in
Теперь все работает:
- init выставляет SYSPATH перед стартом /etc/rc
- rcorder сначала монтирует основные файловые системы
и поднимает сеть (/usr/local может быть и на NFS),
уже потом запускает /usr/local/etc/rc.d/fusefs, который подгружает
ядерный модуль (опять же, быть может с NFS)
- mountlate запускает mount, который через SYSPATH находит mount_ntfs-3g,
который через PATH находит mount_fusefs (это место надо бы переделать)
и благополучно монтирует NTFS.
Монтирует в sync (по-другому, видимо, не умеет).
Скорость записи на 1.417 порядка 400-440 Kb/s, это уже с кешированием
при помощи team. systat -vm 1 показывает, что диск загружен на 96%
и обрабатывает 1200-1500 транзакций в секунду. Процессор 90% idle.
Что он там делает - черт его знает.
Eugene
--
Детям нельзя в интернет. От детей интернет тупеет.
--- slrn/0.9.8.0 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/26093e550984f.html, оценка из 5, голосов 10
|