すべての主要なパーティションをラベル付きでリストする方法は?


11

デバイスのすべてのパーティションとそれらの各パーティションを把握したいと考えています。ポイントやラベルをマウント(つまりは保持されているパーティション知っているsystemrecoveryboot、など)。これはデバイスに依存しない必要があります(複数のデバイスがあるため)。目標はdd彼らにあり、どのイメージが何であるかを知っています。

パーティションのマウントポイントを一覧表示するコマンドを見たことがありますか?–しかし、目標はマウントされたパーティションのパーティションリストだけでした。私はそれらすべてが必要です。たとえば、/recovery「通常の作業モード」で起動するときにマウントされません。

これまでのところ、私の再評価は多くのアプローチをもたらしましたが、それらのどれも、私がテストしたどのデバイスでも機能しません。

  • cat /proc/mtd:これは空か存在しません
  • cat /proc/emmc:これは空か存在しません
  • cat /proc/dumchar_info:存在しない(MTK / MediaTek)
  • ls -al /dev/block/platform/*/by-name:存在しないか、必要な詳細がありません

私が見逃していた可能性のあるアイデアはありますか?もちろん/dev/block/mmcblk0p*、すべてのデバイスを歩き、それらをダンプし、後で整理することもできますが、その後、すべてのデバイス(および誰かが別のデバイスに目を向けたとき)についてその調査を繰り返す必要があったため、これは解決策ではありません。


編集:この質問のタグに注意してください。私はADB経由でその情報にアクセスする必要があり、調査のために渡されたデバイスにアプリをインストールしたくありません。「フォレンジックの背景」(デバイスに変更はない)と考えてください。

また、私の最初の言い間違えについての謝罪:「マウントポイント」は、パーティションの目的を明らかにする今のところ、興味深いだけです。それらをマウント/再マウントしたくない:)


私が追加のタグを追加したことを気にしないことを願っています
HasH_BrowN

@HasH_BrowNんが、本当に(私は私が最初にそれを適用しなかった理由である、ここでは取り付けに興味はないよ)の目的を満たしていない、だけでなく、実際には害はありません。)
イジー

別の回答を作成します。KPARTXを指す答えはあなたのために働きますか?それはそうです、正しいです。
HasH_BrowN 2014

見る前にわからない、怖い...
Izzy

回答:


7

既存の回答がすでに示しているように、それを達成するための「ユニークな方法」はないようです。そこで、私は全体からアイデアを組み合わせ始め、それらをスクリプト(または「スクリプトライブラリ」)に結合して、それらを(適切なヒットが出るまで)順番にチェックし、それをAdebarという名前の「デバイスドキュメントツール」に統合しました。興味のある人はlib/partitions.libファイルでそれを見つけることができます。以下のようAdebarは、オープンソース(GPLv2の)で、それをコピーして使用して自由に感じる-またはプロジェクトをフォークし、それを改善します。

完全なソリューションはここに投稿するには少し時間がかかります(前述のように、Githubで入手できます)が、私たちのポリシーは少なくとも一般的な部分を投稿に含めることなので、次のようになります。

ソースが異なれば詳細のセットも異なるため、最初に「最高のもの」を試し、次に少なくとも何かが見つかるまで再帰します。

  • /proc/dumchar_info詳細がわかるので、これを最初に試します。幸せなMTKユーザーはこれを手に入れます。
  • /proc/mtd 2番目に優れたソースです。
  • /proc/emmc 以前の候補とほぼ同じになるはずですが、使用するのは少し難しいです
  • /dev/block/platform/*/by-name、とクロスチェック…
  • /proc/partitionsとクロスチェックすると/proc/mounts、少なくともマウントされたパーティションが表示されます

したがって、私が作成したスクリプトは、基本的にこの順序でソースをウォークし、詳細を収集できるとすぐに停止します(たとえば、/proc/dumchar_info見つかった場合、他のすべてを解析する必要はありません)。それらはすべて別々の関数に入れられ、まったく同じ構造を使用してデータを返します。それらすべての結果をマージすることもできます。

誰かがより良い解決策を思い付くことができるなら、私はもちろんその考えに常にオープンです:)


4

私はこの質問に出くわしました。私は挑戦が好きです...

使用したツール:BusyBox

私はパーティションに関するいくつかの情報を与えるために3つのコマンド(あなたがリストしたもの)を思いつきました

busybox ls -QAl --color=never /dev/block/platform/*/by-name  
出力:
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
出力:
/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
出力:
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
努力をありがとう、ライアン!私もすでに遊んでbusyboxいます(残念ながら、手に入る「一部の友達のデバイス」では利用できません)。blkidそれがどのパーティションであるか(ブート、リカバリなど)を明らかに*/by-name/*せず、すべてのデバイスに存在しません(そして、存在する場合、名前は時々かなり不可解です-たとえば、私のLG Optimus 4Xでは、名前はすべて3- charsのみであり、必ずしも「話す」必要はありません)。dfマウントされたデバイスのみを一覧表示するため、「通常モード」で実行しているときの回復などは表示されません/proc/mounts。ここでは、代わりに使用する方が簡単です。
イジー

UnixとLinuxでもこれを確認することをお勧めします。彼らは情報を取得する方法を知っているかもしれません。私が調査したすべてのものは、何も返さないか、Androidシステムに存在しない「fdisk」または他のツールについて述べています。
ライアンコンラッド

それも私の経験でした。私は、SOに関して別の見方で関連する質問をしましたが、まだ回答がありません。恐れている私は不可能を求めています。これは、サポートしているデバイスでかなり簡単に達成できます/proc/mtdが、残念ながら、現在のデバイスでは実装されていないようです。一部のデバイスでは.fstabファイルを見つけたことさえありましたが、繰り返しになりますが、a)すべてではなく、b)信頼性がないように見えました(一部のデバイスで間違いがありました)。
イジー

1

KPARTX

kpartxコマンドは、パーティションテーブルを読み取り、パーティションをデバイスファイルにマップします。デバイスとディスクイメージで動作します。つまり、ディスクイメージ内のHFSパーティションを特別なブロックデバイスファイルにマップし、そのブロックデバイスファイルを、接続されたデバイスの一部であるかのようにアドレス指定することで、それらのパーティションをマウントできます。

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

リンクの例はMacBook Proのものですが、RAWでGNU Linuxに提示されている限り、異なるディスクイメージは問題なく機能します。(xmount-以下を参照)

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を使用すると、複数の入力および出力ハードディスクイメージタイプをオンザフライで変換できます。xmountは、入力イメージの仮想表現を含むFUSE(ユーザースペースのファイルシステム)を使用して仮想ファイルシステムを作成します。仮想表現は、未加工のDD、DMG、VHD、VirtualBoxの仮想ディスクファイル形式、またはVmWareのVMDKファイル形式にすることができます。入力画像は、未加工のDD、EWF(Expert Witness Compression Format)、またはAFF(Advanced Forensic Format)ファイルです。さらに、xmountは、キャッシュファイルにリダイレクトされる出力ファイルへの仮想書き込みアクセスもサポートします。これにより、QEMU、KVM、VirtualBox、VmWareなどを使用して、取得したハードディスクイメージを起動できます。

https://www.pinguin.lu/xmount


必要または必要に応じて、追加の詳細と情報を提供できます。


私はあなたの熱意に感心しますが、私がここに持っているデバイスを確認しました。それらのどれもがそれらのコマンドを利用できません。あなたのリンクから推測すると、これらはLinuxで利用可能なツールですが、調査するパーティションは前述のようにAndroidデバイス上にあり、Linuxマシンから直接アクセスすることはできません。さらに、パーティションをデバイスにマッピングしても、その上にあるもの(システム?データ?ブート?)は明らかにならないため、kpartxは公開されません。xmountもそれを解決するようには聞こえません。
イジー

自分が何かに夢中になっていると本当に思った。私は試した。早く返事ありがとうございます。私の鼻を砥石に留めておきます。
HasH_BrowN 2014

あなたの努力に感謝します!結果が一致しないというだけのことです。以下を想像してみてください/recovery。実行中のデバイスからパーティションを取得する必要があります。通常モードではマウントされません。どのパーティションを選択するかをどのように判断しますか?上記で、私はそれらすべてを選び、後で見つける必要がありました。生成するデータが多すぎ、時間がかかりすぎます。
イジー

1
そのDiskInfoアプリは、マウント解除されたリカバリパーティションを表示します。私がチェックしたところ、私の(HTC One V)はmmcblk0p21です。アプリとしてはかなり詳細です。
HasH_BrowN 2014

1
私の感情はどこですか。おそらく私たちが探している方法でリスト/保存されていません。
HasH_BrowN 2014

0

DiskInfo目的のアプリになります。すべてのマウントポイント、マウントされていないすべての一時パーティションが表示されます。

これは単なるグラフィカルインターフェイスであり、他の実際の機能はありません。あなたのニーズに最適です。これは完全に起動したデバイスで使用する必要があります。ルートは必要ありません。

スクリーンショット
スクリーンショット(クリックすると大きなバリエーションが表示されます)


1
すみません、絶対にありません。あなたはcommand-lineタグを見逃していたに違いありません:)私はそれを明示的に書くほうがいいと思います。これらの詳細を表示する多くのアプリを知ってadb shellいますが、追加のアプリを使用せずに、それらを介してアクセス/収集する必要があります(私に渡されたデバイスに常に最初にインストールできるとは限りません)。
イジー

おっと。私の気持ちを害することはありません、これを削除してほしいのです(それで誤解はありません)?
HasH_BrowN 2014

あなたが必要を感じた場合のみ。「他の手段」で同じ詳細を探している誰かにとって役立つかもしれません。それ以外の場合は、「NAA」(回答なし)とマークしました;)ダウン投票しません(要求された詳細が表示される可能性があるため、確認しませんでした。質問に記載されているように、どのパーティションに何が保持されているかを示します) ?)–ただし、賛成/反対しない;)
イジー

はい、それはパーティションが(含んでいる)の目的を示します、それは実際の内容を示さないだけです。
HasH_BrowN 2014

1
それでいいので、その時点から一致します。したがって、この回答削除しないでください:)
Izzy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.