[sisyphus] Снова про монтирование

Yura Kalinichenko =?iso-8859-1?q?yuk_=CE=C1_kalina=2Ein=2Eua?=
Сб Мар 1 22:31:11 MSK 2008


Hi!

Прежде всего хочу поблагодарить Michael A. Kangin за (наконец-то!) 
простое и независимое от всяческих DM и FM решение задачи монтирования 
сменных носителей. В общем все работает просто отлично, но у меня есть 
несколько небольших правок. К сожалению, не нашел этого очень нужного 
пакета в официальных репозитариях, посему нет возможности вешать патчи в 
багзиллу, так что публикую их здесь.

1) если метка флешки содержит в себе пробельные символы (напр. у меня 
точка монтировния обзывается "USB DISK") - то устройство не может 
автоматически отмонтироваться. Лечится следующим патчем:

---------------hal-mount-fix_umount_space.patch--------------
diff -U 2 -r hal-mount-subfs-0.1.2.orig/mount-hal-fs hal-mount-subfs-0.1.2/mount-hal-fs
--- hal-mount-subfs-0.1.2.orig/mount-hal-fs     2008-03-01 14:06:56 +0200
+++ hal-mount-subfs-0.1.2/mount-hal-fs  2008-03-01 14:02:13 +0200
@@ -86,5 +86,5 @@

 do_unmount() {
-       MOUNT_POINT=$1
+       MOUNT_POINT="$1"
        initlog -n $LOG_NAME -s "Trying unmount $MOUNT_POINT"

@@ -125,5 +125,6 @@

                while MOUNT_LINE=`grep -m 1 "^$HAL_PROP_BLOCK_DEVICE " /proc/mounts`; do
-                       do_unmount "`echo $MOUNT_LINE |cut -f 2 -d ' '`"
+                       set -- $MOUNT_LINE
+                       do_unmount "`echo -e "$2"`"
                done

----------------end of hal-mount-fix_umount_space.patch-------------



2) в многопользовательской системе монтировать носители с mode=0666, 
IMHO, несколько некорректно. В качестве решения предлагаю использовать 
для subfs опцию монтирования procuid, которая обеспечивает доступ по 
принципу "кто первый встал (на точку монтирования) - того и тапки". Это 
+ перекодирование имен файлов, исходя из предположения, что в системе (в 
соответствии с генеральной линией партии) локаль UTF-8, а на vfat - 
CP866 - делает второй патч:

---------------hal-mount-options.patch---------------------

diff -U 2 -r hal-mount-subfs-0.1.2.orig/99-submount-fs-options.fdi hal-mount-subfs-0.1.2/99-submount-fs-options.fdi
--- hal-mount-subfs-0.1.2.orig/99-submount-fs-options.fdi       2008-03-01 14:12:41 +0200
+++ hal-mount-subfs-0.1.2/99-submount-fs-options.fdi    2008-03-01 15:59:16 +0200
@@ -7,8 +7,8 @@
    <match key="volume.policy.should_mount" bool="true">
         <match key="volume.policy.mount_filesystem" string="subfs">
-         <merge key="volume.policy.mount_options" type="string">nodev,nosuid,noexec,noatime</merge>
+         <merge key="volume.policy.mount_options" type="string">nodev,nosuid,noexec,noatime,procuid</merge>

           <match key="volume.policy.mount_option.fs" string="vfat">
-               <append key="volume.policy.mount_options" type="string">,fmask=0111,dmask=000,quiet</append>
+               <append key="volume.policy.mount_options" type="string">,iocharset=utf8,codepage=866,showexec</append>
           </match>

@@ -18,5 +18,5 @@

          <match key="volume.policy.mount_option.fs" string="iso9660">
-               <append key="volume.policy.mount_options" type="string">,mode=0444,iocharset=koi8-r,ro</append>
+               <append key="volume.policy.mount_options" type="string">,iocharset=utf8,ro</append>
          </match>

@@ -27,5 +27,5 @@
       <merge key="storage.policy.mount_options" type="string">nodev,nosuid,noexec,noatime</merge>
       <match key="storage.policy.mount_option.fs" string="floppyfss">
-               <append key="storage.policy.mount_options" type="string">,fmask=0111,dmask=000,quiet,sync</append>
+               <append key="storage.policy.mount_options" type="string">,procuid,iocharset=utf8,codepage=866,showexec,quiet,sync</append>
       </match>
     </match>

---------------end of hal-mount-options.patch--------------

3) остается открытым вопрос по принудительному отмонтироваю флешек. 
Проведенный эксперимент показал, что в случае FS типа vfat в принципе 
достаточно выполнить sync и выдернуть флешку. Но как-то мне это не очень 
нравится. К примеру, вдруг мне захочется отформатировать флешку в ext2 - 
и что я буду иметь в результате ? Правильно, unclean filesystem. Ну и 
при многопользовательском доступе будут проблемы.

Есть идеи ?

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : yuk.vcf
Тип     : text/x-vcard
Размер  : 177 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20080301/9d02080c/attachment-0002.vcf>


Подробная информация о списке рассылки Sisyphus