Gentoo Archives: gentoo-user-ru

From: Ray Dudu <raydudu@×××××.com>
To: gentoo-user-ru@l.g.o
Subject: Re: [gentoo-user-ru] отключение флешки без umount
Date: Wed, 30 May 2012 21:02:14
Message-Id: 4FC68AAB.6060605@gmail.com
In Reply to: Re: [gentoo-user-ru] отключение флешки без umount by Alex Efros
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

Replies

Subject Author
Re: [gentoo-user-ru] отключение флешки без umount Alex Efros <powerman@××××××××.name>