Gentoo Archives: gentoo-user-ru

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

Replies

Subject Author
Re: [gentoo-user-ru] отключение флешки без umount Ray Dudu <raydudu@×××××.com>