Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

301
Visualizações
No se puede montar la tarjeta SD después de quitarla sin Umount

Buena tarde,

Tengo un proyecto en el que la tarjeta SD puede desconectarse momentáneamente debido a un contacto débil en el pin SD Detect. Quiero poder verificar si se ha desmontado y volver a montarlo en el software.

La partición de mi tarjeta SD es /dev/mmcblk1p1 Originalmente se monta automáticamente cuando se inicia Linux

Si ejecuto un umount /mnt/storage , luego quito la tarjeta SD, puedo volver a insertarla y realizar un mount /dev/mmcblk1p1 /mnt/storage sin problemas

Sin embargo, si primero quito la tarjeta SD, sin umount , ejecutar mount /dev/mmcblk1p1 /mnt/storage da como resultado

 mounting /dev/mmcblk1p1 on /mnt/storage failed: No such device or address

traté de correr

 umount /mnt/storage rmdir /mnt/storage mkdir /mnt/storage

Este error siempre aparece cuando se extrae la tarjeta SD sin desmontar

Estoy usando una distribución de Yocto que se ejecuta en Imx6.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Si una aplicación C++ escribe en la tarjeta SD, se puede quitar a la fuerza, pero no se puede desmontar (desmontar) hasta que esa aplicación cierre los descriptores de archivo. La aplicación en sí no necesita cerrarse.

Esta solución es para aplicaciones mecánicas, donde la tarjeta SD (u otro medio flash) puede desconectarse momentáneamente y una aplicación debe reanudar la escritura:

Responder:

  1. Extraiga a la fuerza la tarjeta SD

  2. Detectar que la tarjeta SD está desconectada

La forma más sencilla de hacerlo es verificar el tamaño de montaje de las tarjetas SD

 read file "/sys/block/mmcblk1/size" and check it's > 0
  1. Cierre todos los descriptores de archivos que están escribiendo en archivos en la tarjeta SD.

Tenga en cuenta que no es necesario cerrarlos antes de retirar la tarjeta. Linux es lo suficientemente robusto como para escribir en un archivo que no existe. Pero esto debe hacerse antes de que se desmonte la tarjeta SD, de lo contrario, el desmontaje fallará, y esto es lo que estaba causando mi problema. Umount tampoco se puede ejecutar cuando la tarjeta SD ya se ha vuelto a insertar.

  1. Desmontar la tarjeta SD

    system("montar /mnt/almacenamiento");'

  2. Ahora vuelva a insertar la tarjeta SD

  3. Detectar que la Tarjeta ha sido reinsertada

  4. Vuelva a montar la tarjeta

    sistema ("montar /dev/mmcblk1p1 /mnt/almacenamiento")

over 4 years ago · Santiago Trujillo Relatório

0

Si tiene udev ejecutándose en su sistema, puede dejar que el script de montaje de udev desmonte automáticamente sus dispositivos si se eliminan. Por lo tanto, agregue algo como lo siguiente en /etc/udev/scripts/mount.sh :

 UMOUNT="/bin/umount" if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " `; do $UMOUNT $mnt done fi

Además, debe decirle a udev que ejecute ese script de montaje en dispositivos agregados y eliminados. Por lo tanto, he creado /etc/udev/rules.d/autounmount.rules :

 SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh"

Esto funciona bien para mí usando Yocto "Daisy" en una plataforma armv7.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda