Permiso denegado para "dd" del sistema de archivos del teléfono Android conectado a través de mtpfs en Ubunutu 14.0.4 [cerrado]

Conecté mi teléfono Android Mi3 rooteado a Ubuntu 14.0.4 usando jmtpfs. Estoy usando ~/Desktop/phonecomo 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 ddcomando 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).

No es una buena idea la que recibiste aquí . Deberían haberte dicho que marcaras esa pregunta para migración aquí. Ahora terminaste con la publicación cruzada.
Aparte de eso: ¿desde cuándo es posible dduna unidad de red mapeada? ddEn 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;)

Respuestas (1)

Respuesta corta : ddno 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.

ddhará 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.

cuando ejecuto este comando adb shell su -c "dd if=/dev/block/mmcblk0" > ~/full_phone_backup.imageobtengoerror: device not found
¿Activaste el modo desarrollador en el teléfono? ¿Obtiene un shell de línea de comando si escribe adb shell? "dispositivo no encontrado" generalmente significa que el dispositivo no fue conectado o reconocido por el sistema operativo.
No, me sale el mismo error error: device not foundcuando 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?
¿Habilitó el modo desarrollador en su teléfono? Esto se puede hacer a través de Configuración-> Información del dispositivo y luego tocando el campo llamado "número de compilación" siete veces. Después de eso, vuelva a conectar su dispositivo. Luego intente ejecutar adb shell nuevamente.
Sí, habilité el modo de desarrollador y mi teléfono también está rooteado
Intenta correr 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 devicesnuevamente 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.
Lo tengo para trabajar en Mac OSX. No sé por qué no funciona en Ubuntu. Gracias @gertmenkel