亲爱的,
昨天晚上本人在使用fdisk操作华为C8813Q内部储存的分区时,导致扩展分区中的分区表丢失。
经过分析,出现此问题的原因如下:
华为把扩展分区的分区表放在了266882至270335之中,所以使用fdisk查看分区表可以看到所有逻辑分区的起始扇区都是紧接着前一个逻辑分区的终止扇区。但fdisk不是这样操作扩展分区的分区表的,可能是把逻辑分区的起始扇区与末尾扇区信息存放在接下来要创建的逻辑分区的起始扇区前的扇区(这是我的猜测,因为我企图使用fdisk重建分区表时,发现无法让起始扇区紧接着前一个逻辑分区的终止扇区)。
本人当时创建分区,在输入起始扇区的步骤直接按了Enter使用了默认值,而默认值就是在266882至270335之间,然后杯具就这样发生了。
这不是简简单单的丢数据(事实上重要的数据我有备份),/system与/data仅是丢失的多个逻辑分区中的其中两个,其余的分区将导致手机无法启动,即使刷官方固件,也无法解决。
您可能会问,你手机发分区表出问题了,你如何启动手机恢复呢?
因为更改分区表后,内核并不会立刻更新分区表,特别是某些分区已经被挂载,内核是无法更新的,因此我手机在分区表出问题后至今,仍处于运行状态。但万万不能关机,这一关机,就是……
阅读完以上的内容后,您可能会产生帮助我的念头,却不知道该做什么。
如果您真的要帮助我,那实在是非常感谢。
在帮助我之前,您需要确保您的手机已具备以下条件:
1. 手机已成功获取root权限(我觉得准点的说法应该是您可以自由切换到root用户)。
如果您已具备上述条件,那么很好,接下来您需要安装一个Android Terminal,例如:Connect Bot, JuiceSSH(强烈推荐,我还特意付费购买了附加功能),您可以在Google Play找到。
安装完毕Terminal后,启动您的Terminal,并使用local shell(这两个终端都自带SSH Client,但我们这里不需要,而是需要他们使用本地的Shell。JuiceSSH可以点击右上角图标是闪电状的按钮,在出现的窗口中点击下拉菜单,选择"Local Device"),然后点击"Start"按钮。
下面,我来教您如何导出MBR与EBR:
输入:
su
按Enter,切换至root用户(root权限管理程序可能会询问您是否允许,记得点击允许哦!),
执行下面两个命令:
dd if=/dev/block/mmcblk0 of=/sdcard/mmcblk0.mbr bs=512 count=1
dd if=/dev/block/mmcblk0 of=/sdcard/mmcblk0.ebr bs=512 skip=266881 count=3455
其中第一个命令是导出位于第一个扇区的分区表,第二个命令是导出第266882个扇区至270335个扇区间的扩展分区分区表(count可能多了几个扇区,只是为了数据的完整)。
最后,您只需把/sdcard/mmcblk0.mbr, /sdcard/mmcblk0.ebr这两个文件发送给我,然后剩下的就是等待我的好消息了。
这里顺便附加一个我的华为C8813Q内部储存默认的分区的信息:
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 * 1 40 20 4d QNX4.x
/dev/block/mmcblk0p2 41 640 300 45 Unknown
/dev/block/mmcblk0p3 641 266880 133120 c W95 FAT32 (LBA)
/dev/block/mmcblk0p4 266881 7634943 3684031+ 5 Extended /dev/block/mmcblk0p5 270336 294911 12288 6a Unknown /dev/block/mmcblk0p6 294912 303103 4096 46 Unknown /dev/block/mmcblk0p7 303104 311295 4096 63 GNU HURD or SysV /dev/block/mmcblk0p8 311296 317439 3072 58 Unknown /dev/block/mmcblk0p9 319488 325631 3072 4a Unknown /dev/block/mmcblk0p10 327680 333823 3072 4b Unknown /dev/block/mmcblk0p11 335872 344063 4096 47 Unknown /dev/block/mmcblk0p12 344064 360447 8192 48 Unknown /dev/block/mmcblk0p13 360448 401407 20480 60 Unknown /dev/block/mmcblk0p14 401408 409599 4096 6c Unknown /dev/block/mmcblk0p15 409600 802815 196608 83 Linux /dev/block/mmcblk0p16 802816 966655 81920 83 Linux /dev/block/mmcblk0p17 966656 3063807 1048576 83 Linux /dev/block/mmcblk0p18 3063808 5423103 1179648 83 Linux /dev/block/mmcblk0p19 5423104 7634943 1105920 6b Unknown
您可以检查一下您的分区的扇区信息是否与我的默认信息一致。
如果您要报酬的话,那请您先不要给我文件,以免因误会而引起纠纷,当然,希望您要的钱不多,毕竟本人还只是一个学生……
为了尽快找到可以且愿意帮助我的人,我还打算把上述内容转发到以下社区/论坛:
Hostloc
此致,
最高的问候,
Extreme
昨天晚上本人在使用fdisk操作华为C8813Q内部储存的分区时,导致扩展分区中的分区表丢失。
经过分析,出现此问题的原因如下:
华为把扩展分区的分区表放在了266882至270335之中,所以使用fdisk查看分区表可以看到所有逻辑分区的起始扇区都是紧接着前一个逻辑分区的终止扇区。但fdisk不是这样操作扩展分区的分区表的,可能是把逻辑分区的起始扇区与末尾扇区信息存放在接下来要创建的逻辑分区的起始扇区前的扇区(这是我的猜测,因为我企图使用fdisk重建分区表时,发现无法让起始扇区紧接着前一个逻辑分区的终止扇区)。
本人当时创建分区,在输入起始扇区的步骤直接按了Enter使用了默认值,而默认值就是在266882至270335之间,然后杯具就这样发生了。
这不是简简单单的丢数据(事实上重要的数据我有备份),/system与/data仅是丢失的多个逻辑分区中的其中两个,其余的分区将导致手机无法启动,即使刷官方固件,也无法解决。
您可能会问,你手机发分区表出问题了,你如何启动手机恢复呢?
因为更改分区表后,内核并不会立刻更新分区表,特别是某些分区已经被挂载,内核是无法更新的,因此我手机在分区表出问题后至今,仍处于运行状态。但万万不能关机,这一关机,就是……
阅读完以上的内容后,您可能会产生帮助我的念头,却不知道该做什么。
如果您真的要帮助我,那实在是非常感谢。
在帮助我之前,您需要确保您的手机已具备以下条件:
1. 手机已成功获取root权限(我觉得准点的说法应该是您可以自由切换到root用户)。
如果您已具备上述条件,那么很好,接下来您需要安装一个Android Terminal,例如:Connect Bot, JuiceSSH(强烈推荐,我还特意付费购买了附加功能),您可以在Google Play找到。
安装完毕Terminal后,启动您的Terminal,并使用local shell(这两个终端都自带SSH Client,但我们这里不需要,而是需要他们使用本地的Shell。JuiceSSH可以点击右上角图标是闪电状的按钮,在出现的窗口中点击下拉菜单,选择"Local Device"),然后点击"Start"按钮。
下面,我来教您如何导出MBR与EBR:
输入:
su
按Enter,切换至root用户(root权限管理程序可能会询问您是否允许,记得点击允许哦!),
执行下面两个命令:
dd if=/dev/block/mmcblk0 of=/sdcard/mmcblk0.mbr bs=512 count=1
dd if=/dev/block/mmcblk0 of=/sdcard/mmcblk0.ebr bs=512 skip=266881 count=3455
其中第一个命令是导出位于第一个扇区的分区表,第二个命令是导出第266882个扇区至270335个扇区间的扩展分区分区表(count可能多了几个扇区,只是为了数据的完整)。
最后,您只需把/sdcard/mmcblk0.mbr, /sdcard/mmcblk0.ebr这两个文件发送给我,然后剩下的就是等待我的好消息了。
这里顺便附加一个我的华为C8813Q内部储存默认的分区的信息:
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 * 1 40 20 4d QNX4.x
/dev/block/mmcblk0p2 41 640 300 45 Unknown
/dev/block/mmcblk0p3 641 266880 133120 c W95 FAT32 (LBA)
/dev/block/mmcblk0p4 266881 7634943 3684031+ 5 Extended /dev/block/mmcblk0p5 270336 294911 12288 6a Unknown /dev/block/mmcblk0p6 294912 303103 4096 46 Unknown /dev/block/mmcblk0p7 303104 311295 4096 63 GNU HURD or SysV /dev/block/mmcblk0p8 311296 317439 3072 58 Unknown /dev/block/mmcblk0p9 319488 325631 3072 4a Unknown /dev/block/mmcblk0p10 327680 333823 3072 4b Unknown /dev/block/mmcblk0p11 335872 344063 4096 47 Unknown /dev/block/mmcblk0p12 344064 360447 8192 48 Unknown /dev/block/mmcblk0p13 360448 401407 20480 60 Unknown /dev/block/mmcblk0p14 401408 409599 4096 6c Unknown /dev/block/mmcblk0p15 409600 802815 196608 83 Linux /dev/block/mmcblk0p16 802816 966655 81920 83 Linux /dev/block/mmcblk0p17 966656 3063807 1048576 83 Linux /dev/block/mmcblk0p18 3063808 5423103 1179648 83 Linux /dev/block/mmcblk0p19 5423104 7634943 1105920 6b Unknown
您可以检查一下您的分区的扇区信息是否与我的默认信息一致。
如果您要报酬的话,那请您先不要给我文件,以免因误会而引起纠纷,当然,希望您要的钱不多,毕竟本人还只是一个学生……
为了尽快找到可以且愿意帮助我的人,我还打算把上述内容转发到以下社区/论坛:
Hostloc
此致,
最高的问候,
Extreme