SD 카드에서 스왑 파티션의 경로 이름을 찾는 방법은 무엇입니까?


9

으로 경고, 잘못된 파티션에 스왑을 사용하지해야하거나 휴대 전화를 파괴 할 수있다 :

더 나아 가기 전에 OK! 이전 전화는 mmcblck0이 SD 카드 (외부) 인 파티션 레이아웃을 가졌으며 외부 전화에는 mmcblck1을 사용합니다. 앱을 사용하는 경우 mmcblck0을 스왑 파티션으로 사용하도록 미리 설정되어있을 수 있으므로이 설정을 사용하면 sbl2 또는 sbl3을 스왑 파티션으로 사용하게됩니다.

따라서 스왑 파티션은 /dev/block/mmcblk0p3SD 카드에 3 개의 파티션 (fat32, sdext, swap) /dev/block/mmcblk0p2이 있거나 2 개의 파티션 (fat43 및 swap)이 있거나 /dev/block/mmcblk1p?전화 번호가 다른 경우 잘못된 선택이 될 수 있습니다. 너의 폰.

어떤 파티션이 무엇인지 어떻게 알 수 있습니까? swap파일 시스템 이있는 전화기의 모든 드라이브에서 유일한 파티션이어야합니다 .

  • fdisk -l우분투에서는 이것을 하지만 안드로이드에서는 아무것도 출력하지 않습니다.
  • blkid 스왑 파티션을 표시하지 않습니다
  • cat /proc/partitions 많은 파티션을 나열하지만 어느 것이 스왑인지는 나타내지 않습니다.
  • cat /proc/swaps이미 사용중인 스왑 만 나열합니다
  • cat /proc/mtd말만 dev: size erasesize name하고 다른 것은 없다
  • ls /dev/block/vold일부 파티션을으로 나열 179:64 179:65 179:66하지만 이들이 무엇인지 나타내지 않습니까?
  • 4ext recovery는 파티션 테이블 ( swap swap 129 MiB) 에이를 표시 하지만 개발자 이름을 말하지는 않습니다.
  • ...

직접 인쇄 할 명령 줄 도구가 없더라도 다른 정보에서 추론 할 수있는 방법이 있습니까?


당신의 무언가가 /proc/swaps있습니까?
ott-- 2014 년

@ ott-- : cat /proc/swapsSD 카드의 파티션이 아니라 스왑 퍼 2에 의해 생성 된 스왑 파일 만 보여줍니다
endolith

이미 장치 (SDCard)를 알고 있으므로 mount매개 변수없이 ()없이 해당 블록 장치 ( /dev/block/*) 를 찾고 /proc/partitions(또는 /proc/mtd) 목록과 비교하여 확인하려고 했습니까? 당신이 당신의 카드에 더 이상의 파티션이없는 경우 스왑 파티션하지 않는 한 "숫자로 끝나는 다른 하나는"이되어야 mount지적에 vold만. 이 경우 크기를 비교하거나 일시적으로 "diff"카드를 제거하면 도움이 될 수 있습니다.
Izzy

답변:


8

Disk Info 앱을 설치했고 옵션에서 전문가 모드마운트 해제 파티션을 활성화했습니다 . "스왑"이라고 말하지는 않지만 SD 카드의 유일한 파티션이며 크기가 적당하다는 것을 분명히 보여줍니다 /dev/block/mmcblk1p2.

디스크 정보 스크린 샷

Swapper 2는 /dev/block/mmcblk0p3기본적 으로 사용하도록 구성되어 있으므로 기본값 을 사용 하지 않아서 기쁩니다.


8

fdisk -l전체 디스크 장치 이름을 명시 적으로 전달하면 작동합니다 (예 :) fdisk -l /dev/block/mmcblk1. 작동하지 않는 것은 블록 장치의 자동 검색입니다 (Android는 블록 장치 파일을 /dev/block디렉토리 아래에 배치 하지만 fdisk해당 파일은에서 직접 볼 것으로 예상하기 때문에 /dev)입니다. 따라서 하나의 옵션은 전체 디스크 장치의 목록 (수집하는 것입니다 /dev/block/mmcblk0, /dev/block/mmcblk1사용하여 파티션 테이블에서, ...) 및보고 . 이러한 전체 디스크 장치는 해당 파티션 앞에 나열 됩니다.fdisk -l <device>/proc/partitions

blkid유틸리티는 파티션 테이블을 전혀 보지 않습니다. 시스템에서 알려진 모든 블록 장치를 열고 해당 장치의 실제 데이터에서 파일 시스템 유형을 감지합니다. 따라서 blkid해당 파티션이로 초기화 될 때까지 스왑 파티션에 대한 올바른 정보가 표시되지 않습니다 mkswap. 이것은 blkid현재 작업에 쓸모가 없다는 것을 의미합니다 (에 전달할 파티션 찾기 mkswap).

mount일반적으로 /dev/block/vold주요 및 부 번호에 따라 이름이 지정된 장치가 표시 됩니다. 일반적인 장치 이름을 얻으려면 /proc/partitions처음 두 열에서 같은 숫자를 포함하는 행을 찾으십시오. 그런 다음 장치 이름의 끝 에서 부품을 제거하고 시작 부분에 추가 한 다음 결과 이름을 전달 하여 해당 장치의 파티션 테이블을 볼 수 있습니다.p<number>/dev/block/fdisk -l

fdisk -l내부 eMMC 플래시 의 출력을 보면 특히 Qualcomm 기반 장치에서 이상한 유형의 파티션이 많이있을 수 있습니다. 예를 들어 Samsung Galaxy W (GT-I8150)의 파티션 테이블을 참조하십시오.

# fdisk -lu /dev/block/mmcblk0                                  

Disk /dev/block/mmcblk0: 3959 MB, 3959422976 bytes
1 heads, 16 sectors/track, 483328 cylinders, total 7733248 sectors
Units = sectors of 1 * 512 = 512 bytes

              Device Boot      Start         End      Blocks  Id System
/dev/block/mmcblk0p1               1      212991      106495+  c Win95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary
/dev/block/mmcblk0p2   *      212992      213991         500  4d Unknown
Partition 2 does not end on cylinder boundary
/dev/block/mmcblk0p3          213992      221183        3596  46 Unknown
Partition 3 does not end on cylinder boundary
/dev/block/mmcblk0p4          221184     7733247     3756032   5 Extended
Partition 4 does not end on cylinder boundary
/dev/block/mmcblk0p5          229376      239615        5120  47 Unknown
/dev/block/mmcblk0p6          245760      285759       20000  49 Unknown
/dev/block/mmcblk0p7          286720      292863        3072  58 Unknown
/dev/block/mmcblk0p8          294912      306175        5632  48 Unknown
/dev/block/mmcblk0p9          311296      324271        6488  50 Unknown
/dev/block/mmcblk0p10         327680      333823        3072  4a Unknown
/dev/block/mmcblk0p11         335872      342015        3072  4b Unknown
/dev/block/mmcblk0p12         344064      360447        8192  90 Unknown
/dev/block/mmcblk0p13         360448      375807        7680  91 Unknown
/dev/block/mmcblk0p14         376832      387071        5120  92 Unknown
/dev/block/mmcblk0p15         393216     1488895      547840  93 Unknown
/dev/block/mmcblk0p16        1490944     1613823       61440  94 Unknown
/dev/block/mmcblk0p17        1613824     3887103     1136640  95 Unknown
/dev/block/mmcblk0p18        3891200     3993599       51200  96 Unknown
/dev/block/mmcblk0p19        3997696     3998695         500  97 Unknown
/dev/block/mmcblk0p20        4005888     4013079        3596  98 Unknown
/dev/block/mmcblk0p21        4014080     4024319        5120  99 Unknown
/dev/block/mmcblk0p22        4030464     4070463       20000  9a Unknown
/dev/block/mmcblk0p23        4071424     4081663        5120  9b Unknown
/dev/block/mmcblk0p24        4087808     4101807        7000  9c Unknown
/dev/block/mmcblk0p25        4104192     4114431        5120  9d Unknown
/dev/block/mmcblk0p26        4120576     4130815        5120  9e Unknown
/dev/block/mmcblk0p27        4136960     4147199        5120  9f BSD/OS
/dev/block/mmcblk0p28        4153344     7733247     1789952  a0 Thinkpad hibernation

/dev/block/mmcblk0p1, 선언 된 파티션 유형 코드에는 Win95 FAT32 (LBA)실제로 일부 시스템 데이터 (여러 가지 ROM 부분의 위치 및 MD5 해시 포함)가 포함되어 있기 때문에 위험 합니다. 그러나 /dev/block/mmcblk0p28FAT16 형식의 "내부 데이터 저장소"인에는 완전히 가짜로 보이는 유형이 있습니다. 이 경우 제조업체는 0x82자체 목적으로 (Linux 스왑) 유형 코드를 재사용하지 않았지만 그러한 충돌이 발생하지 않을 것이라고 확신하지 못하므로 스왑처럼 보이는 파티션을 맹목적으로 사용해서는 안됩니다. 장치 크기 및 파티션 레이아웃은 SD 카드에 표시 될 것입니다.

/proc/mtd SD 카드에서 스왑 파티션을 찾는 데 절대 유용하지 않습니다 (MTD 드라이버는 직접 연결된 원시 플래시 칩에 액세스하는 데 사용되며 외부 SD 카드로는 작동하지 않습니다).


1
아하! fdisk -l /dev/block/mmcblk1말한다/dev/block/mmcblk1p2 30637 31152 132096 82 Linux swap
endolith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.