Мне нужно, чтобы SD-карта была установлена без присмотра, как только она вставлена в гнездо. Обычно достаточно, но prbm - это, не устанавливается, и я пропускаю почему.
В /etc/fstab
:
#Entry for /dev/mmcblk0p1 :
UUID=_____ /mnt/SD-root ext3 defaults,nofail,umask=0027,utf8,comment=x-gvfs-show,x-gvfs-name=SD-root 0 2
РЕДАКТИРОВАТЬ-1: Я также пытался заменить /mnt/
на /media/myname/
выше, включая опции user,uid=1000
(это я) или users
, но безрезультатно.
Точка монтирования либо /mnt/SD-root
, либо /media/myname/SD-root
. Владение точки монтирования имеет значение «root: adm».
$ ls -Al /mnt/ | grep -e 'SD-root'
1 drwxr-x--- 3 root adm 1024 Sep 25 16:51 SD-root/
Прямо сейчас единственный способ подключить SD-карту для пользователя без полномочий root:
$ sudo mount /dev/mmcblk0p1 /mnt/SD-root/
Чего мне не хватает?
Смонтировать карту автоматически в /mnt
в рабочей системе Вы могли использовать дополнительное udev
правило. Без правила карта смонтирована в /media/$USER/…
и /dev/disk/…
.
Следующий сценарий и правило udev создают папку в /mnt
и смонтируйте раздел с определенным UUID. В текущей версии точка монтирования является маркировкой смонтированного раздела. Я лично думаю, это - плохая идея. Я предпочел бы UUID а не маркировку, но OP хотел это решение.
Сценарий
Создайте сценарий в /usr/local/bin
sudo nano /usr/local/bin/mount_by
Добавьте код ниже
#!/bin/sh
export mount_point="/mnt/$1"
existing_device=$(awk '$2 == ENVIRON["mount_point"] {print $1; exit}' < /proc/mounts)
if [ -n "$existing_device" ]; then
exit 1
fi
mkdir -p "$mount_point"
sleep 1 # Perhaps not necessary, but in the test with the OP it was necessary
mount "/dev/disk/by-uuid/$2" "$mount_point"
exit 0
Сделайте исполняемый файл сценария
sudo chmod +x /usr/local/bin/mount_by
Правило udev
Создайте новое правило
sudo nano /etc/udev/rules.d/99-myrules.rules
Добавьте код ниже
ENV{ID_FS_UUID}=="c8bf306d-3d5d-4878-8045-e4087494eff0", RUN+="/usr/local/bin/mount_by '%E{ID_PART_ENTRY_NAME}' '%E{ID_FS_UUID}'"
или если Ваш диск не имеет ID_PART_ENTRY_NAME
, попробовать ID_FS_LABEL
Предположим, что раздел /dev/sdc1
Замените значение для ENV{ID_FS_UUID}==
выше с выводом
udevadm info /dev/sdc1 | awk -F= '/ID_FS_UUID=/ {print $2}'
Перезапуск udev
sudo service udev restart
Плагин Ваша SD-карта и Вы должны видеть что-то вроде этого
% ls -la /mnt
total 12
drwxr-xr-x 3 root root 4096 Okt 6 19:29 .
drwxr-xr-x 25 root root 4096 Sep 29 17:04 ..
drwxr-xr-x 4 root root 4096 Okt 6 19:31 Label1
Я устанавливаю свежую новую Ubuntu 14.04 для тестирования этого. SD-карта, форматированная как EXT3. Автосмонтированного.
Здесь вывод mount
с различными установками
С установкой по умолчанию, никакой fstab записью:
/dev/mmcblk0p1 on /media/sneetsher/test0 type ext3 (rw,nosuid,nodev,uhelper=udisks2)
С fstab:
/dev/mmcblk0p1 /media/test0 ext3 nodev,noexec,comment=x-gvfs-show 0 0
смонтированный как:
/dev/mmcblk0p1 on /media/test0 type ext3 (rw,noexec,nodev)
С fstab:
/dev/mmcblk0p1 /media/test0 ext3 defaults,nofail,umask=0027,utf8,comment=x-gvfs-show,x-gvfs-name=SD-root 0 2
Найденные dmesg ошибки:
[ 3339.729139] EXT4-fs (mmcblk0p1): Unrecognized mount option "umask=0027" or missing value
удаленный, затем найденный:
[ 3410.950108] EXT4-fs (mmcblk0p1): Unrecognized mount option "utf8" or missing value
удаленный, затем найденный:
[ 3490.129696] EXT4-fs (mmcblk0p1): Unrecognized mount option "x-gvfs-name=SD-root" or missing value
измененный на:
/dev/mmcblk0p1 /media/test0 ext3 defaults,nofail,comment=x-gvfs-show,comment=x-gvfs-name=SD-root 0 2
смонтированный как:
/dev/mmcblk0p1 on /media/test0 type ext3 (rw,_netdev)
x-gvfs-name
является эффективным как показанный как SD-root
в наутилусе.
Я пропускал некоторую вещь от Вашей установки?
Просто возьмите владение папки,/media/test0.
chown user.user/media/test0