Problem
In RHEL 9, the chkconfig package, which is used to manage legacy SysV init scripts, is not installed by default. This causes issues with services like Veritas Volume Manager (vxvm) that rely on SysV init scripts for startup. Additionally, the /usr/lib/systemd/systemd-sysv-install script , required for enabling SysV services using systemctl, is missing, leading to service startup failures.
Environment:
Operating System : Red Hat Enterprise Linux (RHEL) 9
Service: Veritas Volume Manager (vxvm)
Key Services: vxvm-boot, vxvm-recover, blk-availability
Error Message
When attempting to enable vxvm-boot:Failed to execute /usr/lib/systemd/systemd-sysv-install: No such file or directory
When attempting to install chkconfig:
yum install chkconfig failed as /etc/init.d folder exists.
During installer -start:
vxconfigd failed to start.
Cause
1. Dependency Issues:
The vxvm-boot service fails to start automatically during boot on RHEL 9.
Attempts to enable the service using systemctl enable vxvm-boot result in an error because the /usr/lib/systemd/systemd-sysv-install script is missing. This script is required for managing legacy SysV init scripts.
2. Missing chkconfig Package:
The chkconfig package, which is required for managing SysV init scripts, is not installed by default in RHEL 9 .
Attempts to enable vxvm-boot using systemctl fail due to the absence of the /usr/lib/systemd/systemd-sysv-install script.
3. Conflict with /etc/init.d Directory:
The installation of the chkconfig package fails because the /etc/init.d directory already exists, causing a conflict.
Solution
A patch (CPI Patch) is now available for this issue in the current version ( InfoScale 8.0.2) of the product mentioned. Also, The Product Engineering team currently plans to address this issue through a patch or hotfix in the previous software version ( InfoScale 8.0).Refer to the link under Related Articles to obtain the patch needed to resolve the issue.
Workaround
Step 1: Install the chkconfig Package
Check if chkconfig is Installed:Run the following command to verify if chkconfig is already installed:
# rpm -qa | grep chkconfig
Install chkconfig:If not installed, use the following command to install it:
# yum install chkconfig
Resolve Installation Issues:If the installation fails due to a conflict with the /etc/init.d directory:
Move the existing /etc/init.d directory to a temporary location: mv /etc/init.d /var/tmp/init.d
Install the chkconfig package : yum install chkconfig or install it via rpm commands by dowloading from redhat portal.
Restore the contents of /var/tmp/init.d back to /etc/init.d: mv /var /tmp/init.d/* /etc/init.d/
Step 2 : Post installing chkconfig, Run "vxinstall" to reconfigure VxVM
# vxinstall
Step 3: Enable and Start vxvm Services
Verify vxvm services are enabled during boot
# systemctl is-enabled vxvm-boot
# systemctl is-enabled vxvm-recover
If not Enabled, Enable the vxvm services to start at boot:
# systemctl enable vxvm-boot
# systemctl enable vxvm-recover
Start the vxvm services manually:
# systemctl start vxvm-boot
# systemctl start vxvm-recover
Verify the services are running:
# systemctl status vxvm-boot
# systemctl status vxvm-recover
Step 4: Perform a Reboot to test the Service Status.
Additional Notes:
The chkconfig package is not installed by default in RHEL 9 because Red Hat has deprecated SysV init scripts in favor of system d.
The /usr/lib/systemd/systemd-sysv-install script is also missing in RHEL 9, which prevents systemctl from enabling SysV services.
References:
https://access.redhat.com/solutions/6837271
Outcome:
After performing the above steps:
The vxvm services (vxvm-boot and vxvm-recover) were successfully configured to start automatically on boot.
Dependency issues with blk-availability were resolved.
The chkconfig package was installed to manage legacy SysV init scripts.
A system reboot confirmed that all vxvm services came online without manual intervention.