Can't create file: Read-only file system

12,820

Solution 1

You can try to remount the file system with read and write permissions (source):

sudo mount -o remount,rw /partition/identifier /mount/point

Or in your case you just can tray to redirect the output to a file located in a directory where you must be able to write:

adb shell "stty raw; cat </dev/block/mmcblk0p56" > /tmp/data.img

Solution 2

Are you trying to copy the block device to an image file on your local computer? If so, try:

adb shell su -c '"stty raw; cat < /dev/block/mmcblk0p56"' > data.img
Share:
12,820

Related videos on Youtube

Praveen
Author by

Praveen

“Somewhere, something incredible is waiting to be known.” ― Carl Sagan

Updated on September 18, 2022

Comments

  • Praveen
    Praveen over 1 year

    I was trying to recover files from android phone using adb shell and test disk. But I am getting a read only filesystem error, even though the permissions to write is granted to the user.

    adb devices
    

    list the device attached. After I ran the following commands

    adb shell
    

    Inside the shell I did the following

    user:/ $ su
    user:/ # adb shell "stty raw; cat </dev/block/mmcblk0p56" > data.img
    sh: can't create data.img: Read-only file system
    

    How to solve this?

    Update

    Trying the proposed solutions:

     $ sudo adb shell "stty raw; cat /dev/block/mmcblk0p56" > /home/user/android-backup/data.img
    stty: tcgetattr standard input: Not a typewriter
    cat: /dev/block/mmcblk0p56: Permission denied
    

    Mounting code:

    $ sudo mount -o remount,rw /dev/block/mmcblk0p56 /tmp
    mount: /tmp: mount point not mounted or bad option.
    
  • LupusE
    LupusE about 5 years
    I would add 'writing to / is always a bad idea (not related if possible or not)'. But your suggestion to use /tmp covers the solution already.
  • pa4080
    pa4080 about 5 years
    Hi, @LupusE, why it is a bad idea?
  • LupusE
    LupusE about 5 years
    There is something called FSH (en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard) to define what data should be stored in which directory. ... It is very important if you've got different partitions for different purposes. For example: Avoid to put /var/log on a flash storage. Much read/write will kill it ... It is the same if you store everything on C: in windows. Maybe good for the moment, but don't show anyone.
  • Praveen
    Praveen about 5 years
    @pa4080 Is /partition/identifier in this case /dev/block/mmcblk0p56? Also, what should be the mount point?
  • pa4080
    pa4080 about 5 years
    @supremum, yes I think it should be /dev/block/mmcblk0p56, but can't be sure. You can list the attached drives/devices by the command sudo lsblk.