Datenpartition mit 23 GB zeigt nur 8 GB an, wenn sie gemountet ist

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?

Antworten (1)

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.