Erro ao montar automaticamente um cartão SD no Trusty

2

Eu preciso de um cartão SD para ser montado de forma autônoma, assim que ele é inserido em seu slot. Usual o suficiente, mas o prbm é que ele não é montado e eu estou perdendo o porquê.

Em /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

EDIT-1: Também tentei substituir /mnt/ por /media/myname/ acima e incluir as opções user,uid=1000 (que sou eu) ou users , sem sucesso.

O ponto de montagem é /mnt/SD-root ou /media/myname/SD-root . A propriedade do ponto de montagem é definida como "root: adm".

$ ls -Al /mnt/ | grep -e 'SD-root'
1 drwxr-x--- 3 root adm 1024 Sep 25 16:51 SD-root/

Neste momento, a única maneira de um usuário não root montar o cartão SD é:

$  sudo mount /dev/mmcblk0p1 /mnt/SD-root/

O que estou perdendo?

    
por Cbhihe 28.09.2015 / 21:43

3 respostas

3

Para montar o cartão automaticamente em /mnt em um sistema em execução, você pode usar uma regra udev adicional. Sem a regra, o cartão é montado em /media/$USER/… e /dev/disk/… .

O script e a regra do udev a seguir criam uma pasta em /mnt e montam a partição com um UUID definido. Na versão atual, o ponto de montagem é o rótulo da partição montada. Eu pessoalmente acho que é uma má ideia. Eu preferiria o UUID e não o rótulo, mas o OP queria essa solução.

  1. O script

    • Crie um script em /usr/local/bin

      sudo nano /usr/local/bin/mount_by
      
    • Adicione o código abaixo

      #!/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
      
    • Torne o script executável

      sudo chmod +x /usr/local/bin/mount_by
      
  2. A regra do udev

    • Crie uma nova regra

      sudo nano /etc/udev/rules.d/99-myrules.rules
      
    • Adicione o código abaixo

      ENV{ID_FS_UUID}=="c8bf306d-3d5d-4878-8045-e4087494eff0", RUN+="/usr/local/bin/mount_by '%E{ID_PART_ENTRY_NAME}' '%E{ID_FS_UUID}'"

      ou se sua unidade não tiver o ID_PART_ENTRY_NAME , tente ID_FS_LABEL

    • Suponha que a partição seja /dev/sdc1 Substitua o valor de ENV{ID_FS_UUID}== acima pela saída de

      udevadm info /dev/sdc1 | awk -F= '/ID_FS_UUID=/ {print $2}'
  3. Reinicie o udev

    sudo service udev restart
    
  4. Conecte seu cartão SD e você verá algo assim

    % 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
    
por A.B. 29.09.2015 / 15:34
1

Eu configurei o novo Ubuntu 14.04 para testar isso. O cartão SD formatado como EXT3.  O é montado automaticamente.

Aqui saída de mount com diferentes configurações

  • Com a configuração padrão, nenhuma entrada fstab:

    /dev/mmcblk0p1 on /media/sneetsher/test0 type ext3 (rw,nosuid,nodev,uhelper=udisks2)
    
  • com fstab:

    /dev/mmcblk0p1                            /media/test0    ext3    nodev,noexec,comment=x-gvfs-show 0       0
    

    montado como:

    /dev/mmcblk0p1 on /media/test0 type ext3 (rw,noexec,nodev)
    
  • com fstab:

    /dev/mmcblk0p1                            /media/test0    ext3    defaults,nofail,umask=0027,utf8,comment=x-gvfs-show,x-gvfs-name=SD-root 0 2
    

    Encontrados erros dmesg:

    [ 3339.729139] EXT4-fs (mmcblk0p1): Unrecognized mount option "umask=0027" or missing value
    

    removido, depois encontrado:

    [ 3410.950108] EXT4-fs (mmcblk0p1): Unrecognized mount option "utf8" or missing value
    

    removido, depois encontrado:

    [ 3490.129696] EXT4-fs (mmcblk0p1): Unrecognized mount option "x-gvfs-name=SD-root" or missing value
    

    alterado para:

    /dev/mmcblk0p1                            /media/test0    ext3    defaults,nofail,comment=x-gvfs-show,comment=x-gvfs-name=SD-root 0 2
    

    montado como:

    /dev/mmcblk0p1 on /media/test0 type ext3 (rw,_netdev)
    

    x-gvfs-name é efetivo, pois é exibido como SD-root no nautilus.

Eu senti falta de alguma coisa da sua configuração?

    
por user.dz 26.10.2015 / 23:49
0

Assuma a propriedade da pasta / media / test0.

chown user.user /media/test0

    
por user526624 04.04.2016 / 20:49