1 |
28.05.12 20:07, Alex Efros написав(ла): |
2 |
> Hi! |
3 |
> |
4 |
> Всем спасибо за помощь. Вот, что получилось в результате: |
5 |
> |
6 |
> |
7 |
> --- /etc/udev/rules.d/99-usb-automount.rules --- |
8 |
> |
9 |
> # Allow user mount/umount (set device owner and use 'owner' option in fstab). |
10 |
> # Create mount point directories for vfat/ext2/ext3/ext4/ntfs partitions. |
11 |
> # Create symlinks using partition label (overwrite duplicates). |
12 |
> # Auto-mount vfat with 'flush' option. |
13 |
> # No auto-mount for other filesystems (because there is NO SAFE auto-unmount). |
14 |
> # Auto-unmount vfat/ext2/ext3/ext4/ntfs and cleanup directories/symlinks. |
15 |
> |
16 |
> ENV{mount_user}="powerman" |
17 |
> ENV{mount_path}="/mnt" |
18 |
> |
19 |
> KERNEL=="sd*", DRIVERS=="usb-storage", ENV{ID_FS_TYPE}!="", \ |
20 |
> OWNER="%E{mount_user}", \ |
21 |
> ENV{mount_point}="usb.%k" |
22 |
> |
23 |
> ACTION=="add", ENV{mount_point}!="", ENV{ID_FS_TYPE}=="vfat", \ |
24 |
> ENV{mount_fs}="vfat", \ |
25 |
> ENV{mount_opts}="flush,owner,umask=007,showexec,quiet" |
26 |
> ACTION=="add", ENV{mount_point}!="", ENV{ID_FS_TYPE}=="ext2|ext3|ext4", \ |
27 |
> ENV{mount_fs}="%E{ID_FS_TYPE}", \ |
28 |
> ENV{mount_opts}="owner" |
29 |
> ACTION=="add", ENV{mount_point}!="", ENV{ID_FS_TYPE}=="ntfs", \ |
30 |
> ENV{mount_fs}="ntfs-3g", \ |
31 |
> ENV{mount_opts}="owner,umask=007,fmask=111" |
32 |
> |
33 |
> ACTION=="add", ENV{mount_point}!="", \ |
34 |
> RUN+="/bin/mkdir -p %E{mount_path}/%E{mount_point}", \ |
35 |
> RUN+="/bin/sed -i.bak '$a/dev/%k %E{mount_path}/%E{mount_point} %E{mount_fs} %E{mount_opts} 0 0' /etc/fstab" |
36 |
> ACTION=="add", ENV{mount_point}!="", ENV{ID_FS_TYPE}=="vfat", \ |
37 |
> RUN+="/usr/bin/sudo -u %E{mount_user} /bin/mount %E{mount_path}/%E{mount_point}", \ |
38 |
> RUN+="/usr/bin/sudo -u %E{mount_user} /usr/bin/env DISPLAY=:0 /usr/bin/notify-send -t 2500 -u normal -i /usr/share/icons/oxygen/48x48/devices/drive-removable-media-usb-pendrive.png 'USB Flash automounted' '%E{mount_point}\n%E{ID_FS_LABEL}'" |
39 |
> ACTION=="remove", ENV{mount_point}!="", \ |
40 |
> RUN+="/bin/umount -l %E{mount_path}/%E{mount_point}", \ |
41 |
> RUN+="/bin/sed -i.bak '/^\/dev\/%k \S\+\/%E{mount_point} /d' /etc/fstab", \ |
42 |
> RUN+="/bin/rmdir %E{mount_path}/%E{mount_point}", \ |
43 |
> RUN+="/usr/bin/sudo -u %E{mount_user} /usr/bin/env DISPLAY=:0 /usr/bin/notify-send -t 1000 -u normal -i /usr/share/icons/oxygen/48x48/devices/drive-removable-media-usb-pendrive.png 'USB Flash disconnected' '%E{mount_point}\n%E{ID_FS_LABEL}'" |
44 |
> |
45 |
> ACTION=="add", ENV{mount_point}!="", ENV{ID_FS_LABEL}!="", \ |
46 |
> RUN+="/bin/ln -nsf %E{mount_point} %E{mount_path}/%E{ID_FS_LABEL}" |
47 |
> ACTION=="remove", ENV{mount_point}!="", ENV{ID_FS_LABEL}!="", \ |
48 |
> RUN+="/bin/rm %E{mount_path}/%E{ID_FS_LABEL}" |
49 |
> |
50 |
> --- /etc/udev/rules.d/99-usb-automount.rules --- |
51 |
> |
52 |
> |
53 |
> P.S. В процессе отладки после частого подключения/отключения разных флешек |
54 |
> два раза что-то ломалось в ядре и оно переставало реагировать на |
55 |
> подключение/отключение флешек, приходилось перегружаться. Не думаю, что |
56 |
> это вызвано моими правилами udev, скорее это просто баг в ядре. "Умирало" |
57 |
> оно оба раза в момент подключения флешки, и последние сообщения в логе |
58 |
> касающиеся usb были примерно такие: |
59 |
> |
60 |
> 2012-05-28_11:33:15.40111 kern.info: usb 2-1.1: new high-speed USB device number 118 using ehci_hcd |
61 |
> 2012-05-28_11:33:15.48422 kern.err: ehci_hcd 0000:00:1d.0: fatal error |
62 |
> 2012-05-28_11:33:15.48423 kern.err: ehci_hcd 0000:00:1d.0: HC died; cleaning up |
63 |
> 2012-05-28_11:33:15.48423 kern.err: ehci_hcd 0000:00:1d.0: force halt; handshake ffffc9000002e024 00004000 00004000 -> -110 |
64 |
> 2012-05-28_11:33:15.48423 kern.err: ehci_hcd 0000:00:1d.0: HC died; cleaning up |
65 |
> 2012-05-28_11:33:15.49011 kern.err: usb 2-1.1: device descriptor read/all, error -108 |
66 |
> 2012-05-28_11:33:15.49013 kern.err: hub 2-1:1.0: cannot disable port 1 (err = -19) |
67 |
> 2012-05-28_11:33:15.49013 kern.err: hub 2-1:1.0: cannot reset port 1 (err = -19) |
68 |
> 2012-05-28_11:33:15.49014 kern.err: hub 2-1:1.0: cannot disable port 1 (err = -19) |
69 |
> 2012-05-28_11:33:15.49014 kern.err: hub 2-1:1.0: cannot reset port 1 (err = -19) |
70 |
> 2012-05-28_11:33:15.49014 kern.err: hub 2-1:1.0: cannot disable port 1 (err = -19) |
71 |
> 2012-05-28_11:33:15.49015 kern.err: hub 2-1:1.0: cannot reset port 1 (err = -19) |
72 |
> 2012-05-28_11:33:15.49015 kern.err: hub 2-1:1.0: cannot disable port 1 (err = -19) |
73 |
> 2012-05-28_11:33:15.49015 kern.err: hub 2-1:1.0: unable to enumerate USB device on port 1 |
74 |
> 2012-05-28_11:33:15.49015 kern.err: hub 2-1:1.0: cannot disable port 1 (err = -19) |
75 |
> 2012-05-28_11:33:15.49016 kern.info: usb 2-1: USB disconnect, device number 2 |
76 |
> |
77 |
> Не знаю, куда можно этот баг отправить, т.к. по желанию его воспроизвести |
78 |
> не получается. Да и ядро 3.2.11-hardened - далеко не последняя версия, |
79 |
> может в более новых это уже пофиксили. |
80 |
> |
81 |
Натыкались на такую же проблему на работе. Это баг в ядре. Нашли и |
82 |
сделали патч. Если интерестно, могу поискать и выслать. |
83 |
|
84 |
-- |
85 |
Kind regards, |
86 |
RD18-UANIC |