nextboot.sh revision 212789
1162485Sjulian#! /bin/sh 2162485Sjulian# 3162485Sjulian# Copyright 2002. Gordon Tetlow. 4162485Sjulian# gordon@FreeBSD.org 5162485Sjulian# 6162485Sjulian# $FreeBSD: head/sbin/reboot/nextboot.sh 212789 2010-09-17 09:50:36Z avg $ 7162485Sjulian 8162485Sjuliandelete="NO" 9162485Sjulianforce="NO" 10162485Sjuliannextboot_file="/boot/nextboot.conf" 11162485Sjulian 12162485Sjuliandisplay_usage() { 13162485Sjulian echo "Usage: nextboot [-f] [-o options] -k kernel" 14162485Sjulian echo " nextboot -D" 15162485Sjulian} 16162485Sjulian 17162485Sjulianwhile getopts "Dfk:o:" argument ; do 18162485Sjulian case "${argument}" in 19162485Sjulian D) 20162485Sjulian delete="YES" 21162485Sjulian ;; 22162485Sjulian f) 23162485Sjulian force="YES" 24162485Sjulian ;; 25162485Sjulian k) 26162485Sjulian kernel="${OPTARG}" 27162485Sjulian ;; 28162485Sjulian o) 29162485Sjulian kernel_options="${OPTARG}" 30162485Sjulian ;; 31162485Sjulian *) 32162485Sjulian display_usage 33162485Sjulian exit 1 34162485Sjulian ;; 35162485Sjulian esac 36162485Sjuliandone 37162485Sjulian 38162485Sjulianif [ ${delete} = "YES" ]; then 39162485Sjulian rm -f ${nextboot_file} 40162485Sjulian exit 0 41162485Sjulianfi 42162485Sjulian 43162485Sjulianif [ "xxx${kernel}" = "xxx" ]; then 44162485Sjulian display_usage 45162485Sjulian exit 1 46162485Sjulianfi 47162485Sjulian 48162485Sjulianif [ ${force} = "NO" -a ! -d /boot/${kernel} ]; then 49162485Sjulian echo "Error: /boot/${kernel} doesn't exist. Use -f to override." 50162485Sjulian exit 1 51162485Sjulianfi 52162485Sjulian 53162485Sjuliandf -Tn "/boot/" 2>/dev/null | while read _fs _type _other ; do 54162485Sjulian [ "zfs" = "${_type}" ] || continue 55162485Sjulian cat 1>&2 <<-EOF 56162485Sjulian WARNING: loader(8) has only R/O support for ZFS 57162485Sjulian nextboot.conf will NOT be reset in case of kernel boot failure 58162485Sjulian EOF 59162485Sjuliandone 60162485Sjulian 61162485Sjuliancat > ${nextboot_file} << EOF 62162485Sjuliannextboot_enable="YES" 63162485Sjuliankernel="${kernel}" 64162485Sjuliankernel_options="${kernel_options}" 65162485SjulianEOF 66162485Sjulian