Introduction
Welcome, brave sysadmins and curious tinkerers! Today we embark on an epic quest to install
Diskless Remote Boot in Linux (DRBL). If you’ve ever dreamt of having a
lab full of stateless workstations that boot over the network and leave no local traces
(except maybe that old snack wrapper under the desk), DRBL is your Excalibur.
DRBL allows you to serve a complete operating system image to multiple clients, all diskless,
via PXE/TFTP/NFS or HTTP. Think of it as the ultimate “network party”: everyone boots from
the same DJ (the server), and nobody hogs the disk dance floor.
Prerequisites
- One dedicated DRBL server (bare-metal or VM) with Debian, Ubuntu,
CentOS, or other supported distro. - At least 2 GB RAM and 20 GB free disk on the server.
- Clients with PXE-capable NICs and network visibility to the server.
- Basic familiarity with the
sudocommand and editing text files via
viornano. - Static or DHCP-reserved IPs for server and clients. (Yes, DHCP leases should behave.)
- A sense of humor. We’ll need it when troubleshooting firmware quirks at 3 AM.
1. Prepare the DRBL Server
1.1 Install the Base System
On a fresh Debian/Ubuntu server, update and install essential packages:
sudo apt-get update
sudo apt-get install -y wget curl vim
For CentOS/RHEL:
sudo yum update -y
sudo yum install -y wget curl vim
1.2 Configure Networking
Assign a static IP to your DRBL server. For example, on Debian/Ubuntu:
cat << EOF sudo tee /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
EOF
sudo netplan apply
Adjust interface names and IPs as needed. Verify with ip addr.
2. Install DRBL
2.1 Add the DRBL Repository
On Debian/Ubuntu:
wget -qO - http://drbl.org/ubuntu_drbl/drbl.gpg.key sudo apt-key add -
sudo bash -c echo deb http://drbl.org/ubuntu_drbl/ (lsb_release -sc) main > /etc/apt/sources.list.d/drbl.list
sudo apt-get update
On CentOS/RHEL, download and install the RPM from the DRBL site:
sudo yum install -y http://drbl.org/yum/drbl-7.0.0-1.el7.noarch.rpm
2.2 Install the DRBL Package
Simply run:
sudo apt-get install -y drbl
Or on CentOS/RHEL:
sudo yum install -y drbl
This pulls in Clonezilla, TFTP, DHCP, NFS/HTTP, and assorted scripts—your
medieval siege engine of network booting.
3. Configure DRBL
3.1 Run the DRBL Wizard
The DRBL installer provides an interactive script:
sudo drblsrv -i
You’ll be prompted for:
- Network interface: e.g.,
eth0. - DHCP settings: Pool range (e.g., 192.168.1.100–192.168.1.200),
gateway, netmask. - NFS/HTTP sharing: Select diskless, Clonezilla, or other modes.
Accept defaults or tailor to your environment. When in doubt, chuckle nervously and
press Enter.
3.2 Verify DHCP/TFTP Configuration
DRBL writes /etc/dhcp/dhcpd.conf and /var/lib/tftpboot files.
Ensure service isc-dhcp-server status and
service tftpd-hpa status are running. Firewall? Open ports 67, 69, 2049.
4. Set Up the Diskless Client Images
4.1 Choose a Distribution
DRBL supports Debian, Ubuntu, CentOS, Fedora, Arch, and more. For example, to prepare a
Debian image:
sudo /usr/sbin/drbl-chroot -d stretch /drbl/images/stretch
This command creates a chroot under /drbl/images/stretch. Spend a coffee break
while packages install.
4.2 Customize the Image
- Enter the chroot:
sudo chroot /drbl/images/stretch /bin/bash. - Install desktop environments or software:
apt-get install -y xfce4 gnome-terminal. - Tweak
/etc/hosts,/etc/resolv.conf, or add custom scripts. - Exit with
exit, then runsudo /usr/sbin/drbl-update -c.
5. Boot the Clients
5.1 PXE Boot Setup on the Client
1. Enter BIOS/UEFI setup.
2. Enable Network Boot/PXE.
3. Move it to the top of the boot order.
4. Reboot and hope for the best.
If everything is configured correctly, you’ll see the DRBL boot menu. Select your image
(e.g., Debian Stretch) and press Enter.
5.2 Monitoring and Troubleshooting
- On the server, watch
/var/log/syslogand
/var/log/daemon.logfor DHCP/TFTP errors. - Check NFS mounts on the client console—if it hangs, NFS export may be wrong.
- Firewall? Temporarily disable with
sudo ufw disableor
sudo systemctl stop firewalld. - Still stuck? Google the error message, or sacrifice an imaginary rubber ducky to the
IT gods.
6. Advanced Tips and Tricks
6.1 Creating Persistent Overlay
If you want clients to save settings across reboots, use an overlay or local disk:
drbl-overlay --create /drbl/images/stretch
Then configure each client to allocate a few GB for persistence.
6.2 Clonezilla Integration
DRBL bundles Clonezilla for imaging. To capture a master disk:
sudo drbl-ocs -q2 -j2 -z1p -i 2000 -p true savedisk myimage
Replace savedisk and myimage with your names.
Restoring is just as easy: drbl-ocs -r -k1 -p true restoredisk myimage.
6.3 Load Balancing and Multiple Networks
Got two NICs? You can serve PXE/DHCP on one and sync NFS on the other. Configure
/etc/drbl/drbl.conf accordingly:
DRBL_PXE_NIC=eth0
DRBL_NFS_NIC=eth1
Troubleshooting Cheat Sheet
| Symptom | Likely Cause | Fix |
|---|---|---|
| No PXE menu | DHCP or TFTP misconfig | Check /etc/dhcp/dhcpd.conf, /var/lib/tftpboot |
| Client hangs at NFS mount | NFS export wrong or firewall | Verify exportfs -v, open port 2049 |
| Image doesn’t boot | Corrupt chroot or missing kernel | Re-run drbl-update -c, reinstall kernel |
Wrapping Up
Congratulations! You’ve tamed the mighty DRBL beast and now serve diskless clients like a
benevolent network overlord. Your lab—or classroom—will thank you for the fast,
maintainable setup. And if anything breaks, remember: just like a good joke, a quick
reboot often fixes most problems.
For additional reading and downloads, visit the official DRBL site:
http://drbl.org and the
Clonezilla project. Happy booting!
Official Website of Diskless Remote Boot in Linux (DRBL) Live
Leave a Reply