"directory not empty", "no such file or directory" errors on upgrade
freebsd at edvax.de
Fri Mar 13 16:08:22 UTC 2020
On Fri, 13 Mar 2020 07:04:24 -0600, Gary Aitken wrote:
> On 3/12/20 4:57 PM, Polytropon wrote:
> > On Thu, 12 Mar 2020 13:03:27 -0600, Gary Aitken wrote:
> >> Upgrading from 11.2-RELEASE to 11.3-RELEASE
> >> The final invoke of freebsd-update install completed with the following
> >> messages:
> >> ///usr/src/sys/pc98/include/acpica_machdep.h no such file or directory
> >> rmdir: ///usr/src/contrib/ofed/usr.lib directory not empty
> >> rmdir: ///usr/src/contrib/ofed/usr.bin directory not empty
> >> rmdir: ///usr/src/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ThreadSanitizer directory not empty
> >> rmdir: ///usr/src/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/AddressSanitizer directory not empty
> >> The upgraded system has no
> >> /usr/src/sys/pc98/ directory
> >> The files in
> >> /usr/src/contrib/ofed/usr.lib
> >> /usr/src/contrib/ofed/usr.bin
> >> /usr/src/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ThreadSanitizer
> >> /usr/src/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/AddressSanitizer
> >> appear to be old versions left over from the original 11.2 install
> >> Hints on the proper way to fix this?
> > When I read such messages, the first thing that comes to mind
> > is filesystem inconsistency. Reboot into single-user mode and
> > run a forced (!) fsck on all file systems, maybe repeat it if
> > needed.
> fsck reported all clean.
Okay - that would have been the most obvious problem. :-)
> > You probably don't have
> > background_fsck="NO"
> > in your /etc/rc.conf which in my opinion should be the default
> > setting (instead of YES). See "man 8 fsck" for further options
> > that might be needed.
> Thanks for the reminder; I used to have it set but on this rebuilt-
> after-a-crash system lost it.
As I said, I don't understand why this isn't the default.
A faster boot process into a potentially unstable filesystem
environment does not justify delegating low-level filesystem
check (and repair, and if needed, user interaction) into the
> > Things like "directory not empty" can also be due to files that
> > haven't been removed. This is possible if the schg (immutable)
> > flag has been set for a file; use "chflags noschg <file>"; see
> > "man 1 chflags" for details.
> > First step: Always rule out the obvious. ;-)
> The remaining question is:
> Are those directories supposed to be repopulated
> with more recent versions? Or should they simply be removed?
> If they need to be repopulated, how does one repopulate them?
You can entirely remove /usr/src. Depending on your source
retrieval method (freebsd-update, the "src" component, or
a normal SVN checkout) will create any directories beneath
/usr/src as they are needed. Probably a fresh new start for
/usr/src would be a good idea.
A way to identify offending files that stop you from removing
/usr/src completely could be the following:
# ls -Rlao /usr/src | grep "schg"
However, it's rather untypical to have immutable files in
the /usr/src subtree; they did at least sometimes appear
(in the past) in /usr/obj. It could be possible that some
other tool wrote to /usr/src and modified things it wasn't
supposed to touch...
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions