Проблема с автоматическим подключением SD-карты на Trusty

Мне нужно, чтобы 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/

Чего мне не хватает?

2
задан 29 September 2015 в 18:47

3 ответа

Смонтировать карту автоматически в /mnt в рабочей системе Вы могли использовать дополнительное udev правило. Без правила карта смонтирована в /media/$USER/… и /dev/disk/….


Следующий сценарий и правило udev создают папку в /mnt и смонтируйте раздел с определенным UUID. В текущей версии точка монтирования является маркировкой смонтированного раздела. Я лично думаю, это - плохая идея. Я предпочел бы UUID а не маркировку, но OP хотел это решение.

  1. Сценарий

    • Создайте сценарий в /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
      
  2. Правило 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}'
  3. Перезапуск udev

    sudo service udev restart
    
  4. Плагин Ваша 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
    
3
ответ дан 30 September 2015 в 04:47
  • 1
    Хороший ответ. Это не только работает над Ubuntu через Докера, но также и над моим хостом машина ArchLinux где gpg doesn' t даже знают, каков ЕЭС, поскольку ключевой тип мог быть. На самом деле Вы не должны даже определять Длину ключа – msrd0 30 December 2016 в 04:24

Я устанавливаю свежую новую 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 в наутилусе.

Я пропускал некоторую вещь от Вашей установки?

1
ответ дан 30 September 2015 в 04:47
  • 1
    Спасибо за подсказку о Длине ключа, действительно it' s не требуемый в этом случае. Я отредактировал ответ соответственно. – upteryx 30 December 2016 в 07:49

Просто возьмите владение папки,/media/test0.

chown user.user/media/test0

0
ответ дан 30 September 2015 в 04:47
  • 1
    Я попробовал Вашу рекомендацию, но это все еще didn' t работают в гостевом режиме. Хотя, когда я смотрю на chrome://компоненты, он указывает, что версия 24 флэш-памяти установлена и обновлена. Chrome://плагины указывают на версию 23 флэш-памяти и chrome://, флэш-память указывает на 23.0.0.185 внутренних, не установленных. Какие-либо другие предложения? Я не хотел бы восстановить эти изображения, но это - мой следующий шаг, если я мог разобраться в этом. TIA! – Lisa S 22 December 2016 в 01:40

Другие вопросы по тегам:

Похожие вопросы: