Wie dies warnt, sollten Sie Swap nicht auf der falschen Partition aktivieren oder Sie können Ihr Telefon zerstören:
OK, bevor wir weitermachen! Frühere Telefone hatten ein Partitionslayout, bei dem mmcblck0 die SD-Karte (extern) war. Unser Telefon verwendet mmcblck1 für die externe SD-Karte. Dies ist wichtig, denn wenn Sie eine App verwenden, kann diese so voreingestellt sein, dass mmcblck0 als Swap-Partition verwendet wird. Wenn Sie diese Einstellung verwenden, werden Sie Ihr sbl2 oder sbl3 als Swap-Partition verwenden. Dadurch wird Ihr Telefon gemauert und die Unbrick-Anleitung ist nützlich.
Die Swap-Partition könnte also sein, /dev/block/mmcblk0p3
wenn ich 3 Partitionen (fat32, sdext, swap) auf meiner SD-Karte habe, oder /dev/block/mmcblk0p2
wenn ich 2 Partitionen (fat43 und swap) habe oder /dev/block/mmcblk1p?
wenn Sie ein anderes Telefon usw. haben und die falsche Wahl getroffen werden kann dein Telefon.
Wie finden Sie heraus, welche Partition welche ist? Es sollte die einzige Partition auf einem Laufwerk des Telefons mit dem swap
Dateisystem sein.
fdisk -l
tut dies auf Ubuntu , gibt aber nichts in Android ausblkid
zeigt die Swap-Partition nicht ancat /proc/partitions
listet viele Partitionen auf, gibt aber nicht an, welches der Swap istcat /proc/swaps
listet nur Swaps auf, die bereits verwendet werdencat /proc/mtd
sagt nur dev: size erasesize name
und sonst nichtsls /dev/block/vold
listet einige Partitionen als 179:64 179:65 179:66
auf, gibt aber nicht an, was sie sind?swap swap 129 MiB
), sagt aber nicht den Namen des EntwicklersAuch wenn es kein Befehlszeilentool gibt, um es direkt zu drucken, gibt es sicherlich eine Möglichkeit, es aus anderen Informationen abzuleiten?
Ich habe die Disk Info-App installiert und in den Optionen den Expertenmodus und Unmounten von Partitionen aktiviert . Es steht nicht "Swap", aber es zeigt deutlich, dass es die einzige andere Partition auf der SD-Karte ist und die richtige Größe hat, also /dev/block/mmcblk1p2
muss die eine sein:
Swapper 2 ist /dev/block/mmcblk0p3
standardmäßig für die Verwendung konfiguriert, daher bin ich froh, dass ich mich nicht für die Standardeinstellung entschieden habe.
fdisk -l
funktioniert, wenn Sie den gesamten Plattengerätenamen explizit übergeben (z. B. fdisk -l /dev/block/mmcblk1
); Was nicht funktioniert, ist die automatische Erkennung von Blockgeräten (anscheinend, weil Android Blockgerätedateien unter dem /dev/block
Verzeichnis ablegt, aber fdisk
erwartet, diese Dateien direkt in zu sehen /dev
). Daher besteht eine Möglichkeit darin, die Liste der ganzen Festplattengeräte ( /dev/block/mmcblk0
, /dev/block/mmcblk1
, …) zu sammeln und ihre Partitionstabellen mit zu betrachten . Diese Whole Disk Devices werden vor den entsprechenden Partitionen aufgelistet.fdisk -l <device>
/proc/partitions
Das blkid
Dienstprogramm sieht sich die Partitionstabelle überhaupt nicht an – es öffnet alle dem System bekannten Blockgeräte und erkennt den Dateisystemtyp anhand der tatsächlichen Daten auf diesen Geräten; zeigt daher blkid
keine korrekten Informationen für die Swap-Partition an, bis diese Partition durch initialisiert wurde mkswap
. Dies bedeutet, dass blkid
es für Ihre aktuelle Aufgabe (herausfinden, welche Partition übergeben werden soll mkswap
) nutzlos ist.
mount
zeigt normalerweise Geräte unter /dev/block/vold
an, die nach ihrer Major- und Minor-Nummer benannt sind. Um den üblichen Gerätenamen zu erhalten, können Sie /proc/partitions
nach einer Zeile suchen, die in den ersten beiden Spalten dieselben Nummern enthält. Dann können Sie den Teil vom Ende des Gerätenamens entfernen, am Anfang hinzufügen und den resultierenden Namen an übergeben , um die Partitionstabelle des entsprechenden Geräts anzuzeigen.p<number>
/dev/block/
fdisk -l
Beachten Sie, dass Sie, wenn Sie sich die fdisk -l
Ausgabe für den internen eMMC-Flash ansehen, möglicherweise viele Partitionen mit seltsamen Typen finden, insbesondere auf Qualcomm-basierten Geräten. Siehe z. B. die Partitionstabelle für Samsung Galaxy W (GT-I8150):
# fdisk -lu /dev/block/mmcblk0
Disk /dev/block/mmcblk0: 3959 MB, 3959422976 bytes
1 heads, 16 sectors/track, 483328 cylinders, total 7733248 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 212991 106495+ c Win95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary
/dev/block/mmcblk0p2 * 212992 213991 500 4d Unknown
Partition 2 does not end on cylinder boundary
/dev/block/mmcblk0p3 213992 221183 3596 46 Unknown
Partition 3 does not end on cylinder boundary
/dev/block/mmcblk0p4 221184 7733247 3756032 5 Extended
Partition 4 does not end on cylinder boundary
/dev/block/mmcblk0p5 229376 239615 5120 47 Unknown
/dev/block/mmcblk0p6 245760 285759 20000 49 Unknown
/dev/block/mmcblk0p7 286720 292863 3072 58 Unknown
/dev/block/mmcblk0p8 294912 306175 5632 48 Unknown
/dev/block/mmcblk0p9 311296 324271 6488 50 Unknown
/dev/block/mmcblk0p10 327680 333823 3072 4a Unknown
/dev/block/mmcblk0p11 335872 342015 3072 4b Unknown
/dev/block/mmcblk0p12 344064 360447 8192 90 Unknown
/dev/block/mmcblk0p13 360448 375807 7680 91 Unknown
/dev/block/mmcblk0p14 376832 387071 5120 92 Unknown
/dev/block/mmcblk0p15 393216 1488895 547840 93 Unknown
/dev/block/mmcblk0p16 1490944 1613823 61440 94 Unknown
/dev/block/mmcblk0p17 1613824 3887103 1136640 95 Unknown
/dev/block/mmcblk0p18 3891200 3993599 51200 96 Unknown
/dev/block/mmcblk0p19 3997696 3998695 500 97 Unknown
/dev/block/mmcblk0p20 4005888 4013079 3596 98 Unknown
/dev/block/mmcblk0p21 4014080 4024319 5120 99 Unknown
/dev/block/mmcblk0p22 4030464 4070463 20000 9a Unknown
/dev/block/mmcblk0p23 4071424 4081663 5120 9b Unknown
/dev/block/mmcblk0p24 4087808 4101807 7000 9c Unknown
/dev/block/mmcblk0p25 4104192 4114431 5120 9d Unknown
/dev/block/mmcblk0p26 4120576 4130815 5120 9e Unknown
/dev/block/mmcblk0p27 4136960 4147199 5120 9f BSD/OS
/dev/block/mmcblk0p28 4153344 7733247 1789952 a0 Thinkpad hibernation
Partitionstypcodes sind dort sogar gefährlich falsch, weil /dev/block/mmcblk0p1
, das als deklariert ist Win95 FAT32 (LBA)
, tatsächlich einige Systemdaten enthält (einschließlich Speicherorte und MD5-Hashes verschiedener ROM-Teile); , /dev/block/mmcblk0p28
der FAT16-formatierte „interne Datenspeicher“, hat jedoch einen Typ, der völlig falsch aussieht. In diesem Fall hat der Hersteller den 0x82
Typcode (Linux-Swap) nicht für seine eigenen Zwecke wiederverwendet, aber ich bin mir nicht sicher, ob solche Kollisionen niemals auftreten, also sollten Sie nicht blindlings versuchen, eine Partition zu verwenden, die wie Swap aussieht – überprüfen Sie das zuerst Die Gerätegröße und das Partitionslayout sind das, was Sie auf Ihrer SD-Karte erwarten.
/proc/mtd
ist nie nützlich, um eine Swap-Partition auf einer SD-Karte zu finden (MTD-Treiber werden verwendet, um auf direkt angeschlossene Raw-Flash-Chips zuzugreifen, sie können nicht mit externen SD-Karten arbeiten).
fdisk -l /dev/block/mmcblk1
sagt/dev/block/mmcblk1p2 30637 31152 132096 82 Linux swap
ott--
/proc/swaps
?Endolith
cat /proc/swaps
nur die von Swapper 2 erstellte Auslagerungsdatei an, nicht die Partition auf der SD-KarteIzzy
mount
(ohne Parameter) das entsprechende Blockgerät (/dev/block/*
) zu finden und es mit der Liste von/proc/partitions
(oder/proc/mtd
) zu vergleichen? Wenn Sie keine weitere Partition auf Ihrer Karte haben, sollte Ihre Swap-Partition "die andere sein, die mit einer Ziffer endet", sofern nicht nurmount
darauf hingewiesen wirdvold
. In diesem Fall kann es hilfreich sein, Größen zu vergleichen (oder die Karte für einen "Vergleich" vorübergehend zu entfernen).