SDカードのスワップパーティションのパス名を見つける方法は?


9

これは警告し、間違ったパーティションにスワップを有効にするべきではありませんか、あなたの携帯電話を破壊することができます。

先に進む前にOK!以前の電話のパーティションレイアウトはmmcblck0がSDカード(外部)でしたが、私たちの電話は外部sdにmmcblck1を使用していました。アプリを使用する場合、mmcblck0をスワップパーティションとして使用するように事前設定されている可能性があるため、これは重要です。この設定を使用すると、sbl2またはsbl3をスワップパーティションとして使用することになります。これにより、電話がブリックされ、ガイドのブリックが解除されます。

したがって、スワップパーティションは/dev/block/mmcblk0p3、SDカードに3つのパーティション(fat32、sdext、swap)がある/dev/block/mmcblk0p2場合、または2つのパーティション(fat43とswap)がある場合/dev/block/mmcblk1p?、または別の電話などを使用していて、間違った選択でブリックする場合があります。あなたの電話。

どうやって見つけるんどのこれはパーティション?これは、swapファイルシステムを備えた電話のドライブ上の唯一のパーティションである必要があります。

  • fdisk -lUbuntuこれを行いますが、Android では何も出力しません
  • 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リカバリはパーティションのテーブル(swap swap 129 MiB)にそれを表示しますが、開発者名は言いません
  • ...

直接印刷するコマンドラインツールがない場合でも、他の情報から推測する方法は確かにありますか?


あなたの中に何かあります/proc/swapsか?
ott-- 2013

@ ott--:cat /proc/swapsSDカードのパーティションではなく、スワッパー2によって作成されたスワップファイルを表示するだけ
エンドリス

デバイス(SDCard)をすでに知っているので、(mountパラメーターなしで)を使用して対応するブロックデバイス(/dev/block/*)を見つけ、それを/proc/partitions(または/proc/mtd)のリストと照合してみましたか?カードにそれ以上のパーティションがない場合、スワップパーティションは、特にmount指示されていない限り、「数字で終わるもう一方のパーティション」である必要がありますvold。その場合は、サイズを比較する(または一時的にカードを「diff」として削除する)と役立つ場合があります。
イジー

回答:


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は、最初の2つの列に同じ番号が含まれている行を検索します。次に、デバイス名の末尾から部分を削除し、先頭に追加し、結果の名前を渡して、対応するデバイスのパーティションテーブルを表示できます。p<number>/dev/block/fdisk -l

あなたが見ればことに注意してくださいfdisk -l内部のeMMCフラッシュ用出力、あなたは特にクアルコムベースのデバイス上で、奇妙な種類のパーティションをたくさん見つけることがあります。たとえば、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ドライバーは、直接接続されたrawフラッシュチップにアクセスするために使用され、外部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.