Ich habe mit der TWRP-Wiederherstellung alle Partitionen von meinem Moto G-Gerät gelöscht und Cyanogen 13 darauf installiert. Dann hatte ich Probleme beim Aktivieren der Verschlüsselung: Das Telefon startet einfach neu, verschlüsselt aber nicht. Dies ist ein bekanntes Problem und wird hier beschrieben .
Ich wollte einem in dieser Antwort beschriebenen Verfahren folgen (basierend auf diesem ), das angeblich funktioniert. Die Erklärung ist:
Beim Verschlüsseln des Telefons enthält die Partition /dev/block/mmcblk0pXX – die ursprünglich ein ext4-Dateisystem enthielt, das als /data und /sdcard gemountet wird – jetzt einen Verschlüsselungscontainer. Diese wird zu Beginn des Bootvorgangs entschlüsselt und gibt eine logische Partition /dev/block/dm-0 zurück, die dann das ext4-Dateisystem für /data und /sdcard enthält. (...)
Um dies zu beheben, muss das Dateisystem in /dev/block/mmcblk0pXX mindestens 16KiB kleiner sein als die Partition selbst, was einfach durch resize2fs erreicht werden kann.
Kurz gesagt, die vorgeschlagene Lösung besteht darin, die Größe der /data
Partition zu ändern und einige Sektoren daraus zu entfernen ...
Wichtig ist die Anzahl der Blöcke (...) Von dieser Zahl ziehen wir 8 ab, was nicht 16 KiB, sondern sichere 32 KiB Platz für den Verschlüsselungsheader übrig lässt (16 KiB auf einem 12-GB-Volume stören Sie nicht, im Ernst)
Die tatsächliche Anzahl der aus der /data
Partition zu entfernenden Blöcke hängt von der Sektorgröße für die Partition ab. Im obigen Beispiel sind es 4 KB, also 8x4 =32 .
Diese Anweisungen gelten nur für die Dateisysteme ext2/3/4 ; Die erforderlichen Befehle ( e2fsck, tune2fs, resize2fs ) funktionieren nicht mit der von Cyanogen v13 verwendeten F2FS-Partition .
Ich habe fsck.f2fs
im Verzeichnis /sbin gefunden , das ich anstelle von e2fsck und tune2fs verwendet habe . Unten sind die Schritte von der Root-ADB-Shell, die in TWRP gebootet wird:
~ # mount | grep data
/dev/block/platform/msm_sdcc.1/by-name/modem on /firmware type ext4 (rw,seclabel,relatime,data=ordered)
/dev/block/mmcblk0p36 on /data type f2fs (rw,seclabel,relatime,background_gc=on,user_xattr,inline_xattr,acl,inline_data,active_logs=6)
/dev/block/mmcblk0p36 on /sdcard type f2fs (rw,seclabel,relatime,background_gc=on,user_xattr,inline_xattr,acl,inline_data,active_logs=6)
/dev/block/mmcblk0p33 on /cache type ext4 (rw,seclabel,relatime,data=ordered)
~ # umount /dev/block/mmcblk0p36
~ # fsck.f2fs -f /dev/block/mmcblk0p36
Info: Force to fix corruption
Info: sector size = 512
Info: total sectors = 11583232 (in 512 bytes)
(...)
Meine /data
Partition ist also mmcblk0p36
, und hat eine Größe von 11.583.232 Sektoren. Jeder Sektor ist 512 Bytes groß, daher muss ich die Partition auf eine endgültige Größe von 11.583.168 Sektoren verkleinern, um 32 KB nicht zugeordnet zu lassen.
Aber wie kann es gemacht werden? Alles scheint darauf hinzudeuten, dass das Verkleinern einer F2FS-Partition nicht möglich ist, aber ich bin mir nicht sicher. Wenn dies nicht der Fall ist, und vorausgesetzt, ich habe eine vollständige Sicherung der /data
Partition durchgeführt, was sind die Schritte, um sie zu löschen und mit einer kleineren Größe neu zu erstellen?
Ab heute (30. Mai 2016) unterstützt das F2FS-Dateisystem keine Verkleinerung. Wenn dies der Fall ist, bis jemand dies liest, lass es mich einfach in den Kommentaren wissen.
Die Lösung besteht dann darin , das gesamte Dateisystem für /data
. Aus dieser verwandten Antwort auf Unix & Linux Stack Exchange:
mkfs.f2fs /dev/block/mmcblk0p36 11583168
Dies wird den Trick machen. Nach dem Neustart und Wiederherstellen des Backups und schließlich dem Neustart auf Android funktionierte der Verschlüsselungsprozess.
Wichtig: Überprüfen Sie Use rm -rf instead of formatting
unbedingt die TWRP-Einstellungen, bevor Sie die Sicherung wiederherstellen.
resize.f2fs 1.12.0
unterstützt sowohl das Schrumpfen als auch das Erweitern.
Izzy
/dev/block/mmcblk0pXX
mindestens 16 KB kleiner sein als die Partition selbst (Hervorhebung von mir). Ich habe keine Erfahrung mit F2FS, aber gibt es einenmkf2fs
or -mkfs.f2fs
Befehl? Sie könnten das dann mit den entsprechenden Parametern ausführen, um das Dateisystem mit der entsprechenden Größe neu zu erstellen (was natürlich alle Daten im aktuellen Dateisystem auf dieser Partition zerstören würde, also machen Sie zuerst eine Sicherung).März 2377
Izzy