estoy siguiendoeste tutorial. Pero me quedé atascado en el paso 9, de alguna manera no puedo montar mi USB.
Cada vez que intento montar mi USB me sale el siguiente error:
root@OpenWrt:~# mount /dev/sda2 /mnt/sda2
mount: mounting /dev/sda2 on /mnt/sda2 failed: Invalid argument
El USB parece estar bien y conectado, pero de alguna manera no puedo montar la partición sda2 (ext4).
Las particiones también parecen estar bien:
root@OpenWrt:~# blkid
/dev/mtdblock2: TYPE="squashfs"
/dev/sda1: UUID="e39964e8-1b51-4b1f-b034-0147fa394eea" TYPE="swap"
/dev/sda2: UUID="157cfc0d-f33d-4103-950d-6ae01baa7177" TYPE="ext4"
Y esta es mi dmesg
salida:
root@OpenWrt:~# dmesg | grep sda
[ 9.360000] sd 0:0:0:0: [sda] 7987200 512-byte logical blocks: (4.08 GB/3.80 GiB)
[ 9.370000] sd 0:0:0:0: [sda] Write Protect is off
[ 9.370000] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00
[ 9.370000] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 9.400000] sda: sda1 sda2
[ 9.410000] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 41.850000] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
[ 41.870000] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
[ 41.880000] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
[ 270.660000] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
[ 270.670000] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
[ 270.670000] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
[ 585.040000] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
[ 585.050000] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
[ 585.060000] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
[ 586.540000] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
[ 586.550000] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
[ 586.560000] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
[ 651.570000] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
[ 651.580000] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
[ 651.590000] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
Esta es mi fdisk -l
salida:
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 4089 MB, 4089446400 bytes
255 heads, 63 sectors/track, 497 cylinders, total 7987200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 1 7987199 3993599+ ee GPT
Respuesta1
El mensaje de error proviene de esta línea en <Linux kernel source code>/fs/ext4/super.c
:
if (ext4_has_unknown_ext4_ro_compat_features(sb)) {
ext4_msg(sb, KERN_ERR, "couldn't mount RDWR because of "
"unsupported optional features (%x)",
(le32_to_cpu(EXT4_SB(sb)->s_es->s_feature_ro_compat) &
~EXT4_FEATURE_RO_COMPAT_SUPP));
El marcador de posición para el número en el mensaje de error es %x
, por lo que el número 400 en el mensaje de error real es hexadecimal 0x400. Y es una de las características identificadas por las EXT4_FEATURE_RO_COMPAT_
constantes.
Las definiciones de esas constantes se pueden encontrar en <Linux kernel source code>/fs/ext4/ext4.h
:
#define EXT4_FEATURE_RO_COMPAT_METADATA_CSUM 0x0400
La dir_nlink
característica mencionada por sourcejedi es 0x20, no 0x400:
#define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020
Por lo tanto, el MR3020 no pudo montar el sistema de archivos en modo lectura/escritura porque su sistema operativo no puede manejar sumas de verificación de metadatos ext4. Por lo tanto, deberá desactivar esa función utilizando el sistema Linux que utilizó para crear la memoria USB. Mueva la memoria USB nuevamente a ese sistema (no monte el sistema de archivos ext4) y ejecute:
tune2fs -O^metadata_csum /dev/sdX2
(reemplace X con el identificador real de la memoria USB en su sistema Linux).
Después de ejecutar este comando con éxito, la metadata_csum
función se desactivará en el sistema de archivos ext4 de la memoria USB y el MR3020 ahora debería poder utilizarla.
Respuesta2
Parece que el intento de montaje solo intenta ext3 y ext2, no ext4. Tienes ext4 en tu kernel, ¿verdad? (Está listado en /proc/filesystems
.) ¿Podría ser que lo haya /dev/sda2
incluido /etc/fstab
comoext3?
Respuesta3
También tengo este problema en un TL-MR3020 v3 y lo resolví creando una partición ext3 en lugar de ext4, y monté la unidad con éxito.
Estos son los pasos que tomé (siguiendo los pasos en el sitio web de OpenWRT, simplemente reemplazando ext4 con ext3):
root@OpenWrt:~# mkfs.ext3 /dev/sda1
mke2fs 1.44.5 (15-Dec-2018)
/dev/sda1 contains a ext4 file system
created on Sun Sep 27 06:13:56 2020
Proceed anyway? (y,N) y
Creating filesystem with 511744 4k blocks and 128000 inodes
Filesystem UUID: 2bbb533d-925f-43fb-946a-4190fe612186
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
root@OpenWrt:~# block detect | uci import fstab
root@OpenWrt:~# uci set fstab.@mount[0].enabled='1' && uci set fstab.@global[0].anon_mount='1' && uci commit fstab
root@OpenWrt:~# /etc/init.d/fstab boot
root@OpenWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 2.5M 2.5M 0 100% /rom
tmpfs 29.3M 1.1M 28.2M 4% /tmp
/dev/mtdblock4 3.8M 1.2M 2.5M 33% /overlay
overlayfs:/overlay 3.8M 1.2M 2.5M 33% /
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sda1 1.9G 3.0M 1.8G 0% /mnt/sda1
root@OpenWrt:~#
Sé que esta es una pregunta antigua, pero tal vez ayude a alguien.
Respuesta4
¿Lo formateaste con ext4 después de crear la partición?
mkfs.ext4 /dev/sda2
Luego intente montar o montar con ext4 especificando explícitamente el tipo de sistema de archivosmount -t ext4 /dev/sda2 /mnt/sda2