fdisk -l
如果您明确传递整个磁盘设备名称(例如fdisk -l /dev/block/mmcblk1
),则可以使用;不起作用的是自动发现阻止设备(显然是因为Android将阻止设备文件放在/dev/block
目录下,但fdisk
希望直接在中看到这些文件/dev
)。因此一个选项是收集整个磁盘设备的列表(/dev/block/mmcblk0
,/dev/block/mmcblk1
在他们的分区表使用,...)和外观。这些整个磁盘设备在相应分区之前列出。fdisk -l <device>
/proc/partitions
该blkid
实用程序根本不查看分区表,而是打开系统已知的所有块设备,并从这些设备上的实际数据中检测文件系统类型。因此,blkid
除非使用初始化该交换分区,否则不会显示正确的信息mkswap
。这意味着这blkid
对于您当前的任务毫无用处(查找应将分区传递给mkswap
)。
mount
通常会显示下方的设备/dev/block/vold
,这些设备根据其主要和次要编号进行命名。要获取通常的设备名称,您可以/proc/partitions
在前两列中查找包含相同数字的行。然后,您可以从设备名称的末尾删除该部分,在开头添加,然后将结果名称传递给查看相应设备的分区表。p<number>
/dev/block/
fdisk -l
请注意,如果查看fdisk -l
内部eMMC闪存的输出,可能会发现很多分区类型奇怪的分区,尤其是在基于Qualcomm的设备上。例如,请参阅三星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
分区类型代码甚至存在危险的错误,因为/dev/block/mmcblk0p1
声明的Win95 FAT32 (LBA)
实际包含一些系统数据(包括ROM各个部分的位置和MD5哈希);但是,/dev/block/mmcblk0p28
它是FAT16格式的“内部数据存储”,其类型看起来完全是伪造的。在这种情况下,制造商没有0x82
出于自己的目的重用(Linux swap)类型代码,但是我不确定这种冲突不会发生,因此您不应盲目尝试使用任何看起来像swap的分区-首先检查一下设备大小和分区布局是您期望在SD卡上看到的。
/proc/mtd
对于在SD卡上找到交换分区从来没有用(MTD驱动程序用于访问直接连接的原始闪存芯片,它们不能与外部SD卡一起使用)。
/proc/swaps
吗?