MTK-6572 기반의 안드로이드 스마트폰(Karbonn-A35)의 파티션 테이블을 이해하려고 합니다. 아이디어는 내부 저장소 파티션( 으로 마운트됨 /data
)을 확대하고 이에 따라 휴대폰 저장 파티션( 로 마운트됨 /mnt/sdcard
)을 축소하여 "디스크가 가득 참" 오류 없이 휴대폰에 더 많은 앱을 설치할 수 있도록 하는 것입니다. 그런데 EBR1 파티션 파일 변경을 진행하기 전에 한 가지 알고 싶습니다. 현재 내 MBR 및 EBR1은 다음과 같습니다(예, SD 카드가 2GB에 불과한데 왜 2TiB 크기의 확장 파티션을 생성하는지 궁금합니다!).
$disktype MBR
--- MBR
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 2.000 TiB (2199023255040 bytes, 4294967295 sectors from 1024)
Type 0x05 (Extended)
Partition 2: 10 MiB (10485760 bytes, 20480 sectors from 18432)
Type 0x83 (Linux)
Partition 3: 10 MiB (10485760 bytes, 20480 sectors from 38912)
Type 0x83 (Linux)
Partition 4: 650 MiB (681574400 bytes, 1331200 sectors from 113152)
Type 0x83 (Linux)
$disktype EBR1
--- EBR1
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 376 MiB (394264576 bytes, 770048 sectors from 1443328)
Type 0x83 (Linux)
Partition 2: 1.293 GiB (1388314624 bytes, 2711552 sectors from 2213376)
Type 0x83 (Linux)
Partition 3: 1.998 TiB (2196501691904 bytes, 4290042367 sectors from 4924928)
Type 0x83 (Linux)
4번째와 5번째 파티션(즉, MBR에서는 파티션 4의 끝, EBR1에서는 파티션 1의 시작)을 보면 일부 겹치는 부분이 있습니다. 네 번째 부문이 말했다 1331200 sectors from 113152
. 그러나 113152에서 1331200 섹터를 계산하면 다음 파티션이 시작되는 곳에서 1444352를 얻습니다. 그러나 다음 파티션(EBR의 첫 번째 파티션)은 이 파티션보다 조금 빠른 1443328에서 시작됩니다. 이게 이 섹터들이 겹치는거 아닌가요(1444352−1443328=1024)? 이 1024개 섹터는 파티션 4와 5의 일부입니까? 아니면 파티션 테이블을 이해하는 데 뭔가 빠졌나요?
그것은 하나이고, 다른 하나는 EBR1의 세 번째 파티션에 관한 것입니다.이것EBR에 관한 Wikipedia 기사에서는 EBR의 처음 두 항목만 사용해야 한다고 나와 있습니다.
EBR의 구조는 기본적으로 MBR과 동일합니다.파티션 테이블의 처음 두 항목만 사용해야 합니다.섹터 끝에 0xAA55의 필수 부트 레코드 서명(또는 매직 넘버)이 있는 것 외에도.
그렇다면 내 장치의 EBR1에 세 개의 항목이 포함된 이유는 무엇입니까? 다시 말하지만, 이것은 비표준적인 것입니까, 아니면 제가 뭔가를 놓치고 있는 것입니까?
편집하다
EBR1의 16진수 출력에는 세 가지 항목이 표시됩니다.
답변1
확장 부트 레코드에는 두 개의 값만 포함되어야 하며 EBR에는 두 값이 모두 포함될 수 있습니다. EBR의 두 번째 항목은 다음 EBR을 가리킵니다(체인의 마지막 항목이 아닌 경우).
disktype 유틸리티는 세 개의 EBR 체인을 살펴보고 각 항목을 다중 항목 MBR인 것처럼 표시합니다.
(이 내용은 Wikipedia 기사의 "값" 섹션에 설명되어 있습니다.)