0 votos

Permiso denegado para "dd" del sistema de archivos del teléfono Android conectado sobre mtpfs en Ubunutu 14.0.4

He conectado mi teléfono Android Mi3 rooteado a Ubuntu 14.0.4 usando jmtpfs . Estoy usando ~/Desktop/phone como mi punto de montaje. Soy capaz de navegar por el dispositivo Android utilizando Nautilus .

Ahora quiero recuperar los archivos de mi teléfono porque he hecho un restablecimiento de fábrica. Estoy usando el comando dd para hacer un clon del almacenamiento del teléfono. Cuando intento 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 Root?

:~/Desktop/phone$ ls -l
total 0
drwxr-xr-x 29 root root 0 May 19 4441318 Internal storage

También he probado Foremost para recuperar archivos pero tarda una eternidad en ejecutarse. Tengo archivos importantes en mi teléfono. Se necesita ayuda 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 askUbuntu.com enlace

EDIT: Hay otro método para recuperar sus datos de un teléfono Android que no requiere el acceso a un PC elaborado aquí . Se trata de instalar un terminal Android y utilizar el dd para clonar el bloque de almacenamiento necesario de la memoria interna a una tarjeta SD o a un pen drive (conectado al teléfono mediante un cable USB OTG).

0 votos

No es una buena idea que hayas recibido aquí . Deberían haberte dicho que marcaras esa pregunta para migrar aquí. Ahora has acabado con el cross-posting.

0 votos

Aparte de eso: ¿desde cuándo es posible dd ¿una unidad de red mapeada? dd En mi opinión, se requiere un acceso "físico" a la partición, que MTP hace explícitamente no (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). Sólo lo estoy comprobando: Ya tienes eso responder aquí . No podemos decirte lo contrario, así que preguntar hasta obtener la respuesta que te gustaría oír no funciona ;)

2voto

slugster Puntos 27178

Respuesta corta una copia completa de su teléfono sobre dd no se puede hacer.

Explicación : Normalmente, cuando accedes a un archivo, el controlador de tu sistema de archivos analiza la jerarquía de carpetas, la traduce a un inodo, localiza el sector en el que está almacenado el archivo, analiza los metadatos y lee el archivo. MTP hace las cosas de forma diferente: tu ordenador envía una petición al dispositivo para obtener el archivo X, tu dispositivo analizará la estructura de directorios, analizará los metadatos, localizará el sector/celda en el dispositivo de almacenamiento, leerá el archivo y luego enviará los datos de vuelta a través de MTP.

dd hará una copia de los bloques que están 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 de espacio en disco, son más bien referencias para que los archivos puedan indicar "soy parte de esta carpeta". Por lo tanto, no se puede hacer una copia en bloque de un directorio. Como no puedes hacer una copia en bloque de un directorio, no es posible copiar todo el dispositivo de almacenamiento de tu teléfono Android a través de MTP.

Pero hay esperanza Si el software de tu dispositivo lo permite, puedes montarlo como un dispositivo de almacenamiento USB. Esto adjuntará directamente la partición de almacenamiento a su ordenador, permitiéndole hacer una copia de seguridad utilizando un comando como dd if=/dev/sdb of=~/backup_file .

Alternativamente, ya que tienes Root podrías habilitar el Modo Desarrollador en tu 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. Se ejecutará durante bastante tiempo. Nunca alcancé más de 20MB/s a través de ADB, así que tomaría 64000/20=3200 segundos a máxima velocidad para copiar un dispositivo de 64GiB. Después de que la copia haya terminado, puede ejecutar su software de recuperación de archivos sobre full_phone_backup.image para recuperar cualquier archivo del sistema.

0 votos

Cuando ejecuto este comando adb shell su -c "dd if=/dev/block/mmcblk0" > ~/full_phone_backup.image Me sale error: device not found

0 votos

¿Has activado el modo desarrollador en el teléfono? ¿Obtienes un shell de línea de comandos si escribes adb shell ? "dispositivo no encontrado" suele significar que el dispositivo no fue conectado/reconocido por el SO.

0 votos

No, me da el mismo error error: device not found cuando corro 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 nuevo. ¿Hay alguna dependencia que tengo que instalar para el terminal para detectar el dispositivo.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X