AOSC-Dev / ciel-rs

A tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers (version 3)
MIT License
8 stars 5 forks source link

Cannot run update-os on Arch Linux #3

Open outloudvi opened 2 years ago

outloudvi commented 2 years ago

It was working around Sept 15, but stops working this time. Probably it's linked to some recent changes.

Steps to reproduce:

Intended behaviour:

Actual behaviour:

E: Failed to fetch https://repo.aosc.io/debs/dists/stable/InRelease  rename failed, Input/output error (/var/lib/apt/lists/partial/repo.aosc.io_debs_dists_stable_InRelease -> /var/lib/apt/lists/repo.aosc.io_debs_dists_stable_InRelease).
E: Some index files failed to download. They have been ignored, or old ones used instead.

Workaround:

rm .ciel/container/dist/var/lib/apt/lists/repo.aosc.io_debs_dists_stable_InRelease

dmesg:

overlayfs: metacopy with no lower data found - abort lookup (timers/stamp-shadow.timer)
overlayfs: metacopy with no lower data found - abort lookup (lists/repo.aosc.io_debs_dists_stable_InRelease)
... (multi times) ...
overlayfs: metacopy with no lower data found - abort lookup (lists/repo.aosc.io_debs_dists_stable_InRelease)

Tested on Arch Linux with ciel 3.0.11 and 3.0.14.

eatradish commented 2 years ago

This should be caused by the apt list cache remaining in the container

liushuyu commented 2 years ago

dmesg:

overlayfs: metacopy with no lower data found - abort lookup (timers/stamp-shadow.timer)
overlayfs: metacopy with no lower data found - abort lookup (lists/repo.aosc.io_debs_dists_stable_InRelease)
... (multi times) ...
overlayfs: metacopy with no lower data found - abort lookup (lists/repo.aosc.io_debs_dists_stable_InRelease)

Looks like Arch Linux has enabled metacopy option by default when mounting a overlayfs filesystem. This is currently unsupported by Ciel. Support for metacopy layer differencing may be added in a future version.

arkadijs commented 5 months ago

Meanwhile, rmmod overlay and echo "options overlay metacopy=off" > /etc/modprobe.d/overlay.conf, then ciel load-os.