Bagaimana cara membuat daftar semua partisi utama dengan label mereka?

11

Saya ingin mengetahui semua partisi pada perangkat saya bersama dengan resp mereka. mount point atau label (yaitu untuk mengetahui partisi memegang system, recovery, boot, dll). Ini harus independen dari perangkat (karena saya memiliki beberapa perangkat). Tujuannya adalah untuk ddmereka dan tahu gambar apa itu.

Saya telah melihat Command to list partisi mount points? - Namun, di sana tujuannya hanyalah daftar partisi dari partisi yang dipasang. Saya membutuhkan mereka semua, dan misalnya /recoverytidak dipasang ketika boot ke "mode kerja normal".

Sejauh ini, penelitian saya telah memunculkan banyak pendekatan - tetapi tidak satupun yang bekerja pada salah satu perangkat yang saya uji:

  • cat /proc/mtd: ini kosong atau tidak ada
  • cat /proc/emmc: ini kosong atau tidak ada
  • cat /proc/dumchar_info: tidak ada (MTK / MediaTek)
  • ls -al /dev/block/platform/*/by-name: baik tidak ada, atau tidak memiliki detail yang diinginkan

Adakah yang bisa saya lewatkan? Tentu saja saya bisa menjalankan semua /dev/block/mmcblk0p*perangkat, membuangnya, dan memilahnya nanti - tapi kemudian saya harus mengulangi penyelidikan itu untuk setiap perangkat saya (dan lagi ketika seseorang menemukan yang lain), jadi itu bukan solusi.


EDIT: Harap perhatikan tag untuk pertanyaan ini. Saya harus mengakses informasi itu melalui ADB, dan tidak ingin menginstal beberapa aplikasi pada perangkat yang diserahkan kepada saya untuk diselidiki. Anggap itu "latar belakang forensik" (tidak ada perubahan pada perangkat), meskipun itu tidak sepenuhnya benar;)

Juga permintaan maaf atas kesalahan penggunaan kata-kata awal saya: "mount point" hanya menarik sejauh mereka mengungkapkan tujuan partisi. Saya tidak ingin me-mount / mengirim ulang mereka :)

Izzy
sumber
Semoga Anda tidak keberatan saya menambahkan tag tambahan
HasH_BrowN
@HasH_BrowN Tidak benar-benar memenuhi tujuan (Saya tidak tertarik memasang di sini, itulah sebabnya saya tidak menerapkannya pada awalnya), tetapi juga tidak benar-benar sakit;)
Izzy
Saya menyusun jawaban lain untuk Anda. Akankah jawaban menunjuk ke KPARTX cocok untuk Anda? Ini tampaknya benar.
HasH_BrowN
Tidak tahu sebelum melihatnya, aku takut ...
Izzy

Jawaban:

7

Seperti yang sudah ditunjukkan oleh jawaban yang ada, tampaknya tidak ada "cara unik" untuk mencapainya. Jadi saya mulai menggabungkan ide-ide dari allover, menggabungkannya ke dalam skrip (atau lebih tepatnya "perpustakaan skrip") untuk memeriksanya secara berurutan (sampai hit yang baik dibuat), dan mengintegrasikannya ke "Perangkat Alat Dokumentasi" saya bernama Adebar . Mereka yang tertarik dapat menemukannya di lib/partitions.libfile. Karena Adebar adalah open-source (GPLv2), jangan ragu untuk menyalin dan menggunakannya - atau bercabang proyek dan memperbaikinya.

Solusi lengkapnya agak panjang untuk diposkan di sini (seperti yang dikatakan, Anda dapat mengambilnya di Github), tetapi karena kebijakan kami adalah untuk memasukkan setidaknya bagian umum dalam pos, inilah yang dilakukannya:

Sumber yang berbeda memberikan serangkaian detail yang berbeda, sehingga ia mencoba yang "terbaik" pertama - dan kemudian berulang hingga setidaknya ada sesuatu yang ditemukan.

  • /proc/dumchar_infomemberikan detail paling banyak, jadi ini dicoba dulu. Pengguna MTK yang senang akan mendapatkan ini.
  • /proc/mtd adalah sumber terbaik kedua.
  • /proc/emmc harus memiliki hampir sebanyak kandidat sebelumnya, tetapi agak sulit digunakan
  • /dev/block/platform/*/by-name, diperiksa ulang dengan ...
  • /proc/partitionsdicek silang dengan /proc/mountsmemberi kita setidaknya partisi yang dipasang

Jadi skrip yang saya buat pada dasarnya berjalan di sumber dalam urutan ini, berhenti segera setelah ia mampu mengumpulkan detail (misalnya jika /proc/dumchar_infoditemukan, tidak perlu menguraikan semua yang lain). Semuanya dimasukkan ke dalam fungsi yang terpisah, mengembalikan data menggunakan struktur yang sama, orang bahkan dapat menggabungkan hasil dari semuanya.

Jika seseorang dapat menemukan solusi yang lebih baik, tentu saja saya selalu terbuka untuk ide :)

Izzy
sumber
4

Saya menemukan pertanyaan ini. Saya suka tantangan ...

Alat yang saya gunakan: BusyBox

Saya telah datang dengan 3 perintah (yang Anda daftarkan) untuk memberikan beberapa info tentang partisi

busybox ls -QAl --color=never /dev/block/platform/*/by-name  
Keluaran:
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "DDR" -> "/dev/block/mmcblk0p4"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "aboot" -> "/dev/block/mmcblk0p5"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "abootf" -> "/dev/block/mmcblk0p16"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "boot" -> "/dev/block/mmcblk0p18"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "cache" -> "/dev/block/mmcblk0p41"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "dbi" -> "/dev/block/mmcblk0p3"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "dbibak" -> "/dev/block/mmcblk0p10"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "drm" -> "/dev/block/mmcblk0p36"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "eksst" -> "/dev/block/mmcblk0p29"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "encrypt" -> "/dev/block/mmcblk0p28"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "factory" -> "/dev/block/mmcblk0p39"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "fota" -> "/dev/block/mmcblk0p34"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "fsc" -> "/dev/block/mmcblk0p25"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "fsg" -> "/dev/block/mmcblk0p24"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "grow" -> "/dev/block/mmcblk0p43"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "laf" -> "/dev/block/mmcblk0p33"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "misc" -> "/dev/block/mmcblk0p32"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "modem" -> "/dev/block/mmcblk0p1"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "modemst1" -> "/dev/block/mmcblk0p21"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "modemst2" -> "/dev/block/mmcblk0p22"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "mpt" -> "/dev/block/mmcblk0p38"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "pad" -> "/dev/block/mmcblk0p8"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "pad1" -> "/dev/block/mmcblk0p23"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "pad2" -> "/dev/block/mmcblk0p27"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "persist" -> "/dev/block/mmcblk0p19"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "rct" -> "/dev/block/mmcblk0p30"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "recovery" -> "/dev/block/mmcblk0p20"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "rpm" -> "/dev/block/mmcblk0p6"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "rpmbak" -> "/dev/block/mmcblk0p11"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "rpmf" -> "/dev/block/mmcblk0p13"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "sbl1" -> "/dev/block/mmcblk0p2"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "sbl1b" -> "/dev/block/mmcblk0p9"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "sdif" -> "/dev/block/mmcblk0p15"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "sns" -> "/dev/block/mmcblk0p37"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "spare1" -> "/dev/block/mmcblk0p17"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "spare2" -> "/dev/block/mmcblk0p31"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "spare3" -> "/dev/block/mmcblk0p35"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "ssd" -> "/dev/block/mmcblk0p26"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "system" -> "/dev/block/mmcblk0p40"
lrwxrwxrwx    1 0        0               20 Jan 30  1970 "tz" -> "/dev/block/mmcblk0p7"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "tzbak" -> "/dev/block/mmcblk0p12"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "tzf" -> "/dev/block/mmcblk0p14"
lrwxrwxrwx    1 0        0               21 Jan 30  1970 "userdata" -> "/dev/block/mmcblk0p42"

busybox blkid
Keluaran:
/dev/block/vold/179:65: LABEL="ANDROID" UUID="87B8-10F1"
/dev/block/mmcblk1p1: LABEL="ANDROID" UUID="87B8-10F1"
/dev/block/mmcblk0p42: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p41: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p40: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p38: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p37: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p36: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p19: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b"
/dev/block/mmcblk0p1: UUID="00BC-614E"

busybox df -ma
Keluaran:
Filesystem           1M-blocks      Used Available Use% Mounted on
tmpfs                     1415         0      1415   0% /dev
devpts                       0         0         0   0% /dev/pts
proc                         0         0         0   0% /proc
sysfs                        0         0         0   0% /sys
selinuxfs                    0         0         0   0% /sys/fs/selinux
debugfs                      0         0         0   0% /sys/kernel/debug
none                         0         0         0   0% /acct
none                      1415         0      1415   0% /sys/fs/cgroup
tmpfs                     1415         0      1415   0% /mnt/asec
tmpfs                     1415         0      1415   0% /mnt/obb
none                         0         0         0   0% /dev/cpuctl
/dev/block/platform/msm_sdcc.1/by-name/system                              2524       715      1808  28% /system
/dev/block/platform/msm_sdcc.1/by-name/userdata                         25620      5066     20514  20% /data
/dev/block/platform/msm_sdcc.1/by-name/cache                           834        13       820   2% /cache
/dev/block/platform/msm_sdcc.1/by-name/persist                            31         4        27  13% /persist
/dev/block/platform/msm_sdcc.1/by-name/modem                            64        56         7  88% /firmware
/dev/block/platform/msm_sdcc.1/by-name/sns                             8         4         4  52% /sns
/dev/block/platform/msm_sdcc.1/by-name/drm                             8         4         3  56% /persist-lg
/dev/block/platform/msm_sdcc.1/by-name/mpt                            31        13        18  41% /mpt
/dev/fuse                25620      5066     20514  20% /mnt/shell/emulated
/dev/block/vold/179:65   60891     10820     50071  18% /mnt/media_rw/sdcard1
/dev/fuse                60891     10820     50071  18% /storage/sdcard1
Ryan Conrad
sumber
1
Terima kasih atas upaya Anda, Ryan! Saya juga sudah bermain busybox(yang sayangnya tidak tersedia di "beberapa perangkat teman" saya terima). blkidtidak mengungkapkan partisi apa itu (boot, recovery, dll), dan */by-name/*tidak ada di semua perangkat (dan ketika itu terjadi, nama-nama itu kadang-kadang cukup samar - misalnya pada LG Optimus 4X saya, semua nama adalah 3- hanya karakter dan tidak harus "berbicara"). dfhanya mencantumkan perangkat yang dipasang, sehingga tidak akan menampilkan mis pemulihan saat berjalan dalam "mode normal" - jadi di sini lebih mudah digunakan /proc/mounts.
Izzy
Anda mungkin juga ingin menanyakan hal ini di Unix & Linux . Mereka mungkin mengetahui cara untuk mendapatkan info. Semua yang saya teliti mengatakan 'fdisk' atau alat lain yang tidak mengembalikan apa-apa, atau tidak ada pada sistem android.
Ryan Conrad
Itu juga pengalaman saya. Saya telah mengajukan pertanyaan terkait pada SO dengan perspektif yang berbeda, tetapi belum mendapat tanggapan di sana. Takut aku bertanya hal yang mustahil. Ini cukup mudah dicapai pada perangkat yang mendukung /proc/mtd- tetapi sayangnya, tampaknya tidak lagi diisi dengan perangkat saat ini. Pada beberapa perangkat saya bahkan menemukan .fstabfile, tetapi sekali lagi, a) tidak pada semua, dan b) bahkan jika, mereka tampaknya tidak dapat diandalkan (beberapa bagian pasti salah di sana).
Izzy
1

KPARTX

Perintah kpartx membaca tabel partisi dan memetakan partisi ke file perangkat. Ini bekerja pada perangkat dan gambar disk. Ini berarti kita dapat memetakan partisi HFS dalam gambar disk ke file perangkat blok khusus dan me-mount partisi tersebut dengan mengatasi file perangkat blok itu seolah-olah itu adalah bagian dari perangkat yang terpasang.

http://linuxsleuthing.blogspot.com/2012/10/christmas-come-early-hfshfs-mounting.html

Contoh dalam tautan adalah untuk MacBook Pro, tetapi gambar disk yang berbeda harus bekerja dengan baik selama mereka disajikan kepada GNU Linux di RAW. (xmount - lihat di bawah)

usage : kpartx [-a|-d|-l] [-f] [-v] wholedisk

-a add partition devmappings
-r devmappings will be readonly
-d del partition devmappings
-u update partition devmappings
-l list partitions devmappings that would be added by -a
-p set device name-partition number delimiter
-g force GUID partition table (GPT)
-f force devmap create
-v verbose
-s sync mode. Don't return until the partitions are created`

xmount

xmount memungkinkan Anda untuk mengkonversi on-the-fly antara beberapa input dan output tipe gambar harddisk. xmount membuat sistem file virtual menggunakan FUSE (Filesystem di Userspace) yang berisi representasi virtual dari gambar input. Representasi virtual dapat dalam bentuk mentah DD, DMG, VHD, format file disk virtual VirtualBox atau dalam format file VMDK VmWare. Gambar input dapat berupa file mentah DD, EWF (Format Kompresi Saksi) atau AFF (Format Forensik Lanjutan). Selain itu, xmount juga mendukung akses tulis virtual ke file output yang dialihkan ke file cache. Ini memungkinkan untuk mem-boot image harddisk yang diperoleh menggunakan QEMU, KVM, VirtualBox, VmWare atau yang serupa.

https://www.pinguin.lu/xmount


Saya dapat memberikan detail dan info tambahan jika diperlukan atau diperlukan.

HasH_BrowN
sumber
Saya mengagumi antusiasme Anda, tetapi: Saya telah memeriksa perangkat yang saya miliki di sini, tidak ada satupun yang memiliki perintah itu. Dipertebak dari tautan Anda, itu adalah alat yang tersedia untuk Linux - tetapi partisi yang akan diselidiki ada di perangkat Android, seperti yang dijelaskan, dan tidak dapat diakses secara langsung dari mesin Linux. Selain itu: memetakan partisi ke perangkat tidak mengungkapkan apa yang ada di dalamnya (sistem? Data? Boot?), Sehingga kpartx keluar. xmount juga tidak terdengar seperti memecahkan itu.
Izzy
Saya benar-benar berpikir saya ke sesuatu. Saya mencoba. Terima kasih telah membalas begitu cepat. Akan menjaga hidungku ke batu gerinda.
HasH_BrowN
Saya berterima kasih atas upaya Anda! Hanya saja hasilnya tidak cocok, maaf. Bayangkan yang berikut ini: Saya perlu mengambil /recoverypartisi dari perangkat yang sedang berjalan. Itu tidak dipasang dalam mode normal. Bagaimana cara menentukan partisi yang akan dipilih? Dengan yang di atas, saya harus memilih semuanya, dan mencari tahu nanti. Menghasilkan terlalu banyak data, dan terlalu lama.
Izzy
1
Aplikasi DiskInfo itu akan menunjukkan kepada Anda partisi pemulihan yang tidak di-mount. Saya baru saja memeriksa, milik saya (HTC One V) adalah mmcblk0p21. Cukup detail untuk sebuah aplikasi.
HasH_BrowN
1
Sentimen saya, tetapi di mana. Mungkin tidak terdaftar / disimpan dengan cara yang kita cari.
HasH_BrowN
0

DiskInfo akan menjadi aplikasi yang Anda inginkan. Ini akan menampilkan semua titik pemasangan, ditambah semua yang tidak terpasang, dan semua partisi temp.

Ini hanya antarmuka grafis, tanpa fungsi nyata lainnya. Sempurna untuk kebutuhan Anda. Ini tidak perlu digunakan pada perangkat yang sepenuhnya boot. Root tidak diperlukan.

Tangkapan layar
Tangkapan layar (klik untuk varian yang lebih besar)

HasH_BrowN
sumber
1
Maaf, sama sekali tidak. Anda pasti melewatkan command-linetag :) Tebak saya akan lebih baik menulis itu secara eksplisit. Saya tahu sejumlah aplikasi yang menunjukkan detail ini, tetapi saya perlu mengakses / mengumpulkannya melalui adb shell, dan tanpa bantuan aplikasi tambahan (tidak dapat selalu menginstalnya terlebih dahulu pada perangkat yang diserahkan kepada saya).
Izzy
Ups. Tidak akan menyakiti perasaan saya, ingin saya menghapus ini (jadi tidak ada penyesatan)?
HasH_BrowN
Hanya jika Anda merasa perlu. Bisa bermanfaat untuk orang lain yang mencari detail yang sama dengan "cara lain". Kalau tidak, saya telah menandainya "NAA" (bukan jawaban);) Saya tidak akan menghapusnya (mungkin memberikan detail yang diminta, saya tidak memeriksa - apakah ini menunjukkan partisi yang menampung apa, seperti yang dijelaskan dalam pertanyaan saya? ?) - tetapi tidak akan membatalkan / menerimanya juga;)
Izzy
Ya itu akan menunjukkan untuk apa partisi (berisi), itu hanya tidak akan menampilkan konten yang sebenarnya.
HasH_BrowN
1
Tidak apa-apa, jadi sejak saat itu cocok! Jadi tolong, jangan tidak menghapus jawaban ini :)
Izzy