LINUX.ORG.RU
ФорумAdmin

LTSP монтирование USB дисков

 ,


0

1

Уважаемые форумчане приветствую Вас и ооочень надеюсь на Вашу помощь!!! Поднял на ubuntu server 16.04.3 ltsp сервер. Основная задача которого грузить по сети тонких клиентов и средствами xfreerdp сразу подключать юзеров к win server 2008. К серверу тонкий клиент подключается нормально, все ок. А вот заставить видеться в винде флешки подключаемые к тонкому клиенту не получается. Вот мой lts.conf:

[DEFAULT]
HOTPLUG=true
LOCALDEV=true
LOCALDEV_DENY_INTERNAL_DISKS=false
LOCALDEV_DENY_USB=false
MODULE_01=usb-storage
SCREEN_07=«xfreerdp /sec:rdp /cert-ignore -sec-nla /drives /v:10.7.1.3 /bpp:24 /f»

При подключении в винду пробрасывается весь корень ФС тонкого клиента (дисков никаких нет, только загруженный по сети образ). Но смонтированной флешки нигде нет. /mnt, /media, /home просто пустые каталоги. Если же зайти в консоль тонкого клиента и сделать mount /dev/sdc1 /mnt, то в винде появляется содержимое флешки смонтированной в /mnt. Как я понимаю проблема заставить тонкого клиента автоматически монтировать устройства при подключении в определенный каталог. Если в консоли тонкого клиента сделать udevadm monitor --property --kernel --udev то видно что происходит событие подключения нового устройства и определение разных его параметров udev-ом. Пробовал в ltsp-chroot в /etc/udev/rules.d/10-automount.rules добавлять такое:

ACTION==«add» KERNEL==«sd[c-z][0-9]» RUN+=«/bin/mkdir -p /media/%k»
ACTION==«add» KERNEL==«sd[c-z][0-9]» RUN+=«/bin/mount -o iocharset=utf8,codepage=866,uid=1000 /dev/%k /media/%k»
ACTION==«remove» KERNEL==«sd[c-z][0-9]» RUN+=«/bin/umount /media/%k»
ACTION==«remove» KERNEL==«sd[c-z][0-9]» RUN+=«/bin/rmdir /media/%k»

потом udevadm control --reload-rules и пересборка образа. Но ничего не получается. Читал еще что нужно использовать fuse. Но как это сделать я не понимаю. Может у кого есть уже опыт победы подобного? Подскажите что нужно для монтирования флеши к тонкому клиенту. Буду крайне благодарен каждому откликнувшемуся за любую помощь или предложения!

Ответ на: комментарий от mos

Спасибо. Я это уже читал. Но я в линуксе не очень. Поэтому не знаю как сделать из консоли последний пункт из статьи. Там ведь пример с gui. Т.е. разрешить пользователю использование fuse

rostma ()

Насчет udev вроде направление верное. Он вообще стартует на клиенте? Если да, то что скажет udevadm trigger --action=add ?
Еще как замечание. У вас прописано от sdc- а точно ли флэшка получает имена начиная с sdc (вдруг sda, sdb...)? Что dmesg говорит после того как воткнули ?
Я для флэх делал условие ACTION=="add" DRIVERS=="usb-storage" KERNEL=="sd[a-z][0-9]"
Далее. Опции монтирования смущают, -o iocharset=utf8,codepage=866,uid=1000 вручную если монтировать не пошлют ли вас?

anc ★★★★★ ()
Ответ на: комментарий от anc

Спасибо всем кто проявил участие. Особенно anc за то что придал уверенность что копаю в нужном направлении udev. И да, действительно не правильно в правилах указывал sd[c-z]. Вот правило которое у меня заработало для udev

ACTION==«add» KERNEL==«sd[a-z][0-9]» RUN+=«/bin/mkdir -p /mnt/%E{ID_VENDOR}_%E{ID_MODEL}_%n»
ACTION==«add» KERNEL==«sd[a-z][0-9]» RUN+=«/bin/mount -o uid=1000 /dev/%k /mnt/%E{ID_VENDOR}_%E{ID_MODEL}_%n»
ACTION==«remove» KERNEL==«sd[a-z][0-9]» RUN+=«/bin/umount /mnt/%E{ID_VENDOR}_%E{ID_MODEL}_%n»
ACTION==«remove» KERNEL==«sd[a-z][0-9]» RUN+=«/bin/rmdir /mnt/%E{ID_VENDOR}_%E{ID_MODEL}_%n»

Не получилось, правда, сделать запись на флешку. Может кто подскажет как это сделать. Думал вопрос в драйвере ntfs-а. Поставил в ltsp-chroot ntfs-3g и все поломал. В каталоге монтирования (в винде) появляется файл с названием флешки с нулевым размером и все. Или может вопрос в uid пользователя под которым монтирую? В консоль тонкого клиента я подключаюсь рутом с uid=0.

rostma ()
Ответ на: комментарий от rostma

Насчет ntfs-3g странно, раньше пользовал часто, почти(поясню ниже) всегда работало.
Почти - был один случай, внешний хард постоянно подключенный, с определенного момента жизни начал с завидной регулярность вставать с руганью на саму ntfs, помогал только виндовый чекдиск. Но кто виноват фигзнает, может и сам хард от старости стал фигню гнать. Вопрос был решен радикально новый хард+ext4 :)

Вот один из примеров как монтировал.

-t ntfs-3g -o flush,dirsync,sync,noatime,nosuid,uid=20000,gid=users,umask=007

anc ★★★★★ ()
Ответ на: комментарий от anc

Странности происходят с монтированием с ntfs-3g. Если в консоли тонкого клиента набрать /bin/mkdir -p /mnt/usb а потом /bin/ntfs-3g /dev/sda1 /mnt/usb, то флешка с ntfs-ом отлично монтируется. И в винде после доступна на чтение и запись. Размонтирование из консоли /bin/fusermount -u /mnt/usb тоже отлично проходит. А вот если эти консольные команды прописать в виде правил udev

ACTION==«add» KERNEL==«sd[a-z][0-9]» RUN+=«/bin/mkdir -p /mnt/usb»
ACTION==«add» KERNEL==«sd[a-z][0-9]» RUN+=«/bin/ntfs-3g dev/sda1 /mnt/usb»
ACTION==«remove» KERNEL==«sd[a-z][0-9]» RUN+=«/bin/fuserumount -u /mnt/usb»
ACTION==«remove» KERNEL==«sd[a-z][0-9]» RUN+=«/bin/rmdir /mnt/usb»

то вместо создания каталога и монтирования флешки в винде создается файл usb (не каталог, а именно файл) с нулевым размером. В консоли клиента при попытке прочитать смонтированную флешку выводит Transport endpoint is not connect. Монтирование через /bin/mount -t ntfs-3g тот же результат. И с опциями типа uid=1000 тоже. Такое впечатление что на то что у меня как у рута есть права в консоли у udev-а на это прав не хватает. Хотя он выполняется от root (uid=0) Уж и не знаю как его заставить выполнять эти правила корректно.

rostma ()
Ответ на: комментарий от anc

помоги плиз примонтировать htfs

Что с параметрами что без ошибки

root@latitude6430:# mount -t ntfs-3g /dev/sdb /media/win/ -o flush,dirsync,sync,noatime,nosuid,uid=20000,gid=users,umask=007
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff  size: 1024   usa_ofs: 65535  usa_count: 65534: Недопустимый аргумент
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff  size: 1024   usa_ofs: 65535  usa_count: 65534: Недопустимый аргумент
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff  size: 1024   usa_ofs: 65535  usa_count: 65534: Недопустимый аргумент
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff  size: 1024   usa_ofs: 65535  usa_count: 65534: Недопустимый аргумент
$MFTMirr error: Invalid mft record for '$MFT'.
Failed to mount '/dev/sdb': Ошибка ввода/вывода

tarasui ()