Nainstaloval jsem aplikaci Disk Info a v možnostech jsem povolil Expertní režim a Odpojené oddíly . Neříká "swap", ale jasně ukazuje, že je to jediný další oddíl na SD kartě a má správnou velikost, takže /dev/block/mmcblk1p2
musí být ten:
Swapper 2 je nakonfigurován pro použití /dev/block/mmcblk0p3
ve výchozím nastavení, takže jsem rád, že jsem nepoužil výchozí.
fdisk -l
funguje, pokud explicitně předáte celý název diskového zařízení (např. fdisk -l /dev/block/mmcblk1
); co nefunguje, je automatické zjišťování blokovaných zařízení (zřejmě proto, že Android umístí soubory blokovaných zařízení pod /dev/block
adresář, ale fdisk
očekává, že tyto soubory uvidí přímo v /dev
). Jednou z možností je proto shromáždit seznam celých diskových zařízení (/dev/block/mmcblk0
, /dev/block/mmcblk1
, …) a podívejte se na jejich tabulky oddílů pomocí fdisk -l <device>
. Celá tato disková zařízení jsou uvedena v /proc/partitions
před odpovídající oddíly.
blkid
obslužný program se vůbec nedívá na tabulku oddílů — otevře všechna bloková zařízení známá systému a zjistí typ souborového systému ze skutečných dat na těchto zařízeních; proto blkid
nezobrazí správné informace o odkládacím oddílu, dokud nebude tento oddíl inicializován pomocí mkswap
. To znamená, že blkid
je pro vaši aktuální úlohu k ničemu (zjištění, který oddíl by měl být předán do mkswap
).
mount
obvykle zobrazuje zařízení pod /dev/block/vold
, které jsou pojmenovány podle svého hlavního a vedlejšího čísla. Chcete-li získat obvyklý název zařízení, můžete se podívat do /proc/partitions
najít řádek obsahující stejná čísla v prvních dvou sloupcích. Poté můžete odstranit p<number>
část od konce názvu zařízení, přidejte /dev/block/
na začátku a předejte výsledný název fdisk -l
zobrazíte tabulku oddílů odpovídajícího zařízení.
Dejte si pozor, když se podíváte na fdisk -l
výstup pro interní flash eMMC, můžete najít spoustu oddílů s podivnými typy, zejména na zařízeních založených na Qualcommu. Podívejte se například na tabulku oddílů pro 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
Kódy typu oddílu jsou dokonce nebezpečně špatné, protože /dev/block/mmcblk0p1
, který je deklarován Win95 FAT32 (LBA)
, ve skutečnosti obsahuje některá systémová data (včetně umístění a MD5 hash různých částí ROM); nicméně /dev/block/mmcblk0p28
, což je „interní úložiště dat“ ve formátu FAT16, má typ, který vypadá zcela falešně. V tomto případě výrobce znovu nepoužil 0x82
(Linux swap) kód typu pro jejich vlastní účely, ale nejsem si jistý, že k takovým kolizím nikdy nedojde, takže byste se neměli slepě pokoušet použít jakýkoli oddíl, který vypadá jako swap – nejprve zkontrolujte, zda velikost zařízení a rozložení oddílu odpovídá vašim požadavkům. očekávejte, že uvidíte na vaší SD kartě.
/proc/mtd
není nikdy užitečné pro nalezení odkládacího oddílu na SD kartě (ovladače MTD se používají pro přístup k přímo připojeným raw flash čipům, nemohou pracovat s externími SD kartami).