** Description changed: The `systemd` service for starting the NBD Clients on boot isn't working. ### Steps to Reproduce: 0. Install NBD - ``` - apt install nbd-server nbd-client - ``` + - + apt install nbd-server nbd-client + - + 1. Prepare an NBD server with a disk image to share. For instance: - ```bash - truncate -s 1T /vol-0.img - ``` + + - + truncate -s 1T /vol-0.img + - + 2. Configure the NBD server by adding the following to `/etc/nbd-server/conf.d/exports.conf`: - ``` - [vol0] - exportname = /vol-0.img - ``` + + - + [vol0] + exportname = /vol-0.img + - + 3. Configuring the client connection in `/etc/nbdtab`: Contents of `/etc/nbdtab`: - ``` - nbd0 localhost vol0 - ``` + - + nbd0 localhost vol0 + - + 4. Enable it on `systemd`: - ```bash - systemctl enable nbd@nbd0 - ``` + - + systemctl enable nbd@nbd0 + - Here's what I see: - ``` + - # systemctl enable nbd@nbd0 Created symlink /etc/systemd/system/dev-nbd0.device.requires/nbd@nbd0.service → /lib/systemd/system/nbd@.service. Unit /lib/systemd/system/nbd@.service is added as a dependency to a non-existent unit dev-nbd0.device. - ``` + - + 5. Add `nbd` auto-load to system'd boot: - ``` - echo nbd > /etc/modules-load.d/nbd.conf - ``` + echo nbd > /etc/modules-load.d/nbd.conf + 6. Reboot - ``` - sudo reboot - ``` + - + sudo reboot + - + 7. The service not coming up on the system's boot. Look: After rebooting the system, the NBD clien for `nbd0` isn't running (but it's enabled on systemd). - ``` + - root@cephao-1-ceph-osd-1:~# systemctl status nbd@nbd0 ○ nbd@nbd0.service - NBD client connection for nbd0 - Loaded: loaded (/lib/systemd/system/nbd@.service; enabled; vendor preset: enabled) - Active: inactive (dead) - Docs: man:nbd-client + Loaded: loaded (/lib/systemd/system/nbd@.service; enabled; vendor preset: enabled) + Active: inactive (dead) + Docs: man:nbd-client Feb 21 22:54:22 cephao-1-ceph-osd-1 systemd[1]: nbd@nbd0.service: Dependency Before=dev-nbd0.device ignored (.device units cannot be delayed) - ``` + - But if you try to start it again. It'll work: - ``` + - root@cephao-1-ceph-osd-1:~# systemctl start nbd@nbd0 root@cephao-1-ceph-osd-1:~# systemctl status nbd@nbd0 ● nbd@nbd0.service - NBD client connection for nbd0 - Loaded: loaded (/lib/systemd/system/nbd@.service; enabled; vendor preset: enabled) - Active: active (exited) since Wed 2024-02-21 22:57:37 UTC; 2s ago - Docs: man:nbd-client - Process: 1096 ExecStart=//sbin/nbd-client nbd0 (code=exited, status=0/SUCCESS) - Main PID: 1096 (code=exited, status=0/SUCCESS) - CPU: 4ms + Loaded: loaded (/lib/systemd/system/nbd@.service; enabled; vendor preset: enabled) + Active: active (exited) since Wed 2024-02-21 22:57:37 UTC; 2s ago + Docs: man:nbd-client + Process: 1096 ExecStart=//sbin/nbd-client nbd0 (code=exited, status=0/SUCCESS) + Main PID: 1096 (code=exited, status=0/SUCCESS) + CPU: 4ms Feb 21 22:57:37 cephao-1-ceph-osd-1 systemd[1]: Starting NBD client connection for nbd0... Feb 21 22:57:37 cephao-1-ceph-osd-1 nbd-client[1096]: Negotiation: ..size = 3145728MB Feb 21 22:57:37 cephao-1-ceph-osd-1 nbd-client[1096]: Connected /dev/nbd0 Feb 21 22:57:37 cephao-1-ceph-osd-1 systemd[1]: Finished NBD client connection for nbd0. - ``` + - So this forces me to have the following `/etc/rc.local` file as a workaround: - ``` + - #!/bin/bash sleep 6 systemctl start nbd@nbd0 - ``` + - Make it executable: - ``` + - chmod +x /etc/rc.local - ``` + - Reboot again, it'll be started on next boot! I don't think that the `/etc/rc.local` should be part of this procedure... =P NOTE: Don't need to run `update-initramfs -k all -u`.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2054616 Title: The systemd service for NBD Client doesn't come up on boot To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/nbd/+bug/2054616/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs