Como montar / desmontar o cartão SD que foi montado automaticamente na inicialização?

3

Nós temos um dispositivo (na verdade dois deles) rodando Debian 8.4, amplamente pré-configurado pelo fornecedor. Existe um slot para um cartão SD, que (se presente) é montado automaticamente na inicialização.

A pergunta é: depois de desmontar manualmente o cartão para fsck, como posso montá-lo novamente? Eu posso montá-lo manualmente novamente, mas desde que foi montado automaticamente na inicialização, parece-me que deve haver uma maneira de fazer o sistema montá-lo da mesma maneira novamente. Eu posso simplesmente reiniciar o sistema, mas isso não parece uma solução ideal.

Como systemctl | grep mmc inclui isso:

media-sd\x2dmmcblk0p1.mount          loaded active mounted   /media/sd-mmcblk0p1

parece-me que foi o systemd que monta o cartão na inicialização. Mas depois de umount essa entrada desaparece. Systemd ainda é em grande parte um mistério para mim, de modo que o conhecimento não me ajuda muito.

Edit: Eu esqueci de dizer: não há nada sobre o cartão SD em / etc / fstab

Editar: depois da inicialização, systemctl status 'media-sd\x2dmmcblk0p1.mount' diz:

? media-sd\x2dmmcblk0p1.mount - /media/sd-mmcblk0p1
   Loaded: loaded (/proc/self/mountinfo)
   Active: active (mounted) since Fri 2016-04-15 11:47:52 UTC; 3h 2min ago
    Where: /media/sd-mmcblk0p1
     What: /dev/mmcblk0p1

Depois de umount , diz:

? media-sd\x2dmmcblk0p1.mount
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

systemctl cat 'media-sd\x2dmmcblk0p1.mount' não diz nada nos dois casos.

    
por Roel Schroeven 15.04.2016 / 16:23

1 resposta

2

Acho que encontrei.

Ao contrário do que eu pensei, o cartão SD é montado na inicialização pelo udev, não pelo systemd. Acontece que há uma regra /etc/udev/rules.d/11-media-by-label-auto-mount.rules contendo:

KERNEL!="mmcblk[0-9]p[0-9]", GOTO="media_by_label_auto_mount_end"
# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"
# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="sd-%k"
# Global mount options
ACTION=="add", ENV{mount_options}="relatime"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"
# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
# Exit
LABEL="media_by_label_auto_mount_end"

Então eu posso montar o cartão SD com algo como:

sudo udevadm trigger -c add -y "mmcblk*"

Ainda um pouco enigmático para algo simples (eu acho), mas funciona.

    
por 15.04.2016 / 17:40