Hi, On Wed, 31 Aug 2016, Felipe Sateler wrote: > overlayfs does not support renaming directories when the directories > live in the lower filesystem: [...] > Unfortunately this means that dpkg fails at least in the case where a > directory is converted into a file: apt 1.3~rc2 moves > /usr/share/bug/apt/script to /usr/share/bug/apt . This causes dpkg to
That's the change at the package level. The operation that fails at the dpkg level is rename('/usr/share/bug/apt', '/usr/share/bug/apt.dpkg-tmp'). > fail when running in an overlayfs with the following error: [...] > unable to move aside './usr/share/bug/apt' to install new version: Invalid > cross-device link I got the same failure here but I also saw similar reports in a Kali live system where overlayfs is used for persistence (and with the upgrade of gedit). So that error is affecting many Kali users. It's not a very rare error (ex: https://bugs.kali.org/view.php?id=3473, https://bugs.kali.org/view.php?id=3476, https://bugs.kali.org/view.php?id=3361, https://bugs.kali.org/view.php?id=3365). I'm putting in copy the overlayfs kernel maintainer... Hello Miklos, that restriction above (cf https://github.com/torvalds/linux/blob/v4.8-rc2/fs/overlayfs/copy_up.c#L318-L322) is very problematic for us. Do you have plans to get rid of it? It does not seem very correct to put the burden on user-space to be aware of overlayfs restrictions such as this one. Renaming a directory is not something that happens often in practice in the uses cases where we use overlayfs but it's still frequent enough to deserve better than a EXDEV error IMO and dpkg trying to rename "foo/" into "foo.dpkg-tmp/" is in its right to assume that this rename will not cross any device boundary. I'm happy to test out kernel patches if I can help you in the process of getting a fix. Cheers, -- Raphaël Hertzog ◈ Debian Developer Support Debian LTS: http://www.freexian.com/services/debian-lts.html Learn to master Debian: http://debian-handbook.info/get/