레이블이있는 모든 주요 파티션을 나열하는 방법은 무엇입니까?


11

장치의 모든 파티션과 해당 파티션을 파악하고 싶습니다. 포인트 나 라벨 마운트 (즉 유지되는 파티션 알고 system, recovery, boot, 등). 장치가 독립적이어야합니다 (여러 장치가 있으므로). 목표는 dd그들에게 있으며 어떤 이미지가 무엇인지 알고 있습니다.

파티션 마운트 포인트를 나열하는 명령을 보았 습니까? – 그러나 목표는 마운트 된 파티션의 파티션 목록입니다. 나는 그것들을 모두 필요로한다. 예를 들어 /recovery"정상 작업 모드"로 부팅 할 때 마운트되지 않는다.

지금까지 내 recherche는 여러 가지 접근 방식을 제시했지만 그 중 어느 것도 내가 테스트 한 장치에서 작동하지 않습니다.

  • 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합니까 정말 (내가 처음에 그것을 적용하지 않은 이유입니다, 여기에 장착에 관심이 아니에요) 목적을 충족하지뿐만 아니라, 정말 다치게하지 않습니다)
이지

나는 당신을 위해 또 다른 대답을 작성하고 있습니다. KPARTX를 가리키는 답변이 도움이 되나요? 그것은 보인다 올바른.
HasH_BrowN

그것을보기 전에 전혀 모른다, 나는 두렵다…
Izzy

답변:


7

기존 답변이 이미 표시된 것처럼이를 달성 할 수있는 "고유 한 방법"이없는 것 같습니다. 그래서 나는 아이디어를 전체적으로 결합하기 시작했고, 그것들을 스크립트 (또는 "스크립트 라이브러리")에 합쳐서 순차적으로 점검하게하고 (적중 한 결과가 나올 때까지) Adebar 라는 내 "장치 문서 도구"에 통합했습니다 . 관심있는 사람들은 lib/partitions.lib파일 에서 찾을 수 있습니다 . 으로 Adebar가 하거나 프로젝트를 포크와 그것을 개선 - 오픈 소스 (GPLv2에) 인 복사를 사용하여 주시기 바랍니다.

전체 솔루션은 여기에 게시하는 데 약간 시간이 걸리지 만 (Github에서 가져올 수 있음) Google 정책에 따라 게시물의 일반적인 부분을 적어도 포함시키는 것이 다음과 같습니다.

소스마다 다른 세부 사항 세트가 제공되므로 "최상의 소스"를 먼저 시도한 다음 최소한 무언가가 발견 될 때까지 반복됩니다.

  • /proc/dumchar_info가장 자세한 내용을 제공하므로 먼저 시도하십시오. 행복한 MTK 사용자는 이것을 얻을 것입니다.
  • /proc/mtd 두 번째 최고의 소스입니다.
  • /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- 문자만을 의미하며 반드시 "말하기"는 아닙니다. df마운트 된 장치 만 나열하므로 "정상 모드"로 실행할 때 복구가 표시되지 않으므로 /proc/mounts대신 사용하기가 더 쉽습니다 .
Izzy

유닉스와 리눅스 에서 이것을 물어볼 수도 있습니다 . 그들은 정보를 얻는 방법을 알고있을 것입니다. 내가 연구 한 모든 것은 'fdisk'또는 아무것도 반환하지 않거나 안드로이드 시스템에 존재하지 않는 다른 도구를 말합니다.
Ryan Conrad

그것은 나의 경험이기도했다. 다른 관점으로 SO에 대한 관련 질문을했지만 아직 응답이 없습니다. 불가능을 요구하는 것을 두려워합니다. 지원하는 장치에서 쉽게 달성 할 수 /proc/mtd있지만 불행히도 더 이상 현재 장치로 채워 지지 않는 것 같습니다. 일부 장치에서는 .fstab파일을 찾았 지만 다시는 a) 모두가 아니라 b) 파일이 신뢰할 수없는 것처럼 보이지만 (일부 부분은 분명히 잘못되었습니다).
Izzy

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`

x 마운트

xmount를 사용하면 여러 입력 및 출력 하드 디스크 이미지 유형간에 즉석에서 변환 할 수 있습니다. xmount는 입력 이미지의 가상 표현을 포함하는 FUSE (사용자 공간의 파일 시스템)를 사용하여 가상 파일 시스템을 만듭니다. 가상 표현은 원시 DD, DMG, VHD, VirtualBox의 가상 디스크 파일 형식 또는 VmWare의 VMDK 파일 형식 일 수 있습니다. 입력 이미지는 원시 DD, EWF (전문가 증인 압축 형식) 또는 AFF (고급 법의학 형식) 파일 일 수 있습니다. 또한 xmount는 캐시 파일로 리디렉션되는 출력 파일에 대한 가상 쓰기 액세스도 지원합니다. 이를 통해 QEMU, KVM, VirtualBox, VmWare 등을 사용하여 획득 한 하드 디스크 이미지를 부팅 할 수 있습니다.

https://www.pinguin.lu/xmount


필요하거나 필요한 경우 추가 정보와 정보를 제공 할 수 있습니다.


나는 당신의 열정에 감탄하지만, 나는 여기에있는 장치를 확인했지만 그중 어느 것도 사용할 수있는 명령이 없습니다. 링크에서 추측 할 수있는 도구는 Linux에서 사용할 수있는 도구입니다. 그러나 조사 할 파티션은 설명 된대로 Android 장치에 있으며 Linux 시스템에서 직접 액세스 할 수 없습니다. 또한 파티션을 장치에 매핑해도 해당 내용 (시스템? 데이터? 부트?)이 표시되지 않으므로 kpartx가 종료됩니다. xmount도 해결하는 것 같지 않습니다.
Izzy

나는 내가 무언가에 있다고 생각했다. 나는 노력했다. 답장을 보내 주셔서 감사합니다. 코를 숫돌에 보관합니다.
HasH_BrowN

당신의 노력에 감사드립니다! 결과가 일치하지 않는다는 것입니다. 죄송합니다. 다음을 상상해보십시오 /recovery. 실행중인 장치에서 파티션 을 가져와야합니다 . 정상 모드에서는 마운트되지 않습니다. 선택할 파티션을 어떻게 알 수 있습니까? 위와 함께, 나는 그들을 모두 골라 나중에 찾아야했습니다. 너무 많은 데이터를 생성하고 너무 오래 걸립니다.
Izzy

1
해당 DiskInfo 앱은 마운트 해제 된 복구 파티션을 보여줍니다. 방금 확인했는데 (HTC One V)는 mmcblk0p21입니다. 앱에 대한 자세한 정보입니다.
HasH_BrowN

1
나의 감정, 그러나 어디에. 아마도 우리가 찾고있는 방식을 나열 / 저장하지 않았을 것입니다.
HasH_BrowN

0

DiskInfo 가 원하는 앱이됩니다. 모든 마운트 지점과 마운트되지 않은 모든 파티션 및 모든 임시 파티션이 표시됩니다.

이것은 실제 기능이없는 그래픽 인터페이스 일뿐입니다. 당신의 필요에 완벽합니다. 완전히 부팅 된 장치에서 사용해야합니다. 뿌리는 필요하지 않습니다.

스크린 샷
스크린 샷 (더 큰 변형을 보려면 클릭)


1
죄송합니다 당신은 command-line태그를 놓 쳤어 야합니다 :) 나는 그것을 명시 적으로 작성하는 것이 좋습니다. 이러한 세부 정보를 보여주는 많은 앱을 알고 있지만 adb shell추가 앱을 사용하지 않고을 통해 액세스 / 수집해야 합니다 (항상 장치에 먼저 설치 할 수는 없습니다).
Izzy

죄송합니다. 그것은 내 감정을 상하게하지 않을 것입니다. 내가 이것을 삭제하고 싶습니까?
HasH_BrowN

당신이 필요하다고 느끼는 경우에만. "다른 수단"으로 같은 세부 정보를 찾는 다른 사람에게 유용 할 수 있습니다. 그렇지 않으면 "NAA"로 표시했습니다 (답변 아님). ?) – 그러나 찬성하거나 받아들이지 않습니다;)
Izzy

예, 파티션의 내용 (포함)이 표시되며 실제 내용은 표시되지 않습니다.
HasH_BrowN

1
괜찮습니다. 그 시점부터는 일치합니다! 따라서이 답변을 삭제 하지 마십시오 :)
Izzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.