Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

302
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda