找回密码
 立即注册
搜索
查看: 6191|回复: 11

[移动] MTP下成功恢复数据(以及Nexus 6P为啥是个坑)

[复制链接]
     
发表于 2016-6-3 10:42 | 显示全部楼层 |阅读模式
又是我。
俗话说事不过三。

前情提要:http://bbs.saraba1st.com/2b/thread-979851-1-1.html

换了Nexus 6P之后,本来一切安好。
直到昨天我从Bootloader想进Recovery,手滑选中了Factory
没有任何提示(是的,没有确认),自动重启。

顿觉不妙,强制关机
再次正常重启,发现完全清空,内置存储也没有了。
唯一的问题在于,显示内置存储已使用20G,然而找不到任何原来的文件。

此时感觉文件依然存在,只是“隐藏”起来了。但是MTP下不能用各种文件恢复工具。
于是根据网上教程,dump出分区再用文件恢复工具扫描。

方法如下(以Nexus 6P为例):
1. 打开USB调试,并保证电脑可以通过ADB连接至手机

2. 将手机ROOT,并安装busybox(安装到/system/bin下面)

3. 列出所有分区
电脑端执行如下命令(手机端注意给ADB Shell授权)
  1. adb forward tcp:5555 tcp:5555
  2. adb shell
  3. su
  4. cat /fstab.angler
复制代码
adb forward是为了后面恢复时使用。也可以在实际恢复之前再运行。
其中angler为机型代号,别的机器请自行替换。
如果你不清楚,可以
  1. ls /
复制代码
并寻找其中的fstab文件。

4. 寻找恢复的分区
  1. # Android fstab file.

  2. #<src>                                         <mnt_point>  <type>  <mnt_flags and options>  <fs_mgr_flags>

  3. # The filesystem that contains the filesystem checker binary (typically /system) cannot

  4. # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK



  5. /dev/block/platform/soc.0/f9824900.sdhci/by-name/system       /system         ext4    ro,noatime,barrier=1                                                    wait

  6. /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor       /vendor         ext4    ro,noatime,barrier=1                                                    wait

  7. /dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,discard,errors=panic wait,check,encryptable=/dev/block/platform/soc.0/f9824900.sdhci/by-name/metadata

  8. /dev/block/platform/soc.0/f9824900.sdhci/by-name/cache        /cache          ext4    noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic wait,check

  9. /dev/block/platform/soc.0/f9824900.sdhci/by-name/persist      /persist        ext4    nosuid,nodev,barrier=1,data=ordered,nodelalloc,nomblk_io_submit,errors=panic wait,notrim

  10. /dev/block/platform/soc.0/f9824900.sdhci/by-name/modem        /firmware       vfat    ro,noatime,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0        wait

  11. /dev/block/platform/soc.0/f9824900.sdhci/by-name/boot         /boot           emmc    defaults                                                        defaults

  12. /dev/block/platform/soc.0/f9824900.sdhci/by-name/recovery     /recovery       emmc    defaults                                                        defaults

  13. /dev/block/platform/soc.0/f9824900.sdhci/by-name/misc         /misc           emmc    defaults                                                        defaults

  14. /dev/block/platform/soc.0/f9824900.sdhci/by-name/modem        /modem          emmc    defaults                                                        defaults

  15. /dev/block/platform/soc.0/f9824900.sdhci/by-name/sbl1         /sbl1           emmc    defaults                                                        defaults

  16. /dev/block/platform/soc.0/f9824900.sdhci/by-name/pmic         /pmic           emmc    defaults                                                        defaults

  17. /dev/block/platform/soc.0/f9824900.sdhci/by-name/hyp          /hyp            emmc    defaults                                                        defaults

  18. /dev/block/platform/soc.0/f9824900.sdhci/by-name/tz           /tz             emmc    defaults                                                        defaults

  19. /dev/block/platform/soc.0/f9824900.sdhci/by-name/rpm          /rpm            emmc    defaults                                                        defaults

  20. /dev/block/platform/soc.0/f9824900.sdhci/by-name/sdi          /sdi            emmc    defaults                                                        defaults

  21. /dev/block/platform/soc.0/f9824900.sdhci/by-name/aboot        /aboot          emmc    defaults                                                        defaults

  22. #/dev/block/platform/soc.0/f9824900.sdhci/by-name/imgdata      /imgdata        emmc    defaults                                                        defaults

  23. /dev/block/platform/soc.0/f9824900.sdhci/by-name/frp          /persistent     emmc    defaults                                                        defaults

  24. /dev/block/platform/soc.0/f9824900.sdhci/by-name/keymaster    /keymaster     emmc    defaults                                                        defaults

  25. /dev/block/platform/soc.0/f9824900.sdhci/by-name/cmnlib       /cmnlib        emmc    defaults                                                        defaults

  26. /devices/*/xhci-hcd.0.auto/usb*                               auto           auto    defaults                                                        voldmanaged=usb:auto

复制代码
上一步中输出的结果如上。
易知,数据是存放于/data上,所以要恢复的分区是
  1. /dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata
复制代码
5. 在手机侧输出内容
  1. busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata
复制代码
if=后面的内容就是上一步中得到的分区。

6. 在电脑侧接收内容
在电脑侧安装Cygwin,并且安装时要额外安装nc和pv。
打开Cygwin,并输入
  1. nc 127.0.0.1 5555 | pv -i 0.5 > data.raw
复制代码
如果前面一切顺利,就会在电脑侧看到进度

7. 等待
我的机器是64G的Nexus 6P,实际可用空间约54G。
接收速度约为7MB/s,因此大约需要2小时。
注意硬盘空间。需要的空间与实际的分区大小相同,这里也为54G。

8. 恢复数据
上一步中得到的data.raw就是分区的完整备份。
网上的方法是挂载为VHD,再恢复。这样比较烦。
我推荐使用R-Studio,直接Open Image,再扫描即可。

扫描完成后,发现我的文件在/lost+found下面,目录结构完好。
恢复出来之后,绝大多数文件都正常。损失不大。
我再次把手机完全格式化(修正空间问题),并把文件导回手机。一切正常。

完。

回复

使用道具 举报

发表于 2016-6-3 11:09 | 显示全部楼层
本帖最后由 LGS 于 2016-6-3 11:11 编辑

nc是好东西,我天天都在用,尤其是从lan内服务器打包代码到pc上

不过手机存储确实不安全,相对于楼主这种操作,丢失手机才是更大的问题。我一般定期会备一下东西到pc,之前还用过btsync
回复

使用道具 举报

     
 楼主| 发表于 2016-6-3 11:28 | 显示全部楼层
LGS 发表于 2016-6-3 11:09
nc是好东西,我天天都在用,尤其是从lan内服务器打包代码到pc上

不过手机存储确实不安全,相对于楼主这种 ...

nc么 多年前就看到一个称号 网络瑞士军刀
丢手机的话 相比于手机 上面的内容其实倒没什么太重要的
照片走Dropbox 联系人 邮件之类的都是Google搞定
就是微信可能要丢点东西
回复

使用道具 举报

发表于 2016-6-3 11:49 | 显示全部楼层
EraserKing 发表于 2016-6-3 11:28
nc么 多年前就看到一个称号 网络瑞士军刀
丢手机的话 相比于手机 上面的内容其实倒没什么太重要的
照片走 ...

虽然用n5,但不信任google,所以联系人什么的不会往google同步,都是用软件定期备份,还有通话记录和短信。其它软件,照片啥的直接备份文件夹。

google这清空做法不对啊,/lost+found的目录下的东西是占空间的,并不像ms的回收站那样会自动释放空间。结果普通客户存的东西如果不对还以为东西全删了,空间就这么浪费了。

如果说为了给客户留下恢复余地,这也不对啊,楼主这些操作明显不是正常客户能理解并执行的。
回复

使用道具 举报

     
 楼主| 发表于 2016-6-3 11:54 | 显示全部楼层
LGS 发表于 2016-6-3 11:49
虽然用n5,但不信任google,所以联系人什么的不会往google同步,都是用软件定期备份,还有通话记录和短信 ...

反正我也不在美国 Google又不能把我怎么样……棱镜也管不着我头上是不?

至于/lost+found的问题 我倾向于是因为不完整的格式化(格式化过程中强行重启)
然后再次启动时,磁盘扫描时“存”到l+f里面的
回复

使用道具 举报

发表于 2016-6-3 12:17 | 显示全部楼层
EraserKing 发表于 2016-6-3 11:54
反正我也不在美国 Google又不能把我怎么样……棱镜也管不着我头上是不?

至于/lost+found的问题 我倾向 ...

原来强制关机了?没仔细看。

那有可能,再启动的时候发现分区有错误就扔那里了
回复

使用道具 举报

     
发表于 2017-12-5 08:07 来自手机 | 显示全部楼层
挖个坟,问一下mtp模式删了tf卡里的东西还有得救没

—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 v1.3.2.1-fix-play
回复

使用道具 举报

     
 楼主| 发表于 2017-12-5 08:42 | 显示全部楼层
hippias 发表于 2017-12-5 08:07
挖个坟,问一下mtp模式删了tf卡里的东西还有得救没

—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 ...

直接拆卡下来恢复吧,何必这么折腾
回复

使用道具 举报

头像被屏蔽
     
发表于 2017-12-5 09:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2017-12-6 06:57 来自手机 | 显示全部楼层
EraserKing 发表于 2017-12-5 08:42
直接拆卡下来恢复吧,何必这么折腾

直接拆卡扫描认不出来,难道是因为我之后又删除过一次的原因?

—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 v1.3.2.1-fix-play
回复

使用道具 举报

     
发表于 2017-12-6 06:57 来自手机 | 显示全部楼层
EraserKing 发表于 2017-12-5 08:42
直接拆卡下来恢复吧,何必这么折腾

直接拆卡扫描扫不出来内容,难道是因为我之后又删除过一次的原因?

—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 v1.3.2.1-fix-play
回复

使用道具 举报

     
发表于 2017-12-6 07:20 来自手机 | 显示全部楼层
EraserKing 发表于 2017-12-5 08:42
直接拆卡下来恢复吧,何必这么折腾

直接拆卡扫描扫不出来内容,难道是因为我之后又删除过一次的原因?

—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 v1.3.2.1-fix-play
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-15 18:59 , Processed in 0.055536 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表