MTP下成功恢复数据(以及Nexus 6P为啥是个坑)
又是我。俗话说事不过三。
前情提要: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授权)adb forward tcp:5555 tcp:5555
adb shell
su
cat /fstab.angleradb forward是为了后面恢复时使用。也可以在实际恢复之前再运行。
其中angler为机型代号,别的机器请自行替换。
如果你不清楚,可以ls /并寻找其中的fstab文件。
4. 寻找恢复的分区# Android fstab file.
#<src> <mnt_point><type><mnt_flags and options><fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
/dev/block/platform/soc.0/f9824900.sdhci/by-name/system /system ext4 ro,noatime,barrier=1 wait
/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor /vendor ext4 ro,noatime,barrier=1 wait
/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
/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
/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
/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
/dev/block/platform/soc.0/f9824900.sdhci/by-name/boot /boot emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/recovery /recovery emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/misc /misc emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/modem /modem emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/sbl1 /sbl1 emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/pmic /pmic emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/hyp /hyp emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/tz /tz emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/rpm /rpm emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/sdi /sdi emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/aboot /aboot emmc defaults defaults
#/dev/block/platform/soc.0/f9824900.sdhci/by-name/imgdata /imgdata emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/frp /persistent emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/keymaster /keymaster emmc defaults defaults
/dev/block/platform/soc.0/f9824900.sdhci/by-name/cmnlib /cmnlib emmc defaults defaults
/devices/*/xhci-hcd.0.auto/usb* auto auto defaults voldmanaged=usb:auto
上一步中输出的结果如上。
易知,数据是存放于/data上,所以要恢复的分区是/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdata5. 在手机侧输出内容busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/platform/soc.0/f9824900.sdhci/by-name/userdataif=后面的内容就是上一步中得到的分区。
6. 在电脑侧接收内容
在电脑侧安装Cygwin,并且安装时要额外安装nc和pv。
打开Cygwin,并输入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下面,目录结构完好。
恢复出来之后,绝大多数文件都正常。损失不大。
我再次把手机完全格式化(修正空间问题),并把文件导回手机。一切正常。
完。
本帖最后由 LGS 于 2016-6-3 11:11 编辑
nc是好东西,我天天都在用,尤其是从lan内服务器打包代码到pc上
不过手机存储确实不安全,相对于楼主这种操作,丢失手机才是更大的问题。我一般定期会备一下东西到pc,之前还用过btsync
LGS 发表于 2016-6-3 11:09
nc是好东西,我天天都在用,尤其是从lan内服务器打包代码到pc上
不过手机存储确实不安全,相对于楼主这种 ...
nc么 多年前就看到一个称号 网络瑞士军刀
丢手机的话 相比于手机 上面的内容其实倒没什么太重要的
照片走Dropbox 联系人 邮件之类的都是Google搞定
就是微信可能要丢点东西 EraserKing 发表于 2016-6-3 11:28
nc么 多年前就看到一个称号 网络瑞士军刀
丢手机的话 相比于手机 上面的内容其实倒没什么太重要的
照片走 ...
虽然用n5,但不信任google,所以联系人什么的不会往google同步,都是用软件定期备份,还有通话记录和短信。其它软件,照片啥的直接备份文件夹。
google这清空做法不对啊,/lost+found的目录下的东西是占空间的,并不像ms的回收站那样会自动释放空间。结果普通客户存的东西如果不对还以为东西全删了,空间就这么浪费了。
如果说为了给客户留下恢复余地,这也不对啊,楼主这些操作明显不是正常客户能理解并执行的。 LGS 发表于 2016-6-3 11:49
虽然用n5,但不信任google,所以联系人什么的不会往google同步,都是用软件定期备份,还有通话记录和短信 ...
反正我也不在美国 Google又不能把我怎么样……棱镜也管不着我头上是不?
至于/lost+found的问题 我倾向于是因为不完整的格式化(格式化过程中强行重启)
然后再次启动时,磁盘扫描时“存”到l+f里面的 EraserKing 发表于 2016-6-3 11:54
反正我也不在美国 Google又不能把我怎么样……棱镜也管不着我头上是不?
至于/lost+found的问题 我倾向 ...
原来强制关机了?没仔细看。
那有可能,再启动的时候发现分区有错误就扔那里了 挖个坟,问一下mtp模式删了tf卡里的东西还有得救没
—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 v1.3.2.1-fix-play hippias 发表于 2017-12-5 08:07
挖个坟,问一下mtp模式删了tf卡里的东西还有得救没
—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 ...
直接拆卡下来恢复吧,何必这么折腾 EraserKing 发表于 2017-12-5 08:42
直接拆卡下来恢复吧,何必这么折腾
直接拆卡扫描认不出来,难道是因为我之后又删除过一次的原因?
—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 v1.3.2.1-fix-play EraserKing 发表于 2017-12-5 08:42
直接拆卡下来恢复吧,何必这么折腾
直接拆卡扫描扫不出来内容,难道是因为我之后又删除过一次的原因?
—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 v1.3.2.1-fix-play EraserKing 发表于 2017-12-5 08:42
直接拆卡下来恢复吧,何必这么折腾
直接拆卡扫描扫不出来内容,难道是因为我之后又删除过一次的原因?
—— 来自 Sony D6653, Android 6.0.1上的 S1Next-鹅版 v1.3.2.1-fix-play
页:
[1]