GNU/Linux >> Znalost Linux >  >> Linux

Android - Jak zjistit cestu k odkládacímu oddílu na SD kartě?

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).


Linux
  1. Jak zjistit, zda je disk SSD nebo HDD v Linuxu

  2. Jak najít offset souborového systému Ext4?

  3. Jak zjistit, zda karta podporuje režim infrastruktury?

  1. Jak spravovat swapovací oddíl v Linuxu

  2. Jak rozšířit odkládací oddíl LVM v Linuxu

  3. Jak přenést výsledky 'najít' do mv v Linuxu

  1. Jak povolit linuxový odkládací oddíl?

  2. Jak zjistím, co zabírá veškerý prostor na mém / oddílu?

  3. Jak změním swapovací oddíl v Linuxu?