Bagaimana menemukan pathname dari partisi swap pada kartu SD?

9

Saat ini diperingatkan, Anda seharusnya tidak mengaktifkan swap pada partisi yang salah atau Anda dapat menghancurkan ponsel Anda:

OK sebelum kita melangkah lebih jauh! telepon sebelumnya memiliki tata letak partisi di mana mmcblck0 adalah SDcard (eksternal) telepon kami menggunakan mmcblck1 untuk sd eksternal. Ini penting karena jika Anda menggunakan aplikasi, mungkin sudah diatur untuk menggunakan mmcblck0 sebagai partisi swap. Menggunakan pengaturan ini akan menyebabkan Anda menggunakan sbl2 atau sbl3 sebagai partisi swap. Ini akan merusak ponsel Anda dan panduan unbrick akan digunakan.

Jadi partisi swap mungkin /dev/block/mmcblk0p3jika saya memiliki 3 partisi (fat32, sdext, swap) pada kartu SD saya, atau /dev/block/mmcblk0p2jika saya memiliki 2 partisi (fat43 dan swap) atau /dev/block/mmcblk1p?jika Anda memiliki telepon yang berbeda, dll. Dan pilihan yang salah dapat merusak telepon Anda.

Bagaimana Anda mengetahui mana partisi mana? Itu harus menjadi satu-satunya partisi pada drive apa pun ponsel dengan sistem swapfile.

  • fdisk -lmelakukan ini di Ubuntu , tetapi tidak menghasilkan apa-apa di Android
  • blkid tidak menunjukkan partisi swap
  • cat /proc/partitions daftar banyak partisi, tetapi tidak menunjukkan swap yang mana
  • cat /proc/swapshanya daftar swap yang sudah digunakan
  • cat /proc/mtdhanya mengatakan dev: size erasesize namedan tidak ada yang lain
  • ls /dev/block/volddaftar beberapa partisi sebagai 179:64 179:65 179:66, tetapi tidak menunjukkan apa itu?
  • Pemulihan 4ext akan menampilkannya di tabel partisi ( swap swap 129 MiB), tetapi tidak menyebutkan nama dev
  • ...

Bahkan jika tidak ada alat baris perintah untuk mencetaknya secara langsung, pasti ada cara untuk menyimpulkannya dari beberapa informasi lain ??

endolit
sumber
Apakah ada sesuatu dalam dirimu /proc/swaps?
ott--
@ ott--: cat /proc/swapshanya menunjukkan swapfile yang dibuat oleh swapper 2, bukan partisi pada kartu SD
endolith
Seperti yang telah Anda ketahui perangkat (SDCard), sudahkah Anda mencoba menggunakan mount(tanpa parameter) untuk menemukan perangkat blok yang sesuai ( /dev/block/*), dan memeriksa yang bertentangan dengan daftar /proc/partitions(atau /proc/mtd)? Jika Anda tidak memiliki partisi lebih lanjut pada kartu Anda, partisi swap Anda harus "yang lain berakhir dengan angka", kecuali hanya mountmenunjuk ke sana vold. Dalam hal itu, membandingkan ukuran (atau melepas kartu untuk "diff" sementara) mungkin membantu.
Izzy

Jawaban:

8

Saya menginstal aplikasi Disk Info dan dalam opsi, saya mengaktifkan mode Pakar dan partisi yang dilepas . Itu tidak mengatakan "swap", tetapi itu menunjukkan dengan jelas bahwa itu adalah satu-satunya partisi lain pada kartu SD dan itu adalah ukuran yang tepat, jadi /dev/block/mmcblk1p2harus menjadi satu:

tangkapan layar Info Disk

Swapper 2 dikonfigurasi untuk digunakan /dev/block/mmcblk0p3secara default, jadi saya senang saya tidak pergi dengan default.

endolit
sumber
8

fdisk -lberfungsi jika Anda memasukkan seluruh nama perangkat disk secara eksplisit (misalnya, fdisk -l /dev/block/mmcblk1); yang tidak berfungsi adalah penemuan otomatis perangkat blok (tampaknya karena Android menempatkan file perangkat di bawah /dev/blockdirektori, tetapi fdiskberharap untuk melihat file-file itu secara langsung masuk /dev). Oleh karena itu salah satu pilihan adalah untuk mengumpulkan daftar perangkat seluruh disk ( /dev/block/mmcblk0, /dev/block/mmcblk1, ...) dan melihat tabel partisi mereka menggunakanfdisk -l <device> . Seluruh perangkat disk ini terdaftar /proc/partitionssebelum partisi yang sesuai.

The blkidutilitas tidak melihat tabel partisi sama sekali - membuka semua perangkat blok yang dikenal oleh sistem dan mendeteksi jenis filesystem dari data aktual pada perangkat tersebut; karena itu blkidtidak akan menampilkan informasi yang benar untuk partisi swap sampai partisi tersebut diinisialisasi oleh mkswap. Ini artinyablkid tidak berguna untuk tugas Anda saat ini (menemukan partisi mana yang harus diteruskan mkswap).

mountbiasanya menunjukkan perangkat di bawah /dev/block/vold, yang diberi nama sesuai dengan nomor utama dan kecil mereka. Untuk mendapatkan nama perangkat yang biasa, Anda dapat melihat /proc/partitionsuntuk menemukan baris yang berisi angka yang sama di dua kolom pertama. Kemudian Anda dapat menghapus bagian dari ujung nama perangkat, tambahkan di awal dan berikan nama yang dihasilkan untuk melihat tabel partisi perangkat yang sesuai.p<number>/dev/block/fdisk -l

Berhati-hatilah bahwa jika Anda melihat fdisk -loutput untuk flash eMMC internal, Anda mungkin menemukan banyak partisi dengan tipe aneh, terutama pada perangkat berbasis Qualcomm. Misalnya, lihat tabel partisi untuk 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

Kode jenis partisi bahkan salah, karena /dev/block/mmcblk0p1, yang dinyatakan Win95 FAT32 (LBA), sebenarnya berisi beberapa data sistem (termasuk lokasi dan hash MD5 dari berbagai bagian ROM); namun,/dev/block/mmcblk0p28 yang merupakan "penyimpanan data internal" yang diformat FAT16, memiliki tipe yang terlihat sangat palsu. Dalam hal ini pabrikan tidak menggunakan kembali 0x82kode jenis (Linux swap) untuk tujuan mereka sendiri, tetapi saya tidak yakin bahwa tabrakan seperti itu tidak pernah terjadi, jadi Anda tidak boleh secara membabi buta mencoba menggunakan partisi apa pun yang terlihat seperti swap - pertama periksa apakah ukuran perangkat dan tata letak partisi adalah apa yang Anda harapkan untuk dilihat pada kartu SD Anda.

/proc/mtd tidak pernah berguna untuk menemukan partisi swap pada kartu SD (driver MTD digunakan untuk mengakses chip flash mentah yang terpasang langsung, mereka tidak dapat bekerja dengan kartu SD eksternal).

Sergey Vlasov
sumber
1
Aha! fdisk -l /dev/block/mmcblk1mengatakan/dev/block/mmcblk1p2 30637 31152 132096 82 Linux swap
endolith