Як знайти ім'я шляху замінного розділу на SD-картці?


9

Оскільки це застерігає, не слід вмикати заміну на неправильному розділі, або ви можете знищити телефон:

Добре, перш ніж ми підемо далі! попередні телефони мали макет розділів, де mmcblck0 був SDcard (зовнішній), наш телефон використовує mmcblck1 для зовнішнього SD. Це важливо, тому що якщо ви використовуєте додаток, можливо, буде попередньо встановлено використання mmcblck0 як swap partition.використання цього параметра змусить вас використовувати sbl2 або sbl3 як swap partition. Це заблокує ваш телефон і скасує посібник буде придатним.

Таким чином, міняти розділ може бути, /dev/block/mmcblk0p3якщо у мене на SD-картці є 3 розділи (fat32, sdext, swap) або /dev/block/mmcblk0p2якщо у мене є 2 розділи (fat43 та swap) або /dev/block/mmcblk1p?якщо у вас інший телефон тощо, і неправильний вибір може призвести до порушення твій телефон.

Як дізнатися, який саме розділ? Це має бути єдиний розділ на будь-якому диску телефону з swapфайловою системою.

  • fdisk -lробить це на Ubuntu , але нічого не видає в Android
  • blkid не показує розділ swap
  • cat /proc/partitions перераховує багато розділів, але не вказує, що є свопом
  • cat /proc/swapsперелічує лише свопи, які вже використовуються
  • cat /proc/mtdтільки каже dev: size erasesize nameі більше нічого
  • ls /dev/block/voldперераховує деякі розділи як 179:64 179:65 179:66, але не вказує, що вони є?
  • 4ext відновлення покаже його в таблиці розділів ( swap swap 129 MiB), але не говорить імені розробника
  • ...

Навіть якщо немає інструменту командного рядка для його прямого друку, напевно є спосіб вивести його з якоїсь іншої інформації ??


Щось у вас є /proc/swaps?
ott--

@ ott--: cat /proc/swapsпросто показує свопфіл, створений свопперами 2, а не розділом на SD-карті
ендоліт

Як ви вже знаєте пристрій (SDCard), чи намагалися ви mount(без параметрів) знайти відповідний блок пристрою ( /dev/block/*) і перевірити це у списку /proc/partitions(або /proc/mtd)? Якщо у вас немає подальшого розділу на вашій картці, ваш розділ для заміни повинен бути "іншим, що закінчується цифрою", якщо не mountвказано voldлише на. У цьому випадку може допомогти порівняння розмірів (або тимчасове вилучення картки для "різниці").
Izzy

Відповіді:


8

Я встановив додаток «Інформація про диск» і в налаштуваннях увімкнув « Експертний режим» та « Відключені розділи» . Він не говорить "swap", але чітко показує, що це єдиний інший розділ на SD-картці, і він потрібного розміру, тому /dev/block/mmcblk1p2повинен бути один:

скріншот інформації про диск

Swapper 2 налаштований на використання /dev/block/mmcblk0p3за замовчуванням, тому я радий, що не пішов із замовчуванням.


8

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).


1
Ага! fdisk -l /dev/block/mmcblk1каже/dev/block/mmcblk1p2 30637 31152 132096 82 Linux swap
endolith
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.