Remount Drives

о модулях и их работе

Remount Drives

Postby sambul29 » 21 Mar 2013, 22:40

Хотелось бы найти больше инфы по модулю Remount Drives, его работе и конфигурации. Как им пользоваться кроме авто режима? Как его настроить? Где находятся его файлы конфига?

Мне напр. надо смонтировать EXT3 диски как RW, а они авто монтируются как RO, несмотря на включенный модуль Remount Drives. Пришлось использовать для этого другой модуль - Mounts. Но при этом диски, смонтированные с помощью Mounts, не появляются в /tmp/ramfs/volumes, и значит в интерфейсе плеера их не видно.

Кроме того, хотелось бы активнее использовать дополнительные опции монтажа разных файловых систем, и чтоб они не слетали после перезагрузки ОС. Опять же не найду Settings для этого модуля в веб-интерфейсе, и как же указывать опции перемонтажа индивидуально для каждого раздела диска и типа файловой системы? Напр., надо добавить async при монтаже разделов EXT4 и vfat на флешке, а они не добавляются, походу идёт стандартный набор опций, забитый в автомонтаже, возможно ограничен версией драйвера.

Mounted Drives.jpg
Mounted Drives.jpg (108.05 KiB) Viewed 8141 times
Last edited by sambul29 on 22 Mar 2013, 15:38, edited 2 times in total.
sambul29
 

Re: Remount Drives

Postby FarVoice » 21 Mar 2013, 22:51

По сути этот модуль - костыль для dvdplayer, который имеет привычку заниматься перемонтажём обнаруженных разделов. Настроек как таковых не имеет. Чтобы что-то сделать своё, надо лезть в скрипт mos/etc/hotplug/block/after/S04remount (мог ошибиться с именем, но где-то там)
Но странно, что он не подхватывает разделы...
ASUS O!Play R1 (amp_r12_vrtn), xTreamer Pro (amp_r12_vrt), xTreamer Prodigy (iNeXT 2.14 r2), IconBIT HDR12L (amp_r12_vrt), 3Q F425HW (xds42gl_7725_r3), MyGica A11 (mygica_m3_20121222)
User avatar
FarVoice
Администратор
 
Posts: 8573
Joined: 03 Sep 2010, 01:27
Location: Russia, Moscow

Re: Remount Drives

Postby sambul29 » 21 Mar 2013, 23:11

Спасибо, нашёл в /usr/local/etc/mos/etc/hotplug/after/block/s10remount . Но в этом скрипте нет опций перемонтажа, они видимо берутся из стандартного набора, в fstab их тоже нет. Где же они указаны? Можно конечно добавить код опций сюда, но он не будет работать, поскольку async и вручную не работает. А смена RO на RW работала лишь после umount вручную. Короче, можно наверное его ковырять, но в идеале конечно это удобнее делать через Settings в веб-UI. ;)

| +
Code: Select all
#!/bin/sh
#
# remount plugged drive as rw
# and ufds filesystem as utf8
#

# check returned hotplug status
[ $1 -ne 0 ] && exit

# check action
[ "$ACTION" != 'add' ] && exit

s=$( echo "$DEVPATH" | sed -n 's/^.*\/\(.*\)$/\1/p' )
[ -z "$s" ] && exit

# save device
dev="$( cat /proc/mounts | grep /tmp/usbmounts/$s | cut -d ' ' -f 1 )"

#echo "saved device $dev" >>/tmp/remount.log

sleep 10

# remount device
s="$( cat /proc/mounts | grep -E '^'$dev )"
if [ -n "$s" ] ; then
        mt=$( echo $s | cut -d ' ' -f 2 )
        fs=$( echo $s | cut -d ' ' -f 3 )

        op=''
        [ "$fs" = 'ufsd' ] && op=' -o nls=utf8'

#       ps -w >>/tmp/remount.log
#       echo "mount $mt -o remount,rw $op" >>/tmp/remount.log
        mount $mt -o remount,rw $op >/dev/null 2>&1
fi


Прошу извинить, если слишком много вопросов поначалу, ищу ответы с рвением прежде чем задать. :D
Last edited by sambul29 on 24 Mar 2013, 02:45, edited 1 time in total.
sambul29
 

Re: Remount Drives

Postby FarVoice » 22 Mar 2013, 12:47

Вас собственно должна интересовать строка
Code: Select all
mount $mt -o remount,rw $op >/dev/null 2>&1

В принципе, можно анализировать $mt и делать персональный набор ключей для каждого раздела.
ASUS O!Play R1 (amp_r12_vrtn), xTreamer Pro (amp_r12_vrt), xTreamer Prodigy (iNeXT 2.14 r2), IconBIT HDR12L (amp_r12_vrt), 3Q F425HW (xds42gl_7725_r3), MyGica A11 (mygica_m3_20121222)
User avatar
FarVoice
Администратор
 
Posts: 8573
Joined: 03 Sep 2010, 01:27
Location: Russia, Moscow

Re: Remount Drives

Postby sambul29 » 22 Mar 2013, 15:25

А вы не можете привести пример такого кода? Он действительно очень нужен для флеш дисков и карт. :P

И как выяснить, почему он не делает remount для EXT3 разделов на любых носителях? Может потому, что они создавались в последней версии PartedMagic / Gparted, и надо прогнать через проверку на этой более ранней версии Линукс используемой в плеерах?

Вот лог для флешки, где разделы создавались с выравниванием по MiB вместо цилиндров, неуместных для флешки:

| +
Code: Select all
Disk /dev/sda: 4049 MB, 4049600512 bytes
125 heads, 62 sectors/track, 1020 cylinders
Units = cylinders of 7750 * 512 = 3968000 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1               1         677     2621440   83  Linux
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 33, 3)
Partition 1 has different physical/logical endings:
     phys=(326, 122, 52) logical=(676, 95, 38)
Partition 1 does not end on cylinder boundary.
/dev/sda2             677         745      262144   82  Linux swap
Partition 2 has different physical/logical beginnings (non-Linux?):
     phys=(326, 122, 53) logical=(676, 95, 39)
Partition 2 has different physical/logical endings:
     phys=(359, 29, 54) logical=(744, 51, 54)
Partition 2 does not end on cylinder boundary.
/dev/sda3             880        1021      545792    b  Win95 FAT32
Partition 3 has different physical/logical beginnings (non-Linux?):
     phys=(424, 98, 59) logical=(879, 89, 25)
Partition 3 has different physical/logical endings:
     phys=(492, 85, 41) logical=(1020, 70, 36)
Partition 3 does not end on cylinder boundary.
/dev/sda4             745         880      524288   83  Linux
Partition 4 has different physical/logical beginnings (non-Linux?):
     phys=(359, 29, 55) logical=(744, 51, 55)
Partition 4 has different physical/logical endings:
     phys=(424, 98, 58) logical=(879, 89, 24)
Partition 4 does not end on cylinder boundary.

Partition table entries are not in disk order

Ещё вопрос - как выяснить, почему опция async игнорируется при любом способе монтажа любых файловых систем? Она позволяет значительно увеличить срок службы флеш-дисков. Можно ли добавить её поддержку?

И откуда вообще система берёт стандартный набор опций монтажа для каждой системы? Он далеко не оптимален, не используется опция noatime напр. для тех же флешек. Хотелось бы также иметь возможность менять кодировки для vfat , но опять не получается, монтирует с той же codepage CP457 независимо от введённой кодировки.
Last edited by sambul29 on 24 Mar 2013, 02:40, edited 1 time in total.
sambul29
 

Re: Remount Drives

Postby sambul29 » 24 Mar 2013, 02:31

В общем нашёл в инете, что это баг ядра - монтаж ЕХТ3 в RO, который был исправлен в 2.6.22 , а у нас Linux MELE 2.6.12.6-VENUS, пока добавил в явном виде в скрипт вместо

Code: Select all
mount -o remount /


что не работало (код ошибки 22), а это работает ОК (либо брать девайс из /tmp/ramfs/volumes/drive_letter:) :

Code: Select all
umount /tmp/usbmounts/sda4
mount -t ext3 -o rw,noatime /dev/scsi/host0/bus0/target0/lun0/part4 /tmp/usbmounts/sda4
umount /tmp/usbmounts/sdb2
mount -t ext3 -o rw,noatime /dev/scsi/host2/bus0/target0/lun0/part2 /tmp/usbmounts/sdb2
sambul29
 

Re: Remount Drives

Postby pavel12prot » 22 Jun 2013, 01:56

Модуль Remount обновился некоторое время назад, но упомянутый выше баг остался: ЕХТ3 не перемонтируется в RW

Code: Select all
BusyBox v1.1.3 (2011.01.19-04:36+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # mount
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
none on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
none on /sys type sysfs (rw)
none on /tmp type ramfs (rw)
/dev/mtdblock/2 on /usr/local/etc type yaffs (rw,noatime)
/dev/rd/0 on /mnt/rd type vfat (rw,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)
/dev/scsi/host1/bus0/target0/lun0/part1 on /tmp/usbmounts/sda1 type ufsd (rw,nodiratime,nls=utf8,nls=utf8,uid=0,gid=0,fmask=0,dmask=0,force)
/dev/scsi/host1/bus0/target0/lun0/part3 on /tmp/usbmounts/sda3 type ext3 (ro,recovery)
~ # umount /dev/sda3
umount: Couldn't umount /dev/scsi/host1/bus0/target0/lun0/part3: Unknown error 22
~ # umount /tmp/usbmounts/sda3
~ # mount -t ext3 -o rw,noatime /dev/scsi/host1/bus0/target0/lun0/part3 /tmp/usbmounts/sda3


Для типичного юзера, незнакомого с Линукс, это делает невозможным скачивание торрентов, или сохранение доп. МОС модулей на диске плеера в EXT3, причём проги типа Transmission не объясняют, в чём проблема, так что это останется вечной загадкой. :) Не знаю, присутствует ли этот баг на других прошивках, но если версия Линукс та же, то вроде должен. Просьба поправить этот код - это полный блок для юзеров, периодически обновляющих moS через интернет и получающих таким образом неработающий модуль.
pavel12prot
 

Re: Remount Drives

Postby pavel12prot » 23 Jun 2013, 23:19

Сейчас попробовал сразу после ребута плеера перемонтировать EXT3 из RO в RW:

Code: Select all
~ # mount -t ext3 -o remount,rw,noatime /dev/scsi/host1/bus0/target0/lun0/part3 /tmp/usbmounts/sda3


Выполнено сразу без ошибки, что видимо говорит о том, что Remount Drives модуль завершает работу до полного монтажа дисков плеера, иначе перемонтаж бы прошёл. Или команда перемонтажа здорово отличается? Может время ожидания лишь поправить - где именно?
pavel12prot
 

Re: Remount Drives

Postby FarVoice » 24 Jun 2013, 07:30

Хм, странно. Модуль подвешен на хотплаг, т.е. отрабатывает каждый раз, когда в системе появляются новые девайсы. Можно попробовать увеличить слип в /usr/local/etc/mos/etc/hotplug/after/block/S10remount
ASUS O!Play R1 (amp_r12_vrtn), xTreamer Pro (amp_r12_vrt), xTreamer Prodigy (iNeXT 2.14 r2), IconBIT HDR12L (amp_r12_vrt), 3Q F425HW (xds42gl_7725_r3), MyGica A11 (mygica_m3_20121222)
User avatar
FarVoice
Администратор
 
Posts: 8573
Joined: 03 Sep 2010, 01:27
Location: Russia, Moscow

Re: Remount Drives

Postby sersedov » 05 Jul 2013, 04:21

Если только папку монтажа указать как в скрипте, не сработает из-за бага линукса. Добавляем предпоследней строкой в файле S10remount этот код, и всё будет пучком:

Code: Select all
[ "$fs" = 'ext3' ] && umount $mt && mount $dev $mt -o rw,noatime >/dev/null 2>&1
sersedov
 

Next

Return to Модули

Who is online

Users browsing this forum: No registered users and 2 guests