It is accepted, I think, that internal storage needs to be allowed certain headroom. Some devices may be more sensitive than others. I have seen it said that 85% is a sensible top limit to be seen in Settings > storage before the user thinks of taking action. Furthermore the native “device is getting full” warning is reported to allow little time to take action before a significant breakdown.
I would be interested to know what sort of numbers you were each seeing in this particular measure when these events happened.
It seems to me that there should be a safeguard. A bit like, on Linux, ext* filesystems reserve (by default) 5% of disk space to root user.
It sounds fair that some things might not work if internal storage is full.
However, it should not prevent the system to boot (the launcher should not crash in this scenario), to (at least) let the user choose which files to remove.
I unfortunately did not check the disk space of partitions of my phone before removing big files. Sorry, I can’t give you numbers. I was too excited and in a hurry to fix the phone…
Hello, I just want to report that I had the same or very similar problem with e.OS on Fairphone 3 today. I use Signal with automatic nightly backup. The low disk space warning started showing just a few days ago and I did not take it very seriously. I noticed that the Signal backup failed yesterday, but the phone kept working. I was planning to do a clean up soon. Today, the phone crashed a few seconds after the Signal backup started, and it booted into recovery. When I tried I normal boot, I could enter SIM pin and e.OS pin, but just after entering e.OS pin the phone shutted down and rebooted like described by others.
Thanks to your tips, I was able to recover:
Press back button in Recovery and enable adb
Download Android SDK Platform Tools ZIP-file to my Windows PC, extract and
run adb shell
In the shell, mount the encrypted userdata and search for big files:
mkdir -p /mnt/userdata
mount /dev/block/bootdevice/by-name/userdata /mnt/userdata/
cd /mnt/userdata
find . -type f -size +1000M
I found three 4GB files. From the time stamp and size I guessed it must be the Signal backup files
Now delete a file and hope it is really just a redundant backup and nothing very valuable
rm _6dlwmfhlImbpUs6i69EBi7zx3wl10ptb
Unmount
cd /
umount /mnt/userdata
exit
Reboot phone. Now it does not crash anymore.
Whew, I think this is a bit too exciting for a ordinary case of device storage running full. I guess there should be some more protection against this…
Me too. The same problem. I was trying to send a video to a friend on WhatsApp when there was little disk space left. And on the last moment it gone to recovery and reboot.
ADB SHELL gives error, so I have not door inside my phone.
C:\Users\MyPC>adb devices
List of devices attached
1c92lsghl54ece sideload
adb devices is reporting your recovery as being in sideload mode, in which you can’t do adb shell (only adb sideload to install a ZIP file).
When in the /e/OS recovery, you need to do Advanced - Enable ADB … then adb devices should report it as recovery, and you should be able to continue with adb shell.
Hi! Thanks for answer.
I seen his post about it.
I was on 1.18. And now I have last one 2.0-dev…
So I installed the latest firmware 2.0. Now the phone does not go into recovery immidiatly like before. Instead, it repeatedly requires you to enter the unlock code. After several attempts to start the system, it flies into recovery with the same entry as before.
I read that I need to update the SDK manager, but how? It’s not written anywhere.
I installed Android Studio. I made update of this programm and all tools inside with a hope that inside this programm will be as a part of it last sdk manager. But no. Nothing.
There is no explanation on the website either.
BUT
star2lte:/mnt/userdata # mkdir -p /mnt/userdata
star2lte:/mnt/userdata # [/quote]
/system/bin/sh: [/quote]: inaccessible or not found
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata # [quote=“E.FondGalaxyNote10Pl, post:22, topic:48762”]
star2lte:/mnt/userdata # mkdir -p /mnt/userdata
[/quote]
star2lte:/mnt/userdata # [/quote]
/system/bin/sh: [/quote]: inaccessible or not found
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata # [quote=“nilsl, post:16, topic:48762”]
star2lte:/mnt/userdata # mount /dev/block/bootdevice/by-name/userdata /mnt/userdata/
ote]
mount: ‘/dev/block/bootdevice/by-name/userdata’->‘/mnt/userdata/’: No such file or directory
1|star2lte:/mnt/userdata # [/quote]
/system/bin/sh: [/quote]: inaccessible or not found
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata # [quote=“nilsl, post:16, topic:48762”]
star2lte:/mnt/userdata # cd /mnt/userdata
star2lte:/mnt/userdata # [/quote]
/system/bin/sh: [/quote]: inaccessible or not found
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata # help
/system/bin/sh: help: inaccessible or not found
127|star2lte:/mnt/userdata # mount /dev/block/bootdevice/by-name/userdata /mnt/userdata/
mount: ‘/dev/block/bootdevice/by-name/userdata’->‘/mnt/userdata/’: No such file or directory
ount /dev/block/bootdevice/by-name/userdata /mnt/userdata/ <
mount: ‘/dev/block/bootdevice/by-name/userdata’->‘/mnt/userdata/’: No such file or directory
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata #
1|star2lte:/mnt/userdata # [quote=“nilsl, post:16, topic:48762”]
star2lte:/mnt/userdata # find . -type f -size +1000M
[/quote]
star2lte:/mnt/userdata # [/quote]
/system/bin/sh: [/quote]: inaccessible or not found
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata #
127|star2lte:/mnt/userdata # find -type f -size +1000M
star2lte:/mnt/userdata # find . -type f -size +1000M
star2lte:/mnt/userdata #
star2lte:/mnt/userdata #
star2lte:/mnt/userdata # #
It was clearer in earlier edits of your post, I think …
So, your device is star2lte - Samsung Galaxy S9+, not a Fairphone 3 with which this topic started out.
Since the mkdir -p /mnt/userdata command doesn’t complain, /mnt/userdata should exist (which your later edits confirm). This would mean /dev/block/bootdevice/by-name/userdata doesn’t exist. The structure may be different on an S9+.
It says in https://gitlab.e.foundation/e/backlog/-/issues/6769 … “We now have a recovery plan for that situation. Do not hesitate to reach out to us in case you face this problem again.”
So perhaps you could reach out by contacting helpdesk@e.email.
(They didn’t say whether the recovery plan was specific to the Fairphone 3 or more universal.)
Very good question - I checked: It was on 1.18-s-20231207. So yes, old version. I just forgot to update. I think there was no notification or I have overlooked it.
C:\Users\MyPC>adb shell
star2lte:/ # mkdir -p /mnt/userdata
star2lte:/ # mount /dev/block/platform/11120000.ufs/by-name/USERDATA /mnt/userdata
mount: /dev/block/platform/11120000.ufs/by-name/USERDATA: need -t
star2lte:/ # cd /mnt/userdata
star2lte:/mnt/userdata # find . -type f -size +1000M
./media/0/dXeIYgz80K9pJbDqVaIesA/Rp1fV0fLqzJQiU2VOz67iD/C3nsy+5NB+Y7PsWvYiC,SnJvJiwiBfQa/an++wV4WMjF16Q2wcwxkDA/n1ujkOfAwWR0qRzq44dxMC/fcOMPYP5JZ+0RYlQasOn59iK5fF/,3FOrQhA6ICX6WYcrA,Vkcn1vhzCo6HZR+BzID
./media/0/9wSFcb6gJ,yo0v6s,t1UiB/DYMdR2+rRVsFm6LmZnTNVB/cqjrDikmram6X0zCA2c1R2scSPxGtaaa
./media/0/Wx7kT7cn49901wIC,LZ,hC/yY+kYlx0mvVsevtvOgB1jC/_w5wLb2l1nPgtg4UHFhJKrtf5uBpjKk37
star2lte:/mnt/userdata #
star2lte:/mnt/userdata # rm ./media/0/9wSFcb6gJ,yo0v6s,t1UiB/DYMdR2+rRVsFm6LmZnTNVB/cqjrDikmram6X0zCA2c1R2scSPxGtaaa
star2lte:/mnt/userdata # [quote=“nilsl, post:16, topic:48762”]
star2lte:/mnt/userdata # cd /
star2lte:/ # cd /
star2lte:/ # umount /mnt/userdata
star2lte:/ # exit
I have delete one of this file. Restarted and…
NOW EVERYTHING start very good and work as before!
Thank u very much Elk! And Tcecyk too. Thank you.
I lost a lot of time for to find and solve this issue, but it was very good experience.
Thank u again for your time, attention and help!
You can backup contacts, SMS and call logs via specialised Apps on the phone or via phone syncing tools like MyPhoneExplorer (this one’s Windows only, though).
You can copy “Internal Storage” via USB or possibly via phone syncing tools.
So far, so easy.
“Internal Storage” (the one made visible via USB) is only a part of the data partition holding user data.
So, what’s left out so far is the rest of the data partition, which has the user-installed Apps and their data as well as user settings. By default the user has no access here and is limited to whatever backup or export function all the user-installed Apps provide one by one.
And you can take notes of your settings.
And you can backup APK files of the installed Apps (for reinstalling the Apps more quickly than via a store) with tools like SAI (it’s important that the tools support so-called “split APKs”).
However, /e/OS allows you to enable “Rooted debugging” in the Developer options (once you made them available), and with this you can use adb root to give root to ADB. This gives you access to the rest of the data partition via ADB, so you could try to copy those parts from the phone via ADB, or there are also tools which can use this, example … Android Backup and Restore Tools (ABRT).
Thanks for the clarification. I think it would be convenient to have a single backup system rather than several disparate programs.
Does this mean that e.OS can be rooted without having to install Magisk?
Now I use magisk for it.
Download last Magisk version, than rename magiskXX.apk into magiskXX.zip (whithout a real zipping procedure) and sideload it via adb ignoring fault message.
Than reinstall as an usual app.