fdisk -l
funciona se você passar o nome completo do dispositivo de disco explicitamente (por exemplo, fdisk -l /dev/block/mmcblk1
); o que não funciona é a descoberta automática de dispositivos de bloco (aparentemente porque o Android coloca arquivos de dispositivo de bloco no /dev/block
diretório, mas fdisk
espera ver esses arquivos diretamente /dev
). Portanto uma opção é recolher a lista de dispositivos de disco inteiros ( /dev/block/mmcblk0
, /dev/block/mmcblk1
...) e olhar para as suas tabelas de partição usando . Esses dispositivos de disco inteiro são listados antes das partições correspondentes.fdisk -l <device>
/proc/partitions
O blkid
utilitário não olha para a tabela de partições - ele abre todos os dispositivos de bloco conhecidos pelo sistema e detecta o tipo de sistema de arquivos dos dados reais desses dispositivos; portanto blkid
, não mostrará as informações corretas para a partição de swap até que essa partição seja inicializada por mkswap
. Isso significa que blkid
é inútil para sua tarefa atual (encontrar para qual partição deve ser passada mkswap
).
mount
normalmente mostra os dispositivos abaixo /dev/block/vold
, que são nomeados de acordo com seus números maiores e menores. Para obter o nome normal do dispositivo, procure /proc/partitions
uma linha contendo os mesmos números nas duas primeiras colunas. Em seguida, você pode remover a parte do final do nome do dispositivo, adicionar no início e passar o nome resultante para ver a tabela de partição do dispositivo correspondente.p<number>
/dev/block/
fdisk -l
Lembre-se de que, se você observar a fdisk -l
saída do flash interno do eMMC, poderá encontrar muitas partições com tipos estranhos, especialmente em dispositivos baseados na Qualcomm. Por exemplo, consulte a tabela de partições para o 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
Os códigos de tipo de partição estão perigosamente errados, porque /dev/block/mmcblk0p1
, o que é declarado Win95 FAT32 (LBA)
, na verdade contém alguns dados do sistema (incluindo locais e hashes MD5 de várias partes da ROM); no entanto, /dev/block/mmcblk0p28
que é o "armazenamento interno de dados" no formato FAT16, tem um tipo que parece completamente falso. Nesse caso, o fabricante não reutilizou o 0x82
código de tipo (troca Linux) para seus próprios fins, mas não tenho certeza de que tais colisões nunca ocorram, portanto, você não deve tentar usar cegamente qualquer partição que se pareça com troca - verifique primeiro se o tamanho do dispositivo e o layout da partição são o que você espera ver no seu cartão SD.
/proc/mtd
nunca é útil para encontrar uma partição de troca no cartão SD (os drivers MTD são usados para acessar os chips flash brutos diretamente conectados, eles não podem funcionar com cartões SD externos).
/proc/swaps
?