Tengo un Sony Xperia Z5 Compact, y me pareció extraño que el administrador de almacenamiento mostrara que el sistema llenaba 20GB de los 32GB de almacenamiento interno, así que fui a investigar un poco más al respecto.
Descubrí que la partición de datos es p42 en la memoria interna usando fdisk de TWRP, que informa correctamente que tiene 23GB (aunque no he encontrado cómo obtener la salida del terminal de TWRP aquí). Sin embargo, al usar fdisk con el dispositivo completamente encendido, a través de la terminal ADB, obtengo esto:
suzuran:/ # fdisk -l /dev/block/mmcblk0
Disco /dev/block/mmcblk0: 31.2 GB, 31272730624 bytes
255 cabezas, 63 sectores/pista, 3802 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Dispositivo Inicio Final Bloques Id Sistema
/dev/block/mmcblk0p1 1 3803 30539775+ ee EFI GPT
no muestra la tabla de particiones completa...
Sin embargo, cuando intento leer la partición, no presenta errores:
suzuran:/ # dd if=/dev/block/mmcblk0p42 of=/dev/null
48365568+0 registros leídos
48365568+0 registros escritos
24763170816 bytes (24 GB) copiados, 246,927 s, 100 MB/s
La lectura de todo el almacenamiento también no presenta errores:
suzuran:/ # dd if=/dev/block/mmcblk0 of=/dev/null
61079552+0 registros leídos
61079552+0 registros escritos
31272730624 bytes (31 GB) copiados, 365,211 s, 85,629 MB/s
Pero al montarlo, ya sea encendido o dentro de TWRP (también lo he montado manualmente), muestra solo un tamaño de 8GB:
suzuran:/ # df
Sistema de archivos 1K-bloques Usado Disponible Uso% Montado en
[ otros montajes omitidos ]
/dev/block/mmcblk0p43 5215496 1188900 4026596 23% /system
/dev/block/mmcblk0p42 8641912 6071544 2570368 71% /data
/dev/block/mmcblk0p41 197472 188 197284 1% /cache
/dev/block/mmcblk0p3 81872 57808 24064 71% /firmware
/dev/block/mmcblk0p31 28144 164 27980 1% /persist
/dev/block/mmcblk0p39 14327 160 14167 2% /idd
/dev/block/loop0 92656 980 91676 2% /su
Estoy usando LineageOS, pero en el firmware original de Sony tenía el mismo problema, simplemente no tenía las herramientas para investigar más al respecto.
¿Alguien ha tenido este problema antes o puede ayudarme con esto?
Editar: Acabo de enterarme del comando 'blockdev':
suzuran:/ # blockdev --getsize64 /dev/block/bootdevice/by-name/userdata
24763170816
que devuelve el tamaño correcto de la partición. ¿Qué está sucediendo con el comando 'mount'? ¿Podría ser algo relacionado con el kernel? Si es así, ¿por qué ocurre también en TWRP?