Problemas con features al montar partición ext4

2017/11/20

Por segunda o tercera vez me ocurre el problema que al crear una partición ext4 en un pendrive con mi PC, al intentar utilizarlo en otro PC con un SO distinto no puedo montar la partición.

El mensaje que aparece en dmesg es el siguiente:

[12317.658982] sd 113:0:0:0: Attached scsi generic sg2 type 0
[12317.659600] sd 113:0:0:0: [sdc] 7864320 512-byte logical blocks: (4.02 GB/3.75 GiB)
[12317.660054] sd 113:0:0:0: [sdc] Write Protect is off
[12317.660063] sd 113:0:0:0: [sdc] Mode Sense: 43 00 00 00
[12317.660071] sd 113:0:0:0: [sdc] Assuming drive cache: write through
[12317.684195] sd 113:0:0:0: [sdc] Assuming drive cache: write through
[12317.694281]  sdc: sdc1
[12317.697375] sd 113:0:0:0: [sdc] Assuming drive cache: write through
[12317.705220] sd 113:0:0:0: [sdc] Attached SCSI removable disk
[12317.815980] EXT4-fs (sdc1): couldn't mount RDWR because of unsupported optional features (400)

Utilizando fsck para intentar corregir el problema se obtiene:

fsck from util-linux-ng 2.17.2
/dev/sdc1 has unsupported feature(s): 64bit FEATURE_R10
e2fsck: Get a newer version of e2fsck!

Obviamente el problema es una versión vieja del paquete e2fsprogs, pero ¿como conseguir que el pendrive formateado en mi SO funcione en otro con una versión más vieja de e2fsprogs?

Según el manual de mkfs.ext4 (man mkfs.ext4), los parámetros y features, que son las que nos dan el problema actual, se toman por defecto del archivo /etc/mke2fs.conf. La descripción de las features se puede encontrar en el manual de ext4 (man ext4).

El problema en concreto se debe a que a partir de la versión 1.43 se agregaron las features metadata_csum y 64bit. De http://e2fsprogs.sourceforge.net/e2fsprogs-release.html:

E2fsprogs 1.43 (May 17, 2016)
...
Mke2fs will now create file systems with the metadata_csum and 64bit features enabled by default.

Para confirmar que la feature FEATURE_R10 del mensaje de fsck es metadata_csum se puede ver el código fuente del paquete e2fsprogs. Para ver el código se utiliza el sitio http://sources.debian.org, que contiene los fuentes de debian (mi SO):

Para formatear una partición ext4 sin las features anteriores se puede utilizar (suponiendo que la partición a formatear es /dev/sdb1):

# mkfs.ext4 -F -L "mylabel" -O ^64bit,^metadata_csum /dev/sdb1

Como alternativa, si ya existe la partición puede utilizarse el comando tune2fs para modificar los features de la partición:

# tune2fs -O ^64bit,^metadata_csum /dev/sdb1  # remover features
# tune2fs -l /dev/sdb1 | grep features  # listar features

Al utilizar el comando tune2fs para modificar los features este suele imprimir en consola si se necesita ejecutar un comando adicional.