Update to 4: out of space

patchmanager is in the working. olf did test it successfully, me not

I have the exact same problem somehow I need 560mb space for the update. This seems to be on the “System Data” partition ?! It’s the only one that has the same amount of free space left that is mentioned in the update screen.
I’m already for two days moving everything to the sd card that I can catch: all pictures, videos etc. but it doesn’t even change the free space. Now I started deleting apps which helped a bit but: Where is this System Data actually? which folders does it involve? Can I make it bigger?

update download takes space on home partition, update installs to system partition.

1 Like

the download was successful, but I still need 560mb free space I have overall more than 14GB free.

to get more space on the system partition, you need to delete applications (HERE Maps etc) …

This is a long time known and pushed away shortcoming that the root partition is way bto small.

We collected some links and especially this one here
https://together.jolla.com/question/222126/guide-installing-sailfish-x-on-xperias/#222126-33-increasing-the-root-lvm-volume-size
is a need to do for every one installing a bit more native applications.

Android apps are installed to home so will not help umstalling.
Try to drill down with e.g.
du -xsh /
where the real big data chunks are and go deeper and deeper.
I jad that earlier with JollaC and needed to uninstall lots of native packages i.e. big data apps like OSM scout or similar

Find out with e.g.
rpm -qa --queryformat '%{SIZE} %{NAME} \n' | sort -n -r | head -10

3 Likes

thanks this I was afraid to do looked a bit risky for me but I will do it now.
Nevertheless I tried to delete many apps and finally had enough space to update which was even quite fast done.
But the volume size should be at least 4 GB min by default I would say.

On Xperias this may work without any issue (even with more data on partitions, but I did it right after flashing!).

Yes, 4GB is a good start value for root partition. Now having 2.7/3.9 used. Of course this limits the available space for home partition for Downloads and Pictures/Videos.
But better than not being able to update!

Many peeps (me included a few times) suffered from this but it seems no one from the Sailors…

This was told so many times and so long ago to Jolla, but no reaction. :frowning:

1 Like

Major issue is that apps are installed on the system partition. They should be installed in the home.
Problem is now developing a link or overlay system that bind mounts the applications installed to the right location.
Thats something that will take a lot of work as apps are system installed always one user cannot have apps installed that the other does not.

In other words. Its a complicated mess.

1 Like

Similar the mess as on N900 with its tiny rootfs? :wink:
But there we had /opt where lot of application data went, iirc?

But for the time being (soon™ ) the root partition layout could be a simple parameter to the flashing file to define rootfs size (default 4G)?

Another huge waste of disk space is the installation of all available locales. On desktop distributions there are tools to cleanup / remove unused locales. I haven’t found any on Sailfish OS. For the update from 3.4 to 4.0.1.15 I removed many locales manually, which was a pain.

They were back after the installation of 4.0.1.15.

I just flashed Sailfish 4 this week. To prevent problems in the future, like this lack of space, I’m considering following the guide in the link you left here.

But I have a concern: do these old instructions still apply to the current version?

Yes they do, go for it. I have extended my root partition in the past and it is completely safe as long as you follow the steps and make sure you type (or copy&paste) everything correctly. And since you just flashed your phone this week, in the worst possible situation you don’t lose years worth of your data if you mistype something critical and need a reflash (still remember to take backup before doing this).

:+1: @avhakola I will try this weekend. I have an SD card to back it up, in case it all goes wrong :slightly_smiling_face:

If you have a device with system_a and system_b labled partitions, you can use the free space on system_a to extend the rootfs. Extend SailfishOS rootfs with a hidden, unused partition.-Oskar Roesler's Blog

4 Likes

Great finding!
You mention in your blog that after adding system_a to logical volume group we cannot reflash SailfishOS without reflashing Android first. Does that also apply to SFOS Updates?

What’s the original usage of system_a?
What data is on it before adding it to SFOS root partition?

Having A/B partitions implies to me that it’s a fallback partion of booting from the primary partition fails.

Wouldn’t it be an option to backup the image of system_a before the modification and in case we want to revert, we go into rescue mode, remove system_a from LVM and restore the backup?

1 Like

Cool that someone likes my 1st blogpost that I’ve actually published and doesn’t lie half-finished around.

Of course not, I’ll update the blogpost to clarify this better.

system_a and b are used by Android to install OS updates. If a is used, the new os is written to b and then b gets used after restart. Next time the other way around.

Doesn’t really make sense to me. To flash back the original content to system_a, you would have to

  1. Free space in root until you have less than 2.5Gb used space (like before extending)
  2. Defragment and shrink the rootfs and shrink the root volume.
  3. Remove system_a from the volume group.
  4. Flash back system_a content.
  5. No with your Sailfish reflash, you overwrite anything anyway.

Additionally, while shrinking there’s much more to go wrong. Installing Android and then Sailfish again is just guaranteed to work. I can case you really ever need to reflash your devices. Happened to me only once that the update fucked up the system entirely. But theoretically, you could do this.

3 Likes

But that also means it is not always system_a that is unused. Depending on how many upgrades the device did, it might be system_b, right?

vendor_a and vendor_b (and oem) are also 850M, maybe one of these could be removed as well?

1 Like

Interestingly system_a seems to contain the android image and according to /system/build.prop it is 50.2.A.3.77. system_b contains SailfishOS3.4, which should be the sfos version I originally used to flash the device.

But system_b looks drastically different from system_a:

# ls /tmp/sysb/Sailfish_OS-Jolla-3.4.0.24-h3113-0.0.7.52/
home.img.gz      home.img.gz.md5  root.img.gz      root.img.gz.md5
1 Like

Once again, thanks for your nice guide!
Just extended my root partition by system_a as you described.

I think it’s worth mentioning that you get messages such as /dev/mmcblk0rpmb: read failed after 0 of 4096 at 4186112: Input/output error. Anyways, each step was confirmed with a positive status message in the end. So I ignored those input/output errors and everything worked fine (so far).

[nemo@xa2 ~]$ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/sailfish/root        5.2G      1.9G      3.3G  36% /
1 Like