Ich habe ein Sony Xperia Z5 Compact, und ich fand es seltsam, dass der Speichermanager anzeigte, dass das System 20 GB des 32 GB internen Speichers füllte, also ging ich ein wenig weiter darauf ein.
Ich habe festgestellt, dass die Datenpartition p42 im internen ROM mit TWRPs fdisk ist, die sie korrekt mit 23 GB meldet (ich habe jedoch nicht herausgefunden, wie ich die TWRP-Terminalausgabe hier bekomme). Wenn ich jedoch fdisk verwende, während das Gerät vollständig hochgefahren ist, erhalte ich über die ADB-Shell Folgendes:
suzuran:/ # fdisk -l /dev/block/mmcblk0
Disk /dev/block/mmcblk0: 31.2 GB, 31272730624 bytes
255 heads, 63 sectors/track, 3802 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 3803 30539775+ ee EFI GPT
Zeigt nicht die vollständige Partitionstabelle an ...
Wenn ich jedoch versuche, die Partition zu lesen, gibt es keine Fehler:
suzuran:/ # dd if=/dev/block/mmcblk0p42 of=/dev/null
48365568+0 records in
48365568+0 records out
24763170816 bytes transferred in 246.927 secs (100285391 bytes/sec)
Das Lesen des gesamten Speichers ergibt auch keine Fehler:
suzuran:/ # dd if=/dev/block/mmcblk0 of=/dev/null
61079552+0 records in
61079552+0 records out
31272730624 bytes transferred in 365.211 secs (85629213 bytes/sec)
Aber wenn es gemountet wird, entweder gebootet oder innerhalb von TWRP (ich habe es auch manuell gemountet), zeigt es nur eine Größe von 8 GB an:
suzuran:/ # df
Filesystem 1K-blocks Used Available Use% Mounted on
[ other skipped mounts ]
/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
Ich verwende LineageOS, aber in der Standard-Sony-ROM hatte ich das gleiche Problem, hatte nur nicht die Tools, um dies weiter zu überprüfen.
Hatte jemand dieses Problem schon mal oder kann mir da weiterhelfen?
Bearbeiten: Ich habe gerade den Befehl 'blockdev' gefunden:
suzuran:/ # blockdev --getsize64 /dev/block/bootdevice/by-name/userdata
24763170816
was die richtige Größe der Partition ergibt. Was passiert mit dem 'mount'-Befehl? Könnte das mit dem Kernel zusammenhängen? Wenn ja, warum passiert es auch in TWRP?
Nachdem ich ein wenig mit dem Gerät "gespielt" hatte, gelang es mir, das Problem auf die ext4-Partitionsdaten zurückzuführen. In TWRP gebootet, Terminal, die Dateien in der Partition gesichert, ausgehängt, dann:
mke2fs -t ext4 /dev/block/bootdevice/by-name/userdata
Und voila! 23 GB Datenspeicher verfügbar. Ich habe die gesicherten Dateien im neuen ext4-Dateisystem wiederhergestellt und alles funktioniert jetzt, obwohl ich das Gefühl habe, dass es etwas langsamer ist. Trotzdem ist es gelöst.