Cuando estoy ejecutando Linux desde la tarjeta SD e intento montar la tarjeta SD, no hay problema, funciona bien. Pero cuando estoy ejecutando Linux desde la memoria flash no puedo montar mi tarjeta SD:
# mount /dev/mmcblk0p1 /mnt/
mount: mounting /dev/mmcblk0p1 on /mnt/ failed: Invalid argument
¿Cuál podría ser la razón básica de este error?
Información adicional
root@Xilinx-ZC702-14_7:/# mount -t /dev/mmcblk0p1 /mnt
mount: can't find /mnt in /etc/fstab
root@Xilinx-ZC702-14_7:/var/volatile/log# ls
wtmp
root@Xilinx-ZC702-14_7:/var/volatile/log# dmesg
dmesg: klogctl: Function not implemented
-t ...
) para quefstab
no se use la entrada./var/log/messages
? ¿Qué taldmesg | tail
?mount -t /dev/mmcblk0p1 /mnt
No es un comando completo. Si conoce el tipo de sistema de archivos, debe especificarlo después del argumento -t (por ejemplomount -t vfat /dev/mmcblk0p1 /mnt
) u omitir -t por completo.Respuestas:
Como comentó goldilocks ,
mount -t
espera que el tipo de sistema de archivos venga después-t
, por lo que no funcionará. De lo contrario, parece que solo necesita especificar el tipo de sistema de archivos. Si no conoce el tipo de sistema de archivos, hay una lista de métodos para averiguar en esta respuesta . Si elfile
comando está disponible, este es probablemente el mejor método. Como root harías:Tenga en cuenta también que si el tipo de sistema de archivos no figura en la lista
/proc/filesystems
, entonces el controlador no se compila en el núcleo y, por lo tanto, debe estar disponible como un módulo externo. Una vez que tenga el tipo correcto, puede intentar:Como pensamiento final, también asegúrese de que
/mnt
exista el directorio. Si no, créalo conmkdir /mnt
.fuente
Razones básicas: (actualizado)
1) Su sistema no se inicializa (¿correctamente?) O no reconoce la SD al arrancar desde flash. ¿Existe el
/dev/mmcblk0
dispositivo después de arrancar desde flash? Quefdisk -l /dev/mmcblk0
dice2) No hay un sistema de archivos en / dev / mmcblk0p1, primero debe crear un sistema de archivos (
mkfs ...
). Verifícalo confile -s /dev/mmcblk0p1
3) El sistema de archivos en / dev / mmcblk0p1 está dañado, debe verificarlo / repararlo, intentarlo
fsck /dev/mmcblk0p1
o crear uno nuevo4) Su núcleo (cuando se arrancan desde flash) no tiene el controlador de sistema de archivo necesario, comprobar
cat /proc/filesystems
yls "/lib/modules/$(uname -r)/kernel/fs/"
ver si la lista contiene el tipo de sistema de archivos necesarios. Por lo general, los núcleos más antiguos no son compatibles con ext4, mientras que su sistema operativo ya puede tener herramientas para crear un sistema de archivos ext4.5) Defecto de hardware: podría ser la tarjeta SD, el controlador, el cableado ... pero si funciona al arrancar desde la tarjeta SD, probablemente este no sea el caso.
fuente
/proc/filesystems
son solo los que se compilan en el núcleo. Por ejemplo, my/proc/filesystems
no contienevfat
, pero aún puedo montar unvfat
sistema ya que está disponible como módulo.util-linux
montaje intenta identificar el sistema de archivos a través de yblkid
luego intenta todo en/etc/filesystems
o/proc/filesystem
. Creo que este es elbusybox
montaje, por lo que probablemente haga menos. Cualquiera de los dos probablemente perdería un sistema de archivos flash especializado.Primero verifique los sistemas de archivos admitidos en el núcleo.
Supongo que está intentando montar la misma tarjeta SD desde la que está ejecutando Linux. Si es así, supongo, bastante razonablemente, que tiene soporte de sistema de archivos nativo en Linux. Para asegurarse de haber cargado el controlador de la tarjeta SD, puede intentar,
Ahora, intente acceso de lectura a particiones:
Alternativamente:
fdisk
también le dirá los tipos de partición.Esto le asegura que el controlador de la tarjeta SD puede acceder al dispositivo de bloque. Ahora puede ejecutar
parted
para imprimir los sistemas de archivos:Una vez que conozca el FS, móntelo con
fuente
parted
trata de determinar el tipo de sistema de archivos. Comentario eliminadoCreo recordar que este es el error que obtienes cuando el tipo de partición que estás intentando montar no es compatible.
fuente
blkid
, si no, ylsblk
es probablemente un entorno Linux más convencional .Tal vez necesite usar (comando dividido) debido al tamaño de la partición:
Para asegurarse de que la partición se haya creado correctamente, use
/sbin/parted /dev/mmcblk0p1 print”
Luego tienes que formatear la partición creada
fuente
parted
on/dev/mmcblk0p1
creará una tabla de partición en una partición de un dispositivo que ya ha sido particionado. Además, seguir estas instrucciones borrará todos los datos del dispositivo .