fdisk -l
funciona si se pasa explícitamente todo el nombre del dispositivo de disco (por ejemplo, fdisk -l /dev/block/mmcblk1
); lo que no funciona es el descubrimiento automático de dispositivos de bloques (aparentemente porque Android coloca los archivos de dispositivo de bloque bajo el directorio /dev/block
, pero fdisk
espera ver esos archivos directamente en /dev
). Por lo tanto, una opción es recopilar la lista de dispositivos de disco completos (/dev/block/mmcblk0
, /dev/block/mmcblk1
, …) y ver sus tablas de particiones usando fdisk -l
. Estos dispositivos de disco completos se enumeran en /proc/partitions
antes de las particiones correspondientes.
La utilidad blkid
no mira la tabla de particiones en absoluto — abre todos los dispositivos de bloque conocidos por el sistema y detecta el tipo de sistema de archivos a partir de los datos reales en esos dispositivos; por lo tanto blkid
no mostrará información correcta para la partición de intercambio hasta que esa partición sea inicializada por mkswap
. Esto significa que blkid
es inútil para tu tarea actual (encontrar qué partición debe ser pasada a mkswap
).
mount
suele mostrar dispositivos bajo /dev/block/vold
, los cuales están nombrados de acuerdo a sus números mayor y menor. Para obtener el nombre de dispositivo usual, puedes buscar en /proc/partitions
una fila que contenga los mismos números en las dos primeras columnas. Luego puedes eliminar la parte p
del final del nombre del dispositivo, añadir /dev/block/
al principio y pasar el nombre resultante a fdisk -l
para ver la tabla de particiones del dispositivo correspondiente.
Nota que si miras la salida de fdisk -l
para la memoria flash eMMC interna, es posible que encuentres muchas particiones con tipos extraños, especialmente en dispositivos basados en Qualcomm. Por ejemplo, mira la tabla de particiones para Samsung Galaxy W (GT-I8150):
# fdisk -lu /dev/block/mmcblk0
Disco /dev/block/mmcblk0: 3959 MB, 3959422976 bytes
1 cabezal, 16 sectores/pista, 483328 cilindros, total 7733248 sectores
Unidades = sectores de 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 212991 106495+ c Win95 FAT32 (LBA)
La Partición 1 no termina en un límite de cilindro
/dev/block/mmcblk0p2 * 212992 213991 500 4d Unknown
La Partición 2 no termina en un límite de cilindro
/dev/block/mmcblk0p3 213992 221183 3596 46 Unknown
La Partición 3 no termina en un límite de cilindro
/dev/block/mmcblk0p4 221184 7733247 3756032 5 Extended
La Partición 4 no termina en un límite de cilindro
/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
Los códigos de tipo de partición ahí son incluso peligrosamente incorrectos, porque /dev/block/mmcblk0p1
, que se declara como Win95 FAT32 (LBA)
, en realidad contiene algunos datos del sistema (incluyendo ubicaciones y hashes MD5 de varias partes de la ROM); sin embargo, /dev/block/mmcblk0p28
, que es el almacenamiento de datos "interno" formateado en FAT16; tiene un tipo que parece completamente erróneo. En este caso, el fabricante no reutilizó el código de tipo 0x82
(intercambio de Linux) para sus propios propósitos, pero no estoy seguro de que dichas colisiones nunca ocurran, así que no debes intentar usar ciegamente ninguna partición que parezca ser de intercambio— primero verifica que el tamaño del dispositivo y la disposición de las particiones sean lo que esperas ver en tu tarjeta SD.
/proc/mtd
nunca es útil para encontrar una partición de intercambio en una tarjeta SD (los controladores MTD se utilizan para acceder directamente a chips de memoria flash crudos conectados, no pueden funcionar con tarjetas SD externas).
0 votos
¿Hay algo en tu
/proc/swaps
?0 votos
@ott--:
cat /proc/swaps
solo muestra el archivo de intercambio creado por swapper 2, no la partición en la tarjeta SD0 votos
Como ya sabes, ¿has intentado usar
mount
(sin parámetros) para encontrar el dispositivo de bloque correspondiente (/dev/block/*
) y comprobarlo con la lista de/proc/partitions
(o/proc/mtd
)? Si no tienes más particiones en tu tarjeta, tu partición de intercambio debería ser "la otra que termina con un dígito", a menos quemount
apunte solo avold
. En ese caso, comparar tamaños (o quitar temporalmente la tarjeta para un "diff") podría ayudar.