Поскольку это предупреждает, вы не должны разрешать обмен на неправильном разделе или вы можете уничтожить ваш телефон:
Хорошо, прежде чем мы пойдем дальше! у предыдущих телефонов была схема разделов, где mmcblck0 был SD-картой (внешней), наш телефон использует mmcblck1 для внешнего sd. Это важно, потому что если вы используете приложение, оно может быть предварительно настроено на использование mmcblck0 в качестве раздела подкачки. Использование этого параметра приведет к тому, что вы будете использовать sbl2 или sbl3 в качестве раздела подкачки. Это заглушит ваш телефон, а руководство по разблокировке будет полезным.
Так что раздел подкачки может быть, /dev/block/mmcblk0p3
если у меня есть 3 раздела (fat32, sdext, swap) на моей SD-карте, или /dev/block/mmcblk0p2
если у меня есть 2 раздела (fat43 и swap), или /dev/block/mmcblk1p?
если у вас другой телефон и т. Д., И неправильный выбор может привести к ошибкам Ваш телефон.
Как вы узнаете, какой раздел какой? Это должен быть единственный раздел на любом диске телефона с swap
файловой системой.
fdisk -l
делает это на Ubuntu , но ничего не выводит в Androidblkid
не показывает раздел подкачкиcat /proc/partitions
перечисляет много разделов, но не указывает, какой это подкачкаcat /proc/swaps
только списки свопов, которые уже используютсяcat /proc/mtd
только говоритdev: size erasesize name
и больше ничегоls /dev/block/vold
перечисляет некоторые разделы как179:64 179:65 179:66
, но не указывает, что они есть?- 4ext recovery покажет его в таблице разделов (
swap swap 129 MiB
), но не скажет имя разработчика - ...
Даже если нет инструмента командной строки, чтобы напечатать это непосредственно, конечно, есть способ вывести это из некоторой другой информации ??
источник
/proc/swaps
?cat /proc/swaps
просто показывает файл подкачки, созданный swapper 2, а не раздел на SD-картеmount
(без параметров), чтобы найти соответствующее блочное устройство (/dev/block/*
), и проверить это по списку/proc/partitions
(или/proc/mtd
)? Если у вас больше нет раздела на вашей карте, ваш раздел подкачки должен быть «другим разделом, заканчивающимся цифрой», если неmount
указаноvold
только. В этом случае сравнение размеров (или временное удаление карты для «сравнения») может помочь.Ответы:
Я установил приложение «Информация о диске» и в настройках включил режим «Эксперт» и « Размонтированные разделы» . Он не говорит «своп», но ясно показывает, что это единственный другой раздел на SD-карте, и он имеет правильный размер, поэтому
/dev/block/mmcblk1p2
должен быть один:Swapper 2 настроен на использование
/dev/block/mmcblk0p3
по умолчанию, поэтому я рад, что не пошел по умолчанию.источник
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. Например, смотрите таблицу разделов для Samsung Galaxy W (GT-I8150):Коды типов разделов там даже опасно неправильны, потому
/dev/block/mmcblk0p1
что, как заявленоWin95 FAT32 (LBA)
, на самом деле содержит некоторые системные данные (включая местоположения и MD5-хэши различных частей ПЗУ); однако,/dev/block/mmcblk0p28
который является «внутренним хранилищем данных» в формате FAT16, имеет тип, который выглядит полностью поддельным. В этом случае производитель не использовал повторно0x82
код типа (Linux swap) для своих собственных целей, но я не уверен, что такие коллизии никогда не происходят, поэтому не следует слепо пытаться использовать любой раздел, который выглядит как swap - сначала проверьте, что размер устройства и расположение разделов - это то, что вы ожидаете увидеть на своей SD-карте./proc/mtd
никогда не используется для поиска раздела подкачки на SD-карте (драйверы MTD используются для доступа к непосредственно подключенным необработанным флэш-чипам, они не могут работать с внешними SD-картами).источник
fdisk -l /dev/block/mmcblk1
говорит/dev/block/mmcblk1p2 30637 31152 132096 82 Linux swap