diff --git a/system/base/eudev/actions.py b/system/base/eudev/actions.py index 6aeaeb45..850297ec 100644 --- a/system/base/eudev/actions.py +++ b/system/base/eudev/actions.py @@ -71,3 +71,6 @@ def install(): pisitools.doman("man/*.5", "man/*.7", "man/*.8") pisitools.dodoc("README*", "NOTES") + + # Add rules for mount storage + pisitools.insinto("/lib/udev/rules.d","rules/60-persistent-storage.rules") \ No newline at end of file diff --git a/system/base/eudev/files/10-flash-mounts.rules b/system/base/eudev/files/10-flash-mounts.rules new file mode 100644 index 00000000..95f21a88 --- /dev/null +++ b/system/base/eudev/files/10-flash-mounts.rules @@ -0,0 +1,33 @@ +#!/bin/sh +# start at sdb to ignore the system hard drive +KERNEL!="sd[b-z]*", GOTO="exit" +ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="exit" + +# import some useful filesystem info as variables +IMPORT{program}="/sbin/blkid -o udev -p %N" + +# get the label if present, otherwise assign one based on device/partition +ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" +ENV{ID_FS_LABEL}=="", ENV{dir_name}="flash_drive_%k" + +# create the dir in /media and symlink it to /mnt +ACTION=="add", RUN+="/bin/mkdir -p '/media/%E{dir_name}'" + +# global mount options +#ACTION=="add", ENV{mount_options}="relatime" + +# filesystem-specific mount options (777/666 dir/file perms for vfat) +ACTION=="add",ENV{mount_options_vfat}="gid=100,dmask=000,fmask=111,utf8,flush,rw,noatime,users" + +# add device to /etc/fstab +#ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", RUN+="/bin/sed -i '$a\/dev/%k /media/%E{dir_name} vfat %E{mount_options_vfat} 0 0' /etc/fstab" + +# mount device +ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", RUN+="/bin/mount -t auto -o %E{mount_options_vfat} /dev/%k '/media/%E{dir_name}'" + +# clean up after device removal +ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}'" +ACTION=="remove", ENV{ID_FS_TYPE}!="", RUN+="/bin/sed -i '/\/dev\/%k /d' /etc/fstab" + +# exit +LABEL="exit" diff --git a/system/base/eudev/pspec.xml b/system/base/eudev/pspec.xml index ad92ee1e..8198f4d8 100644 --- a/system/base/eudev/pspec.xml +++ b/system/base/eudev/pspec.xml @@ -64,6 +64,7 @@ tmpfiles.conf + 10-flash-mounts.rules System.Package @@ -119,6 +120,13 @@ + + 2016-01-03 + 3.1.2 + Add rules for mount storage. + Ertuğrul Erata + ertugrulerata@gmail.com + 2015-06-20 3.1.2