Tüm büyük bölümleri etiketleriyle nasıl listeleyebilirim?


11

Cihazımdaki tüm bölümleri saygılarıyla birlikte bulmak istiyorum. noktalarını veya etiketleri bağlama (yani tutan hangi bölüm bilmek system, recovery, bootvb.) Bunun cihazdan bağımsız olması gerekiyor (birden fazla cihazım olduğu için). Amaç ddonlara ve hangi görüntünün ne olduğunu bilmektir.

Bölüm bağlama noktalarını listeleme komutu gördüm ? - Ancak, amaç sadece monte edilmiş bölümlerin bir bölüm listesiydi. Hepsine ihtiyacım var ve /recovery"normal çalışma moduna" önyükleme yaparken monte edilmiyor.

Şimdiye kadar, benim recherche bir grup yaklaşım getirdi - ama hiçbiri test ettiğim cihazların hiçbirinde çalışmıyor:

  • cat /proc/mtd: bu boş veya mevcut değil
  • cat /proc/emmc: bu boş veya mevcut değil
  • cat /proc/dumchar_info: mevcut değil (MTK / MediaTek)
  • ls -al /dev/block/platform/*/by-name: mevcut değil veya istenen ayrıntılara sahip değil

Ne kaçırmış olabileceğime dair bir fikrin var mı? Tabii ki tüm /dev/block/mmcblk0p*cihazları yürüyebilir , dökebilir ve daha sonra sıralayabilirim - ama sonra bu araştırmayı her cihazım için tekrarlamak zorunda kaldım (ve yine biri başka bir cihazla geldiğinde), bu çözüm değil.


EDIT: Lütfen bu sorunun etiketine dikkat edin . Bu bilgilere ADB aracılığıyla erişmem gerekecek ve soruşturma için bana gönderilen bir cihaza bazı uygulamalar yüklemek istemiyorum. Tam olarak doğru olmasa da, "adli tıp arka planı" (cihazda değişiklik yok) düşünün;)

Ayrıca ilk yanlış kelime öbeğim için özür dilerim: "bağlama noktaları" bölümün amacını açığa çıkarmak için sadece ilginçtir. Bunları monte etmek / yeniden monte etmek istemiyorum :)


Umarım ek bir etiket ekledim
HasH_BrowN

@HasH_BrowN Gerçekten amacına uygun değil (buraya montajla ilgilenmiyorum, bu yüzden başlangıçta uygulamadım), ama aynı zamanda gerçekten de incinmez;)
Izzy

Sana başka bir cevap daha veriyorum. KPARTX'a işaret etme cevabı sizin için işe yarar mı? O görünüyor doğru.
HasH_BrowN

Görmeden önce bir fikrim yok, korkarım ...
Izzy

Yanıtlar:


7

Mevcut cevapların zaten gösterdiği gibi, bunu başarmanın “benzersiz bir yolu” yoktur. Bu yüzden allover'dan gelen fikirleri bir araya getirmeye, sıralı olarak (iyi bir vuruş yapılana kadar) kontrol etmelerini sağlamak için bir betikte (veya daha çok bir "betik kütüphanesinde") birleştirmeye başladım ve bunu Adebar adlı "Cihaz Dokümantasyon Aracı" na entegre ettim . İlgilenenler lib/partitions.libdosyayı dosyada bulabilirler . As Adebar veya projeyi çatal ve onu geliştirmek - açık kaynak (GPLv2) 'dir, kopyalama ve kullanmak için çekinmeyin.

Tam çözüm burada yayınlamak için biraz uzun (söylendiği gibi, Github'da yakalayabilirsiniz), ancak politikamız postaya en azından genel kısmı dahil etmek olduğundan, işte ne yapar:

Farklı kaynaklar farklı ayrıntılar kümesi sağlar, bu yüzden önce "en iyilerini" dener - sonra en azından bir şey bulunana kadar geri çekilir.

  • /proc/dumchar_infoen fazla ayrıntıyı verir, bu yüzden önce denenir. Mutlu MTK kullanıcıları bunu alacak.
  • /proc/mtd ikinci en iyi kaynaktır.
  • /proc/emmc neredeyse önceki adaylar kadar olmalı, ancak kullanımı biraz zor
  • /dev/block/platform/*/by-name, çapraz kontrol…
  • /proc/partitionsçapraz kontrol ile /proc/mountsbize en azından monte edilen bölümleri verir

Bu nedenle, oluşturduğum komut dosyası, kaynakları toplayabildiği anda durur (örneğin /proc/dumchar_infobulunursa, diğerlerini ayrıştırmaya gerek kalmaz ) bu sırada kaynakları yürür . Hepsi de ayrı işlevlere sokuldu, aynı yapıyı kullanarak veri döndürdü, hatta hepsinden sonuç birleştirilebilir.

Birisi daha iyi bir çözüm bulabilirse, elbette bu fikre her zaman açığım :)


4

Bu soruyu tökezledim. Bir meydan okumayı seviyorum ...

Kullandığım araçlar: BusyBox

Bölümler hakkında bilgi vermek için 3 komut (listelediğiniz) ile geldim

busybox ls -QAl --color=never /dev/block/platform/*/by-name  
Çıktı:
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
Çıktı:
/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
Çıktı:
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

1
Çabaların için teşekkürler, Ryan! Ben de zaten oynadım busybox(maalesef teslim aldığım "bazı arkadaşların cihazlarında" mevcut değil). blkidhangi bölüm olduğunu (önyükleme, kurtarma, vb.) ortaya */by-name/*çıkarmaz ve tüm cihazlarda mevcut değildir (ve olduğunda, adlar bazen oldukça şifrelenir - örneğin, LG Optimus 4X'imde, adların hepsi 3- sadece karakter ve zorunlu olarak "konuşma" değil). dfyalnızca bağlı aygıtları listeler, bu nedenle örneğin "normal modda" çalışırken kurtarma göstermez - bu nedenle /proc/mountsbunun yerine kullanımı daha kolaydır .
Izzy

Bunu Unix ve Linux'ta da sormak isteyebilirsiniz . Bilgileri almanın yollarının farkında olabilirler. Araştırdığım her şey "fdisk" ya da hiçbir şey döndürmeyen ya da android sisteminde bulunmayan diğer araçlar diyor.
Ryan Conrad

Bu da benim deneyimimdi. SO ile ilgili farklı bir bakış açısıyla ilgili bir soru sordum , ama henüz yanıtım yok. Korkarım imkansızı istiyorum. Destekleyen cihazlarda kolayca elde edilebilir /proc/mtd- ancak maalesef artık mevcut cihazlarla doldurulmamış gibi görünüyor. Bazı cihazlarda .fstabdosyaları bile buldum , ama yine, a) hepsi değil ve b) güvenilir görünmese bile (bazı parçalar kesinlikle yanlıştı).
Izzy

1

KPARTX

Kpartx komutu bölüm tablolarını okur ve bölümleri aygıt dosyalarıyla eşleştirir. Cihazlarda ve disk görüntülerinde çalışır. Bu, bir disk görüntüsündeki HFS bölümlerini özel bir blok aygıt dosyasına eşleyebileceğimiz ve bu bölümleri bu aygıt aygıtını bağlı bir aygıtın parçasıymış gibi ele alarak bağlayabileceğimiz anlamına gelir.

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

Bağlantıdaki örnekler düşman MacBook Pro'dur, ancak RAW'daki GNU Linux'a sunulduğu sürece farklı disk görüntüleri iyi çalışmalıdır. (xmount - aşağıya bakın)

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, çoklu giriş ve çıkış sabit disk görüntü türleri arasında anında dönüştürme yapmanızı sağlar. xmount, giriş görüntüsünün sanal temsilini içeren FUSE (Kullanıcı Alanında Dosya Sistemi) kullanarak bir sanal dosya sistemi oluşturur. Sanal gösterim ham DD, DMG, VHD, VirtualBox'ın sanal disk dosya formatında veya VmWare'in VMDK dosya formatında olabilir. Giriş görüntüleri ham DD, EWF (Uzman Tanık Sıkıştırma Formatı) veya AFF (Gelişmiş Adli Format) dosyaları olabilir. Ayrıca, xmount, önbellek dosyasına yönlendirilen çıktı dosyalarına sanal yazma erişimini de destekler. Bu, QEMU, KVM, VirtualBox, VmWare veya benzerlerini kullanarak elde edilen sabit disk görüntülerini önyüklemeyi mümkün kılar.

https://www.pinguin.lu/xmount


Gerekirse veya gerekirse ek ayrıntı ve bilgi sağlayabilirim.


Heyecanınıza hayranım, ama: Burada aldığım cihazları kontrol ettim, hiçbirinde bu komutlar yok. Bağlantılarınızdan tahmin edildiğinde, bunlar Linux için kullanılabilir araçlardır - ancak araştırılacak bölümler açıklandığı gibi Android cihazlardadır ve doğrudan bir Linux makinesinden erişilemez. Dahası: bir bölümün bir aygıta eşlenmesi, üzerinde ne olduğunu (sistem? Veri? Önyükleme?) Göstermez, bu nedenle kpartx dışarıdadır. xmount da bunu çözmek gibi görünmüyor.
Izzy

Gerçekten bir şeylerin üzerinde olduğumu düşündüm. Denedim. Bu kadar çabuk cevap verdiğiniz için teşekkürler. Burnumu öğütme taşına getirecek.
HasH_BrowN

Çabaların için minnettarım! Sadece sonuçlar uyuşmuyor, üzgünüm. Aşağıdakileri hayal edin: /recoveryBölümü çalışan bir cihazdan almam gerekiyor . Bu normal modda monte edilmemiştir. Hangi bölümü seçeceğimi nasıl anlayabilirim? Yukarıdakilerle, hepsini seçip daha sonra öğrenmek zorunda kaldım. Çok fazla veri üretir ve çok uzun sürer.
Izzy

1
Bu DiskInfo uygulaması size monte edilmemiş kurtarma bölümünü gösterecektir. Az önce kontrol ettim, benimki (HTC One V) mmcblk0p21. Bir uygulama için oldukça ayrıntılı.
HasH_BrowN

1
Duygularım, ama nerede. Muhtemelen aradığımız şekilde listelenmemiş / saklanmamış.
HasH_BrowN

0

DiskInfo istediğiniz uygulama olacaktır. Tüm montaj noktalarını, tüm monte edilmemiş ve tüm geçici bölümleri gösterecektir.

Bu, sadece gerçek bir işlevselliğe sahip olmayan bir grafik arayüzdür. İhtiyacınız için mükemmel. Bunun tamamen önyüklemeli aygıtta kullanılması gerekir. Kök gerekli değildir.

Ekran görüntüsü
Ekran görüntüsü (daha büyük versiyon için tıklayın)


1
Üzgünüm, kesinlikle hayır. command-lineEtiketi kaçırmış olmalısın :) Sanırım bunu açıkça yazsam iyi olur. Bu ayrıntıları gösteren bir dizi uygulama biliyorum, ancak onlara adb shellek bir uygulama yardımı olmadan ve bunlara erişmem / toplamam gerekiyor (bunu her zaman bana verilen bir cihaza yükleyemiyorum).
Izzy

Hata. Duygularıma zarar vermeyecek, bunu silmemi istiyorum (yanlış yönlendirme yok)?
HasH_BrowN

Sadece ihtiyacı hissedersen. Aynı ayrıntıları "başka yollarla" arayan bir başkası için yararlı olabilir. Aksi takdirde ben "NAA" (bir cevap değil);) işaretlemişti) Ben aşağı itmek olmaz (istenen ayrıntıları verebilir, kontrol etmedi - sorumda hangi bölümün ne tutar, ?) - ama ikisini de oylamayacak / kabul etmeyecek;)
Izzy

Evet, bölümün ne olduğunu (içerdiğini) gösterecek, sadece gerçek içeriği göstermeyecek.
HasH_BrowN

1
Bu iyi, bu yüzden eşleşiyor! Yani, lütfen değil bu cevabı :) silme
Izzy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.