Raspberry Pi OS Bookworm Witness Node for StorMagic NSH
This article is intended for administrators wishing to configure a Raspberry Pi running Raspberry Pi OS Bookworm (Debian 12) as a StorMagic NSH witness service node.
Resolution / Information
Raspberry Pi OS Bookworm introduces changes to networking and legacy 32-bit ARM binary compatibility that can affect installation of the StorMagic witness service. The following sections explain how to prepare the Raspberry Pi, configure its network settings, install and patch the StorMagic NSH software where required, verify the service, and configure the witness for use with SvHCI.
Background: Bookworm Changes That Matter
Raspberry Pi OS and Debian changes in the Bullseye to Bookworm timeline can affect older binaries and headless networking configurations.
Raspberry Pi OS Timeline Summary
- Before 2020: 32-bit kernel and 32-bit userland (
armhf). - 2020–2021: Hybrid build using a 64-bit kernel and 32-bit userland.
- 2022 onward: Full 64-bit versions became available with a 64-bit kernel and 64-bit userland, although hybrid images remain common.
Debian 12 Bookworm Interpreter Path Change
Legacy 32-bit ARM binaries compiled with the interpreter path /lib/ld-linux.so.3 may fail on Bookworm because the legacy path was removed.
Common fixes include rebuilding the application, adding a symbolic link, or updating the ELF interpreter path using patchelf.
Networking Stack Change
Bookworm images commonly use NetworkManager rather than dhcpcd.
If the Raspberry Pi previously relied on /etc/dhcpcd.conf for static IP address configuration, the settings may need to be migrated to a NetworkManager connection profile.
Install Raspberry Pi OS Bookworm
Use Raspberry Pi Imager to write Raspberry Pi OS Bookworm to a microSD card.
- Download Raspberry Pi Imager from: Raspberry Pi Software
- Select Raspberry Pi OS Lite (32-bit) from the available operating system options.
Raspberry Pi Imager selection
Raspberry Pi operating system options
Storage selection
- A full 64-bit kernel and 64-bit userland installation may not work with applications that are available only as 32-bit binaries.
- The legacy Raspberry Pi OS option remains viable. For Bullseye guidance, see: Installing an SvSAN Witness on Raspberry Pi Raspbian 32-bit
Raspberry Pi OS Lite 32-bit selection
Raspberry Pi Imager Advanced Options
Before writing the image, configure the required advanced options:
- Set the hostname, for example
smwitness.yourdomain. - Enable SSH.
- Set the username and password.
- Optionally configure the wireless network credentials.
Configure Hostname and DNS
Set a unique hostname for the Raspberry Pi and confirm that the name resolves correctly on the network.
sudo hostnamectl set-hostname smwitness.yourdomain
Add the hostname and IP address to /etc/hosts.
Example:
10.x.x.x hostname.FQDN hostname
This ensures local name resolution for services that rely on the fully qualified domain name.
Configure Networking with NetworkManager
Raspberry Pi OS Bookworm uses NetworkManager by default instead of dhcpcd.
Enable and start NetworkManager if required:
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
Configure a static IP address:
nmcli connection modify eth0 ipv4.addresses 10.10.10.100/24
nmcli connection modify eth0 ipv4.gateway 10.10.10.1
nmcli connection modify eth0 ipv4.dns "10.10.10.5"
nmcli connection modify eth0 ipv4.method manual
nmcli connection up eth0
/etc/dhcpcd.conf for static IP address and DNS configuration.Enable VNC (Optional)
If graphical remote access is required, VNC can be enabled on the Raspberry Pi.
Refer to the following guide for additional information:
Raspberry Pi VNC: How to Set Up a Remote Desktop
Optional VNC configuration
Install the Raspberry Pi desktop components and the RealVNC Server:
sudo apt update
sudo apt install raspberrypi-ui-mods realvnc-vnc-server
Launch the Raspberry Pi configuration utility:
sudo raspi-config
Navigate to:
Interface Options → VNC → Enable
Enable VNC from raspi-config
VNC enabled successfully
You can now connect to the Raspberry Pi using a VNC client and the configured IP address or hostname.
Install the StorMagic Witness Service (NSH)
Download the latest ARM witness package from the following location:
Transfer the package to the Raspberry Pi using SCP or by downloading it directly from the desktop environment if a GUI is installed.
Download and transfer the installation package
If using the StorMagic Automation Toolkit, extract the bundle and launch the installer:
mkdir ~/svsan
cd ~/svsan
unzip ~/Downloads/SvSAN_Automation_Toolkit.zip
cd SvSAN-Automation-Toolkit
python3 nsh_gui_installer.py
StorMagic Automation Toolkit installer
Patch the ELF Interpreter Paths (Bookworm)
Install patchelf:
sudo apt install patchelf
Update the interpreter path for each StorMagic binary:
sudo patchelf --set-interpreter /lib/ld-linux-armhf.so.3 /opt/stormagic/bin/smdiscod
sudo patchelf --set-interpreter /lib/ld-linux-armhf.so.3 /opt/stormagic/bin/smclusterd
sudo patchelf --set-interpreter /lib/ld-linux-armhf.so.3 /opt/stormagic/bin/exlog
sudo patchelf --set-interpreter /lib/ld-linux-armhf.so.3 /opt/stormagic/bin/smc_state
Alternatively, run the helper script included with the Automation Toolkit:
sudo bash scripts/fix_interpreter.sh
Start and Enable the Witness Service
Restart the witness service:
sudo systemctl restart StorMagicNSH
Verify the service status:
sudo systemctl status StorMagicNSH
When the service is operating correctly you should see smdisco and smclusterd running.
StorMagic NSH service running
Verify the Witness Service
Confirm that the witness service is listening on the expected UDP ports:
sudo ss -ulpn | grep smdisc
The output should resemble the following:
Expected service output
Configure the Witness in SvHCI
Once the witness service is running, configure it for use within the SvHCI environment.
From the Discovery tab, verify that the witness is automatically discovered. If it does not appear, add it manually using either its IP address or fully qualified domain name.
Add a new witness discovery entry
Witness successfully discovered
Edit the cluster configuration, select the newly discovered witness, and apply the changes.
Select the Raspberry Pi witness
Verify that the cluster now reports the Raspberry Pi as the active witness.
Cluster witness successfully updated
Open the Targets tab and confirm that the witness is monitoring the configured storage targets.
Targets monitored by the witness
Troubleshooting
- If DNS resolution is unavailable, configure the witness using its static IP address.
- Ensure that any firewalls or VLAN policies allow the required UDP communication between the hosts and the witness.
- If the interpreter patch was skipped, the StorMagic services may fail with a cannot execute: required file not found error.
Example troubleshooting view
For additional assistance, contact support@stormagic.com.

Comments
0 comments
Article is closed for comments.