Hello Ruda, rsyk...@disroot.org wrote on Fri, May 09, 2025 at 04:10:46PM +0200: > On 2025-05-09 12:53, Janne Johansson wrote: >> Ruda wrote:
>>>> I had that with systems where /var/www is a symlink into >>>> another (small) slice/partition like "/". >>> Thanks. I had /var/www symlinked to /home/www, and that >>> was, for some reason, enough to cause the trouble. I removed >>> the symlink and the upgrade went fine. What is not understood, >>> however, is the fact that the symlink went *not* to a small partition; >>> my /home was >> You have to consider how the filesystem looks during the upgrade, >> especially if this is while you run inside bsd.rd. A symlink that goes >> from /var/www to literally "/home/www" will not work during upgrades >> when all the partitions are mounted under /mnt, whereas if the link >> was in /var and made using: >> ln -s ../home/www www then it will point to the right place from >> /mnt/var/www to /mnt/home/www during bsd.rd also. Same goes for if you >> must place /home/_sysupgrade somewhere else for space reasons, make >> sure the softlink is relative and it will keep on working during >> upgrades also. > ok. That seems to be it. (So the error message then says something > that seems a bit misleading: 'No space left on the device') > Thanks. An experienced user is supposed to recognize the message "No space left on device" as a rendering of the error number ENOSPC documented in the errno(2) manual page, described like this: 28 ENOSPC No space left on device. A write(2) to an ordinary file, the creation of a directory or symbolic link, or the creation of a directory entry failed because no more disk blocks were available on the file system, or the allocation of an inode for a newly created file failed because no more inodes were available on the file system. Error numbers are in part standardized by POSIX, such that they work in similar ways on different operating systems. While operating systems are free to add additional error numbers, discretion is limited for operating systems to make the standardized ones more specific. OpenBSD already provides 95 different error numbers. Increasing the number of error numbers also has downsides, for example making the documentation longer, forcing users to memorize more messages and their meanings, sometimes making the code more complicated, and sometimes breaking inspection of an error number, in case that code expects a common error number and finds a more specific one it does not know about, subsequently mishandling the error. In case of doubt, users are expected to consult the errno(2) manual and think hard what the program issuing the message did, and how that action might have caused the message. Admittedly, understanding what exactly is going on can sometimes feel non-trivial, and for new users in particular. In this case, i see no reasonable way of making the message more specific. Besides, when you do something highly unusual, in this case moving directories from /var to /home, some disruption and an occasional need for debugging is expected, and again, may not always feel trivial. Specifically, moving stuff from one default partition to another default partition is not really recommended. As long as the stuff is small, there is no need for moving anyway. If the stuff is large, then making a dedicated partition for it (rather than symlinking) is less fragile. Had you created a dedicated partition for /var/www, which can make sense on a webserver serving very large amounts of data, i would not have expected problems. Yours, Ingo