NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

bin/56920: iscsid can't load /usr/lib/ before /usr is mounted

>Number:         56920
>Category:       bin
>Synopsis:       iscsid can't load /usr/lib/ before /usr is mounted
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jul 10 20:45:00 +0000 2022
>Originator:     Jakob Stoklund Olesen
>Release:        9.2
NetBSD 9.2 NetBSD 9.2 (GENERIC) #0: Wed May 12 13:15:55 UTC 2021 sparc64

I am trying to mount /usr from an iSCSI partition during boot using iscsid+iscsictl.

I set "iscsid=YES" in /etc/rc.conf, but iscsid fails to run because it needs to link against /usr/lib/ which is not available until /usr has been mounted.

Are programs in /sbin supposed to be able to run without /usr present? If so, the libisns files should probably be moved from /usr/lib to /lib.

I can work around the problem by copying /usr/lib/libisns* to /lib/:

sunblade$ ldd /sbin/iscsid
        -lpthread.1 => /lib/
        -lc.12 => /lib/
        -lisns.0 => /lib/
        -lutil.7 => /lib/

With this fix, I am able to mount /usr from iSCSI before mountcritremote during the boot process.

1. Set "iscsid=YES" in /etc/rc.conf.
2. Move /usr out of the way so it isn't available until mountcritremote
3. Reboot

There will be an error from /etc/rc.d/iscsid because /sbin/iscsid can't be executed.

Install /usr/lib/libisns* in /lib instead of /usr/lib.
Alternatively, link this library statically into iscsid.

Home | Main Index | Thread Index | Old Index