如何在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
  • ...

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

英文原文

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  Linux部署:制作新磁盘映像(大小)...失败  ( Linux deploy making new disk image size fail ) 
我正在尝试使用带有android 4.3 / slimkat 4.4.4的我的rooted Galaxy S3上的Linux部署。但是当我按安装时: Updating configuration file ... done >>> begin install Checking mount points ... d...

3  Samsung Galaxy Tab S2在Bootloop中(标准恢复无效!)  ( Samsung galaxy tab s2 in bootloop standard recovery not working ) 
嗨热情社区!我需要你的帮助和建议! 设备: 三星Galaxy Tab S2(SM-T819) 用Android 6秒钟购买 - &gt;上周更新到Android 7 没有植根,原始固件,官方更新(根本没有乱搞......) 我在没有sd卡或sim 的情况下使用它 问题: 在启动循环中粘在一起显示Gala...

26  如何使用shell命令并与下面的Linux系统进行交互?  ( How can i use shell commands and interact with the linux system underneath ) 
Android基于Linux,并在下面有一个Linux内核。有没有办法,我可以使用shell命令并与Linux系统直接交互?例如。一个可以访问Linux系统的shell应用程序? ...

1  直接在Ubuntu或Gentoo上运行Android应用程序  ( Running android apps directly on ubuntu or gentoo ) 
我想知道是否可以直接在像Ubuntu或Gentoo等Linux发行版上运行Android应用程序? 我的意思是在Linux上运行应用程序在没有VirtualBox的帮助下,在Google Chroom上的模拟器(如Genymotion),在Google Chroom ... 是否可以以这样的方式编译Linux内核?...

2  如何在华硕EEE Pad滑块上双启动Ubuntu(SL101)?  ( How to dual boot ubuntu on asus eee pad slider sl101 ) 
我能够在我的华硕滑块SL101上运行Ubuntu在Chroot环境中(原始TF101华硕EEE焊盘变压器的堂兄)。 但是,由于各种原因,我希望能够突然启动到Ubuntu或Android。 我目前正在运行Cyanogenmod 9 IC,并将设备扎根。 要注意的另一件事是,过去使用nvflash的任何尝试...似乎失败...

25  如何在Linux上获取我的设备检测到我的设备?  ( How do i get my device detected by adb on linux ) 
我刚刚获得了我的闪亮新的 wileyfox swift - 然后将我使用我想要 oem unlock 和root(因为我通常与新设备有关; )麻烦是,虽然 usb-debugging 在设备上启用,并且存在相应的行<代码> abcdefghijklmn3 存在,因此 adb devices 。 我知道在这个网站上...

0  如何在内核级别禁用我的Android手机中的GPS功能?  ( How can i disable the gps functionality from my android phone at the kernel leve ) 
如何在内核级别禁用我的Android手机中的GPS功能?我知道这需要(虽然不确定)禁用GPS或内核模块的设备驱动程序,但是如何完全进行? 通过内核级别,我的意思是,GPS不再像软形式一样,它的硬件仍然存在,但它没有使用。如果我禁用IT应用程序级别,它仍然可以跟踪我,应用程序可能会访问它。我想要的是硬件和软件之间没有通...

3  如何在启动时运行可执行文件并将其保持运行?  ( How to run an executable on boot and keep it running ) 
我有一个来自 ndk-build 程序的可执行构建。我想在rooted android设备上运行它。 Android将杀死我可执行的可能性是多少? 使用 adb shell ,我能够使用以下命令执行我的可执行文件: adb push executable /sdcard adb shell device:/ $ ...

7  如何通过USB将手机连接到内部SD?  ( How do i get my phone to connect the internal sd by usb ) 
我最近扎根并升级了我的三星Galaxy S2到版本4,IC。 自这样做,当我通过USB将我的设备连接到我的Ubuntu计算机时,只有12GB内部存储器在我的桌面上显示,并在Banshee中显示。 如何让我的16GB SD卡也可以安装在Ubuntu上,以便它可用于传输音乐文件等? 更新 根据下面的一个答案,也是我现在...

12  从Ubuntu到Android的流声  ( Stream sound from ubuntu to android ) 
当有人打电话给我时,我厌倦了在桌面和Android之间重新打开我的耳机。有没有办法从ubuntu流出声音(我使用 pulseaudio )通过WiFi或USB的Android手机? ...

0  Android Studio 3在Ubuntu 17.04中没有看到连接设备中的Nexus 7运行应用程序  ( Android studio 3 in ubuntu 17 04 not see nexus 7 in connected devices to run the ) 
我在Ubuntu 17.04和Nexus 7中使用了Android Studio 3.1.1。 Android Studio未在窗口中的"连接设备" 列表中未查看设备以运行应用程序: 设备已被激活为具有MTP USB类型的调试USB,并且我已经选择"确定" ,以便每次提示都要求与PC连接USB连接。 它在连接...

10  连接到PC时,Nexus 7没有SDCard文件夹  ( Nexus 7 doesnt have sdcard folder when connected to pc ) 
我刚刚买了一个nexus 7.当我将它插入我的笔记本电脑时,它显示媒体文件夹,我想访问SDCard文件夹,就像其他设备一样。如何传输文件? 我认为"adb push" 不是一个不错的选择。 ...

4  如何快速了解Android UI  ( How to quickly understand the android ui ) 
我有Windows,麦克斯,iPad和Linux UI的经验,就像KDE一样。但是,我没有使用Android设备,所以我真的不明白它是如何运作和比较。我的普遍了解是它类似于Gnome的Linux接口,但我想必须有一些差异,因为Android有一层java, dalvik / art虚拟机,在Linux内核和UI元素之...

2  Linux内核4.4 Android设备  ( Linux kernel 4 4 android devices ) 
我正在尝试找出所有设备正在运行的Linux内核4.4+并遇到困难的时间。到目前为止,我只能找到运行内核4.4的索尼Xperia设备。 我试图获得4.4个Linux设备的原因是我在我的Ubuntu Linux 4.15上遇到了3.1x的艰难时间编译内核,所以我认为在这方面有一个Linux 4.4设备将很好。我现在正在...

16  如何通过使用USB电缆将文件从Android手机转移到Ubuntu PC?  ( How to transfer files from an android phone to a ubuntu pc by using a usb cable ) 
我是完全新的用户和inexpert。我用手机制作了一个视频。 l如何将其转移到Ubuntu PC?我插入USB电缆,但Apparenntly我的电脑看不到手机。谢谢你的帮助 ...




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


Licensed under cc by-sa 3.0 with attribution required.