Download raw body.
rc: skip rootdisk_nodes if we are running diskless
On Tue, Sep 08, 2026 at 09:15:08PM +0330, chara wrote:
> ping.
>
> On Wed, 02 Sep 2026 14:37:00 -0600
> "Theo de Raadt" <deraadt@openbsd.org> wrote:
>
> > That looks good to me.
It looked OK to me, this is the same, but with some consistency fixes to
use [[ ]] as is done elsewhere in /etc/rc and not use `if` for early
returns and local variables in use.
I can split the commits if desired.
Comments, OK?
Index: rc
===================================================================
RCS file: /cvs/src/etc/rc,v
diff -u -p -r1.593 rc
--- rc 3 Sep 2026 18:56:40 -0000 1.593
+++ rc 9 Sep 2026 18:02:19 -0000
@@ -308,22 +308,26 @@ run_upgrade_script() {
# mount -uw /dev/rootdisk /
# cd /dev && ./MAKEDEV redodisks
rootdisk_nodes() {
- if [ $(sysctl -n kern.maxpartitions) = 16 ]; then
- _rootdev=$(mount | grep ' / ' | cut -d' ' -f1)
- _maj=$(stat -f "%Hr" $_rootdev)
- _omin=$(stat -f "%Lr" $_rootdev)
- _min=$((_omin / 16 * 64))
- if [ -b /dev/rootdisk -a \
- "$(stat -qf %Hr,%Lr /dev/rootdisk)" = "$_maj,$_min" ]; then
- return
- fi
- # does not exist or device changed, redo
- _rrootdev=$(echo $_rootdev | sed -e 's,dev/,dev/r,')
- _rmaj=$(stat -f "%Hr" $_rrootdev)
- rm -f /dev/rrootdisk /dev/rootdisk
- mknod -m 600 /dev/rrootdisk c $_rmaj $_min
- mknod -m 600 /dev/rootdisk b $_maj $_min
- fi
+ local _rootdev _rrootdev _maj _rmaj _omin _min
+ [[ $(sysctl -n kern.maxpartitions) = 16 ]] || return
+
+ # Find and use root device if we are not booting from NFS
+ _rootdev=$(mount | grep ' / ' | grep -v ':' | cut -d' ' -f1)
+ [[ -n $_rootdev ]] || return
+
+ _maj=$(stat -f "%Hr" $_rootdev)
+ _omin=$(stat -f "%Lr" $_rootdev)
+ _min=$((_omin / 16 * 64))
+ [[ -b /dev/rootdisk ]] &&
+ [[ "$(stat -qf %Hr,%Lr /dev/rootdisk)" = "$_maj,$_min" ]] &&
+ return
+
+ # does not exist or device changed, redo
+ _rrootdev=$(echo $_rootdev | sed -e 's,dev/,dev/r,')
+ _rmaj=$(stat -f "%Hr" $_rrootdev)
+ rm -f /dev/rrootdisk /dev/rootdisk
+ mknod -m 600 /dev/rrootdisk c $_rmaj $_min
+ mknod -m 600 /dev/rootdisk b $_maj $_min
}
# Check filesystems, optionally by using a fsck(8) flag.
rc: skip rootdisk_nodes if we are running diskless