Package: virtualbox-guest-utils
Version: 7.0.16-dfsg-2ubuntu1.1
Severity: normal
Tags: patch

When a VirtualBox VM with auto-mounted shared folders (vboxsf) is started
headless (--type headless), the guest hangs indefinitely during boot at
"loading essential drivers" and never becomes accessible via SSH.
The boot completes normally when the VirtualBox GUI is opened.

ROOT CAUSE:

/etc/init.d/virtualbox-guest-utils declares:

# Required-Start: $remote_fs
# Required-Stop: $remote_fs

systemd translates $remote_fs to remote-fs.target. However, auto-mounted
shared folders (type vboxsf) are classified by systemd as remote mounts and
therefore become part of remote-fs.target. This creates a circular dependency:

remote-fs.target
→ waits for home-pascal-templates.mount (type vboxsf)
→ requires vboxsf kernel module and VBoxService
→ virtualbox-guest-utils.service
→ waits for remote-fs.target ← DEADLOCK

Confirmed via systemd-analyze critical-chain:

graphical.target @24.588s
└─multi-user.target @24.588s
└─apport.service @24.088s +499ms
└─remote-fs.target @24.085s
└─remote-fs-pre.target @24.085s

And systemd-analyze critical-chain virtualbox-guest-utils.service:

virtualbox-guest-utils.service +10.516s
└─basic.target @10.964s
└─...
└─local-fs.target @7.255s
└─home-pascal-templates.mount @22.680s ← vboxsf mount
└─local-fs-pre.target @2.239s

The deadlock resolves non-deterministically when the VirtualBox GUI is open,
because VBoxSVC initialization provides a different timing context.

FIX:

Change Required-Start and Required-Stop in
/etc/init.d/virtualbox-guest-utils from $remote_fs to $local_fs:

--- a/etc/init.d/virtualbox-guest-utils
+++ b/etc/init.d/virtualbox-guest-utils
@@ -5,8 +5,8 @@
# Provides: vboxguest virtualbox-guest-utils
# Short-Description: VirtualBox Linux Additions
-# Required-Start: $remote_fs
-# Required-Stop: $remote_fs
+# Required-Start: $local_fs
+# Required-Stop: $local_fs

VBoxService is itself responsible for mounting shared folders (vboxsf).
It cannot depend on remote-fs.target which is only fulfilled after those
same mounts complete. $local_fs is semantically correct: VBoxService only
requires the local filesystem to be ready before it can start.

SYSTEM INFORMATION:

Linux claude-agent 6.8.0-106-generic #106-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 6 
07:58:08 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Host OS: Windows 11
VirtualBox version: 7.0.16
Guest OS: Ubuntu 24.04 (headless, no desktop environment)
Shared folders: 3 auto-mounted folders (type vboxsf)

Reply via email to