如何在SD卡上找到交换分区的路径名? -- linux 领域 和 file-system 领域 和 partitions 领域 和 command-line 领域 和 swap 领域 android 相关 的问题

How to find the pathname of the swap partition on SD card?


简体版||繁體版
9
vote

问题

中文

作为 < / a>警告,你不应该在错误的分区上启用交换,或者您可以销毁您的手机:

在我们进一步进一步之前好的!之前的手机有一个分区布局,其中MMCBLCK0是SDCard(外部)我们的手机使用MMCB1CCK1用于外部SD。这很重要,因为如果使用应用程序,它可能会预设使用mmcblck0作为交换分区。使用此设置将导致您使用您的SBL2或SBL3作为交换分区。这将砖和Unbrick指南将是USELES。

因此,交换分区可能是 /dev/block/mmcblk0p3 如果我在我的SD卡上有3个分区(FAT32,SDext,Swap),或 /dev/block/mmcblk0p2 如果我有2个分区(fat43和交换)或 /dev/block/mmcblk1p? 如果您有不同的手机等。并且错误的选择可以拨打您的手机。

如何找到哪个分区?它应该是与 swap 文件系统的任何驱动器上的任何驱动器上的唯一分区。

  • fdisk -l 在ubuntu 上执行此操作,但在Android
  • 中没有输出
  • blkid 没有显示交换分区
  • cat /proc/partitions 列出了很多分区,但不指示swap
  • cat /proc/swaps 只列出已使用
  • cat /proc/mtd 只有说 dev: size erasesize name 而不是别的
  • /dev/block/mmcblk0p20 列出了一些分区作为 /dev/block/mmcblk0p21 ,但并不显示它们是什么?
  • 4ext恢复将在分区表中显示它( /dev/block/mmcblk0p22 ),但没有说dev name
  • ...

即使没有命令行工具直接打印它,肯定有一种方法可以从其他一些信息推断出来?

english

As this warns, you should not enable swap on the wrong partition or you can destroy your phone:

OK before we go any further! previous phones had a partition layout where mmcblck0 was the SDcard (external) our phone uses mmcblck1 for the external sd. This is important because if you use an app it may be preset to use mmcblck0 as swap partition.using this setting will cause you to use your sbl2 or sbl3 as swap partition.this will brick your phone and unbrick guide will be useles.

So the swap partition might be /dev/block/mmcblk0p3 if I have 3 partitions (fat32, sdext, swap) on my SD card, or /dev/block/mmcblk0p2 if I have 2 partitions (fat43 and swap) or /dev/block/mmcblk1p? if you have a different phone, etc. and the wrong choice can brick your phone.

How do you find out which partition is which? It should be the only partition on any drive of the phone with the swap filesystem.

  • fdisk -l does this on Ubuntu, but outputs nothing in Android
  • blkid does not show the swap partition
  • cat /proc/partitions lists a lot of partitions, but doesn't indicate which is the swap
  • cat /proc/swaps only lists swaps that are already being used
  • cat /proc/mtd only says dev: size erasesize name and nothing else
  • ls /dev/block/vold lists some partitions as 179:64 179:65 179:66, but doesn't indicate what they are?
  • 4ext recovery will show it in the table of partitions (swap swap 129 MiB), but doesn't say the dev name
  • ...

Even if there's no command line tool to print it directly, surely there's a way to deduce it from some other information??

              
     
     

回答列表

8
 
vote
vote
最佳答案
 

我安装了磁盘信息app Expert Mode 和卸载分区。它没有说"交换" ,但它清楚地表明它是SD卡上唯一的其他分区,它是正确的大小,因此<代码> ABCDEFGHIJKLMNABCDEFGHIJKLMN0 必须是一个:

屏幕截图

Swapper 2配置为使用 /dev/block/mmcblk0p3 默认情况下,所以我很高兴我没有使用默认值。

 

I installed the Disk Info app and in the options, I enabled Expert mode and Unmounted partitions. It doesn't say "swap", but it shows clearly that it's the only other partition on the SD card and it's the right size, so /dev/block/mmcblk1p2 must be the one:

screenshot of Disk Info

Swapper 2 is configured to use /dev/block/mmcblk0p3 by default, so I'm glad I didn't go with the default.

 
 
8
 
vote

fdisk -l 如果您显式传递整个磁盘设备名称(例如, fdisk -l /dev/block/mmcblk1 );什么不起作用是自动发现块设备(显然是因为Android地放置了 /dev/block 目录下的块设备文件,但 fdisk 希望直接在 /dev中查看这些文件)。因此,一个选项是收集整个磁盘设备的列表( abcdefghijklmn5 /dev/block/mmcblk1 ,...),并使用 abcdefghijklmn7 查看其分区表。这些整个磁盘设备列在 /proc/partitions 中,在相应的分区之前。

blkid 实用程序根本看不到分区表 - 它打开系统已知的所有块设备,并从这些设备上的实际数据检测文件系统类型;因此, fdisk -l /dev/block/mmcblk10 将显示交换分区的正确信息,直到该分区由 fdisk -l /dev/block/mmcblk11 初始化。这意味着 fdisk -l /dev/block/mmcblk12 对当前的任务没用(查找哪个分区应该传递给 fdisk -l /dev/block/mmcblk13 )。

fdisk -l /dev/block/mmcblk14 通常显示 fdisk -l /dev/block/mmcblk15 的设备,这些设备根据其主要和次要命名​​。要获取通常的设备名称,可以查看 fdisk -l /dev/block/mmcblk16 以查找包含前两列中的相同号的行。然后,您可以从设备名称的末尾删除 fdisk -l /dev/block/mmcblk17 零件,在开始时添加 fdisk -l /dev/block/mmcblk18 通过结果名称到 fdisk -l /dev/block/mmcblk19 相应设备的分区表。

要注意,如果您查看内部EMMC闪存的 abcdefghijklmnabcdefghijklmnobcdefghijklmn20 输出,您可能会发现具有奇怪类型的大量分区,尤其是基于高级的设备。例如,请参阅Samsung Galaxy W(GT-I8150)的分区表:

  /dev/block1  

分区类型代码甚至有危险的错误,因为 /dev/block2 ,它被声明 /dev/block3 ,实际上包含一些系统数据(包括各种rom零件的位置和md5散列) ;但是, /dev/block4 ,它是FAT16格式的"内部数据存储" ,具有看起来完全虚伪的类型。在这种情况下,制造商没有为自己的目的重用 abcdefghijklmn/dev/block5 (linux交换)类型代码,但我不确定从未发生这种情况,因此您不应该盲目地尝试使用任何分区它看起来像交换 - 首先检查设备大小和分区布局是否在SD卡上看到的。

/dev/block6 在SD卡上查找交换分区不是有用的(MTD驱动程序用于直接访问的原始闪存芯片,它们无法使用外部SD卡)。

 

fdisk -l works if you pass the whole disk device name explicitly (e.g., fdisk -l /dev/block/mmcblk1); what does not work is automatic discovery of block devices (apparently because Android places block device files under the /dev/block directory, but fdisk expects to see those files directly in /dev). Therefore one option is to collect the list of whole disk devices (/dev/block/mmcblk0, /dev/block/mmcblk1,xc2xa0xe2x80xa6) and look at their partition tables using fdisk -l <device>. These whole disk devices are listed in /proc/partitions before the corresponding partitions.

The blkid utility does not look at the partition table at allxc2xa0xe2x80x94 it opens all block devices known by the system and detects the filesystem type from the actual data on those devices; therefore blkid will not show correct information for the swap partition until that partition is initialized by mkswap. This means that blkid is useless for your current task (finding which partition should be passed to mkswap).

mount usually shows devices under /dev/block/vold, which are named according to their major and minor numbers. To get the usual device name, you can look in /proc/partitions to find a row containing the same numbers in the first two columns. Then you can remove the p<number> part from the end of the device name, add /dev/block/ at the start and pass the resulting name to fdisk -l to see the partition table of the corresponding device.

Beware that if you look at the fdisk -l output for the internal eMMC flash, you may find lots of partitions with strange types, especially on Qualcomm-based devices. E.g., see the partition table for 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 

Partition type codes there are even dangerously wrong, because /dev/block/mmcblk0p1, which is declared Win95 FAT32 (LBA), actually contains some system data (including locations and MD5 hashes of various ROM parts); however, /dev/block/mmcblk0p28, which is the FAT16-formatted xe2x80x9cinternal data storagexe2x80x9d, has a type which looks completely bogus. In this case the manufacturer did not reuse the 0x82 (Linux swap) type code for their own purposes, but I'm not sure that such collisions never occur, so you should not blindly try to use any partition which looks like swapxc2xa0xe2x80x94 first check that the device size and partition layout are what you expect to see on your SD card.

/proc/mtd is never useful for finding a swap partition on SD card (MTD drivers are used to access directly attached raw flash chips, they cannot work with external SD cards).

 
 
 
 

相关问题

1  交换Android的分区?  ( Swap partitions on android ) 
我刚刚安装了 Aparted 在cyanogenmod 9( Android 4.0.4,内核版本2.6.32.9-FXP)并试图将我的SD卡分区以扩展内存。 无论如何,我发现它可以制作交换分区,我熟悉Linux上的交换分区概念,但是Android(至少我的版本或我的内核)支持交换分区吗?它是否有用或只是浪费空间? ...

3  Android是否会交换前景服务使用的内存?  ( Does android swap out memory used by foreground services ) 
查看LG制作的Android Kitkat设备,我看到一个名为 Software Update 的应用程序是 始终 作为前台服务运行(100 )。该服务占据大量内存。 从我可以告诉,该应用程序只是对于OTA更新,这是一个非常罕见的事件(到目前为止从未发生过!)。 为了释放一些工作内存,我正在考虑防止应用程序从启动开始...

9  如何在SD卡上找到交换分区的路径名?  ( How to find the pathname of the swap partition on sd card ) 
作为 < / a>警告,你不应该在错误的分区上启用交换,或者您可以销毁您的手机: 在我们进一步进一步之前好的!之前的手机有一个分区布局,其中MMCBLCK0是SDCard(外部)我们的手机使用MMCB1CCK1用于外部SD。这很重要,因为如果使用应用程序,它可能会预设使用mmcblck0作为交换分区。使用此设置将导...

0  向Android添加交换支持  ( Add swap support to android ) 
我拥有三星Galaxy GT-I9082,相信我,由于其低RAM i.e I. i I. I I. I I. I I. I I. I I. I I. I. I I. I. I I. I. I I. i.e非常慢。我已经从XDA安装了Lineage OS的自定义ROM,但它仍然不支持交换,这是增加智能手机RAM的唯一方...

0  交换分区不适用于华为U8160运行Cyanogenmod 7.2  ( Swap partition not working on huawei u8160 running cyanogenmod 7 2 ) 
我有一个Huawei U8160(也称为:沃达丰858智能),它正在运行Cyanogenmod 7.2(由Madteam于2012年2月7日发布)。 更新到2/7/2012更新后,我发现一个选项要使用交换分区而不是compcache(压缩缓存),因此我将SD卡重新分区,以使用 mini工具分区向导大小和主要(我有一个...

3  在rooted android Kitkat上创建和启用内部存储交换分区  ( Creating and enabling an internal storage swap partition on rooted android kitka ) 
系统: rooted android 4.4手机(实际rom:cm 11 milestone 6),带1GB RAM,大量内部存储,但没有SDCard插槽。我的手机的分区方案是未修饰的氰基MDOD 11。 问题: LowMemoryKiller / OOM处理程序在我的手机上保持杀死锁屏或Incallui或aco...

3  为Android创建应用程序和交换分区  ( Creating app and swap partition for android ) 
我有karbonn a5 +。我不知道多少rom,它完全有了。 当我去设置&gt;申请&gt;管理应用程序,它显示了191MB,免费11MB。 但是,当我打开高级任务杀手时,它可以免费显示220mb。 当我转到系统应用程序时,它显示了相同的信息,它显示:220MB可用。它还显示48%使用的,52%免费。 所以我得出结...

8  CyanogenMod 7.2内核支持互换内存吗?  ( Does cyanogenmod 7 2 kernel support swap memory ) 
我当前的内核(无论是什么内置于verizon motorola droid x的froyo 2.2 rom的royo 2.2 rom)不支持交换内存。 cyanogenmod 7.2内核支持交换内存?这取决于设备特定的构建吗? ...

6  如何知道自定义ROM是否使用现有的交换分区  ( How to know if a custom rom uses existing swap partition ) 
最近我将我的HTC WASE上安装的自定义ROM切换到基于4.1.2的ROM(ParanoIdandroid基于ParanoIdandroid)。 ROM工作正常,但有时设备有几秒钟的严重滞后。我假设这可能是由我在SD卡上创建一次的交换分区引起的,但我以前的roms从未使用过。 如何了解是否使用交换分区或不使用? ...

1  如何通过从内部电话存储中交换内存来增加RAM ..?  ( How to increase ram by swapping memory from internal phone storage ) 
我有 Micromax Canvas Music A88 。我只想将内存从内部电话存储分配给RAM。 内存细节: RAM:512 MB 内存:2 GB 我想将500 MB从内部存储传输到RAM ... 任何人都可以帮助我如何转移... ?? 注意:我不想从micro sd卡换流 ...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有