Changeset View
Changeset View
Standalone View
Standalone View
libexec/rc/rc.d/growfs_fstab
- This file was added.
Property | Old Value | New Value |
---|---|---|
File Mode | null | 100755 |
#!/bin/sh | |||||
# | |||||
# Copyright 2022 Michael J. Karels | |||||
# All rights reserved. | |||||
# | |||||
# Redistribution and use in source and binary forms, with or without | |||||
# modification, are permitted provided that the following conditions | |||||
# are met: | |||||
# 1. Redistributions of source code must retain the above copyright | |||||
# notice, this list of conditions and the following disclaimer. | |||||
# 2. Redistributions in binary form must reproduce the above copyright | |||||
# notice, this list of conditions and the following disclaimer in the | |||||
# documentation and/or other materials provided with the distribution. | |||||
# | |||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||||
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||||
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
# SUCH DAMAGE. | |||||
# | |||||
# $FreeBSD$ | |||||
# | |||||
# PROVIDE: growfs_fstab | |||||
# REQUIRE: growfs root | |||||
# KEYWORD: firstboot | |||||
# If the growfs script added a swap partition, then add a swap entry | |||||
# to /etc/fstab if none exists. Also add dumpdev if not configured. | |||||
. /etc/rc.subr | |||||
name="growfs_fstab" | |||||
desc="Add new swap partition to /etc/fstab" | |||||
start_cmd="growfs_fstab_start" | |||||
stop_cmd=":" | |||||
rcvar="growfs_enable" | |||||
growfs_fstab_start() | |||||
{ | |||||
dev=$(gpart list | awk ' | |||||
$2 == "Name:" { dev = $3 } | |||||
$1 == "type:" && $2 == "freebsd-swap" { | |||||
print dev; exit 0 | |||||
}') | |||||
if [ -n "$dev" ] && kenv -q growfs_swap_added >/dev/null | |||||
then | |||||
if awk ' | |||||
/^#/ { next } | |||||
$3 == "swap" { exit 1 } | |||||
' < /etc/fstab | |||||
then | |||||
glabel label -v growfs_swap $dev | |||||
printf "/dev/label/growfs_swap\tnone\t\tswap\tsw\t\t0\t0\n" >>/etc/fstab | |||||
fi | |||||
if ! grep -v "^#" /etc/rc.conf | grep -q "dumpdev" | |||||
then | |||||
echo 'dumpdev="AUTO"' >>/etc/rc.conf | |||||
dumpon /dev/label/growfs_swap | |||||
fi | |||||
fi | |||||
jlduran_gmail.com: I wonder if `sysrc(8)` may simplify/improve this block. As `dumpdev` may be somewhere else (`rc. | |||||
Done Inline ActionsWhile looking at this, I discovered that the default value of dumpdev is AUTO (/etc/defaults/rc.conf), so adding to /etc/rc.conf is unneeded. I'll redo this using sysrc to check for AUTO, then do the dumpon. Thanks! karels: While looking at this, I discovered that the default value of dumpdev is AUTO (/etc/defaults/rc. | |||||
Not Done Inline ActionsI think it is worth noting that dumpdev="AUTO" is the default only for -CURRENT, not for RELEASE branches. jlduran_gmail.com: I think it is worth noting that `dumpdev="AUTO"` is the default only for -CURRENT, not for… | |||||
Done Inline ActionsThanks. I have no intention to MFC this currently. If that changes, I might reconsider this, although it might be best to leave the default in place here. karels: Thanks. I have no intention to MFC this currently. If that changes, I might reconsider this… | |||||
} | |||||
load_rc_config $name | |||||
run_rc_command "$1" |
I wonder if sysrc(8) may simplify/improve this block. As dumpdev may be somewhere else (rc.conf(5)).