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
не буде показувати правильну інформацію для розділу swap, поки цей розділ не буде ініціалізований mkswap
. Це означає, що blkid
марно для вашої поточної задачі (пошук того, до якого розділу слід передати mkswap
).
mount
зазвичай показує пристрої під /dev/block/vold
, які названі відповідно до їх основної та незначної кількості. Щоб отримати звичайну назву пристрою, ви можете /proc/partitions
знайти рядок, що містить однакові номери у перших двох стовпцях. Потім ви можете видалити частину з кінця імені пристрою, додати на початку та передати отримане ім'я, щоб побачити таблицю розділів відповідного пристрою.p<number>
/dev/block/
fdisk -l
Пам’ятайте, що якщо ви подивитеся на fdisk -l
вихід для внутрішньої спалаху eMMC, ви можете знайти багато розділів із дивними типами, особливо на пристроях на основі Qualcomm. Наприклад, дивіться таблицю розділів для 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
Коди типу розділів є навіть небезпечно неправильними, оскільки /dev/block/mmcblk0p1
, що оголошено Win95 FAT32 (LBA)
, фактично містить деякі системні дані (включаючи місця розташування та хеші MD5 різних частин ROM); однак, /dev/block/mmcblk0p28
що є "внутрішнім зберіганням даних" у форматі FAT16, є тип, який виглядає абсолютно неправдивим. У цьому випадку виробник не використовував 0x82
код (Linux swap) для власних цілей, але я не впевнений, що подібні зіткнення ніколи не виникають, тому не слід сліпо намагатися використовувати будь-який розділ, схожий на своп - спочатку перевірте, що розмір пристрою та макет розділів - це те, що ви очікуєте побачити на своїй SD-картці.
/proc/mtd
ніколи не корисний для пошуку розділу swap на SD-картці (драйвери MTD використовуються для доступу безпосередньо прикріплених необроблених флеш-фішок, вони не можуть працювати із зовнішніми картами SD).
/proc/swaps
?