Conecté mi teléfono Android Mi3 rooteado a Ubuntu 14.0.4 usando jmtpfs
. Estoy usando ~/Desktop/phone
como mi punto de montaje. Puedo navegar en el dispositivo Android usando Nautilus
.
Ahora quiero recuperar los archivos de mi teléfono porque hice un restablecimiento de fábrica. Estoy usando el comando dd para hacer un clon del almacenamiento del teléfono. Cuando trato de hacer esto me sale el siguiente error:
:~/Desktop$ sudo sh -c "dd if=~/Desktop/phone of=/media/sf_phone_recovery/image"
dd: failed to open ‘~/Desktop/phone’: Permission denied
¿Es porque el teléfono tiene privilegios de root?
:~/Desktop/phone$ ls -l
total 0
drwxr-xr-x 29 root root 0 May 19 4441318 Internal storage
También probé con Foremost para recuperar archivos, pero tarda una eternidad en ejecutarse. Tengo archivos importantes en mi teléfono. Ayuda necesaria lo antes posible.
Esta es la salida de lsblk
:
:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 14.2G 0 disk
├─sda1 8:1 0 8.3G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 5.9G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
Estoy ejecutando Ubuntu usando VirtualBox en Mac OSX Yosemite.
Esta es la discusión de esta pregunta en el enlace askUbuntu.com
EDITAR: Hay otro método para recuperar sus datos desde un teléfono Android que no requiere acceso a una PC elaborado aquí . Se trata de instalar un terminal Android y usar el dd
comando para clonar el bloque de almacenamiento requerido de la memoria interna en una tarjeta SD o un pendrive (conectado a su teléfono a través de un cable USB OTG).
Respuesta corta : dd
no se puede hacer una copia completa de su teléfono.
Explicación : normalmente, cuando accede a un archivo, el controlador del sistema de archivos analizará la jerarquía de carpetas, la traducirá a un inodo, localizará el sector en el que está almacenado el archivo, se analizarán los metadatos y se leerá el archivo. MTP hace las cosas de manera diferente: su computadora envía una solicitud al dispositivo para obtener el archivo X, su dispositivo analizará la estructura del directorio, analizará los metadatos, ubicará el sector/celda en el dispositivo de almacenamiento, leerá el archivo y luego volverá a enviar los datos MTP.
dd
hará una copia de los bloques que se encuentran en el propio dispositivo de almacenamiento. Por lo tanto, puede copiar archivos y particiones enteras porque son bloques de datos en el disco. Los directorios se almacenan en el disco, pero no son regiones reales del espacio del disco, son más como referencias, por lo que los archivos pueden indicar "Soy parte de esta carpeta". Por lo tanto, no puede hacer una copia en bloque de un directorio. Debido a que no puede hacer una copia en bloque de un directorio, no es posible copiar todo el dispositivo de almacenamiento de su teléfono Android a través de MTP.
Pero hay esperanza : si el software de su dispositivo lo permite, es posible que pueda montar su dispositivo como un dispositivo de almacenamiento USB. Esto conectará directamente la partición de almacenamiento a su computadora, permitiéndole hacer una copia de seguridad usando un comando como dd if=/dev/sdb of=~/backup_file
.
Alternativamente, debido a que tiene root, puede habilitar el Modo desarrollador en su dispositivo Android y luego ejecutar el siguiente comando después de instalar las herramientas ADB ( sudo apt-get install android-tools-adb
):
adb shell su -c "dd if=/dev/block/mmcblk0" > ~/full_phone_backup.image
Esto hará una copia de todo en el dispositivo de almacenamiento. Funcionará durante bastante tiempo. Nunca alcancé más de 20 MB/s sobre ADB, por lo que tomaría 64000/20 = 3200 segundos a velocidad máxima para copiar un dispositivo de 64 GiB. Una vez finalizada la copia, puede ejecutar su software de recuperación de archivos en full_phone_backup.image para recuperar los archivos del sistema.
adb shell su -c "dd if=/dev/block/mmcblk0" > ~/full_phone_backup.image
obtengoerror: device not found
adb shell
? "dispositivo no encontrado" generalmente significa que el dispositivo no fue conectado o reconocido por el sistema operativo.error: device not found
cuando ejecuto adb shell
. Puedo explorar el dispositivo usando Nautilus en Ubuntu 14.0.4. Estoy ejecutando el sistema operativo en virtualbox, por lo que el sistema operativo es completamente nuevo. ¿Hay alguna dependencia que deba instalar para que la terminal detecte el dispositivo?adb devices
. Si su dispositivo no está en la lista, deshabilite el modo de desarrollador, desconecte su dispositivo, habilite el modo de desarrollador y vuelva a conectar su dispositivo. Luego intente adb devices
nuevamente para ver si su dispositivo es reconocido ahora. Si esto falla, es posible que su dispositivo requiera algún tipo de controlador especial para que ADB funcione.
Señor del Fuego
izzy
dd
una unidad de red mapeada?dd
En mi humilde opinión, requiere acceso "físico" a la partición, que MTP no ofrece explícitamente (esa fue una de las razones por las que Android cambió de UMS a MTP, para poder acceder al almacenamiento desde "ambos extremos" simultáneamente). Solo comprobando: Ya tienes esa respuesta aquí . No podemos decirte lo contrario, así que preguntar hasta que obtengas la respuesta que te gustaría escuchar no funciona;)