Step 3b: systemd is no longer installed.
but the network is not available
The network must be configured manually using ip, without systemd or /etc/init.d.
On the machine, some components normally initialized during startup are probably missing:
Mounting /proc, /sys, and /run.
Loading the network interface driver (without udev, nothing loads it automatically).
Only then, configuring the IP address.
The resolv.conf file is only needed at the final stage.
Follow these steps from a root shell.
mount -o remount,rw /
mount -t proc proc /proc 2>/dev/null
mount -t sysfs sys /sys 2>/dev/null
mount -t tmpfs tmpfs /run 2>/dev/null
mkdir -p /run/network
ip -br link
If only lo appears, the network driver is probably not loaded.
Continue to step 3.
If an interface appears (ens192, eno1, eth0, etc.), note its exact name and proceed to step 4.
The interface is not necessarily named eth0, which is a common source of configuration errors.
lo)Attempt to load the appropriate driver automatically for each PCI device:
for m in /sys/bus/pci/devices/*/modalias; do modprobe -q "$(cat "$m")"; done
ip -br link
If no network interface appears, try common drivers depending on the hardware or hypervisor:
modprobe vmxnet3 # VMware
modprobe e1000e # Intel / VMware e1000e
modprobe e1000
modprobe virtio_net # Proxmox / KVM
modprobe tg3 # Broadcom (Dell, HP)
modprobe bnx2
modprobe igb
modprobe ixgbe
ip -br link
Replace ens192 and the example IP addresses with the appropriate values for your environment.
ip link set lo up
ip link set ens192 up
ip addr add 192.168.1.10/24 dev ens192
ip route add default via 192.168.1.1
If your network uses DHCP and a DHCP client is installed:
dhclient -v ens192
Use either the static configuration or DHCP, as appropriate.
ip -br addr
ping -c 2 192.168.1.1 # Default gateway
ping -c 2 1.1.1.1 # Internet connectivity
If both ping tests succeed, configure DNS.
On Debian, /etc/resolv.conf may be a symbolic link pointing to a file under /run/, which may not have existed before.
Remove the link before recreating the file:
rm -f /etc/resolv.conf
echo "nameserver 1.1.1.1" > /etc/resolv.conf
ping -c 2 deb.debian.org
If the network requires an HTTP proxy for Internet access, configure it for APT:
apt-get -o Acquire::http::Proxy="http://IP_PROXY:PORT/" update
Then install the required packages using the same proxy option:
apt-get -o Acquire::http::Proxy="http://IP_PROXY:PORT/" install systemd systemd-sysv ncurses-base
This provides an offline recovery option.
The Debian 12 DVD-1 installation image contains systemd, systemd-sysv, and ncurses-base.
Attach the ISO to the virtual machine's virtual CD/DVD drive, or use a USB drive on a physical server.
mkdir -p /mnt/cd
mount /dev/sr0 /mnt/cd
For a USB drive, the device might be /dev/sdb1, for example.
Locate the required packages:
find /mnt/cd/pool \
-name "systemd_*.deb" \
-o -name "systemd-sysv_*.deb" \
-o -name "ncurses-base_*.deb" \
-o -name "libsystemd*.deb"
To allow APT to resolve dependencies automatically, the installation media can also be configured as a local package repository:
echo "deb [trusted=yes] file:/mnt/cd bookworm main" > /etc/apt/sources.list.d/cdrom.list
apt-get update
apt-get install systemd systemd-sysv ncurses-base
Note:
Depending on the ISO layout, additional repository configuration may be required. The local media must also contain the packages and dependencies needed for installation.
Another option is to boot the machine using the Debian installation ISO in Rescue Mode.
Select the option to execute a shell on the root partition (/dev/...), then run the same apt-get commands.
Rescue Mode provides its own recovery environment, which may allow network access even if the installed system cannot initialize networking correctly.
Provide to the support team the output of these commands:
ip -br link
ip -br addr
ip route
ping -c 2 192.168.1.1
ping -c 2 1.1.1.1
These results should quickly identify where the network initialization process is failing.