1# $OpenBSD: install.md,v 1.46 2022/09/02 10:16:51 miod Exp $ 2# 3# Copyright (c) 1996 The NetBSD Foundation, Inc. 4# All rights reserved. 5# 6# This code is derived from software contributed to The NetBSD Foundation 7# by Jason R. Thorpe. 8# 9# Redistribution and use in source and binary forms, with or without 10# modification, are permitted provided that the following conditions 11# are met: 12# 1. Redistributions of source code must retain the above copyright 13# notice, this list of conditions and the following disclaimer. 14# 2. Redistributions in binary form must reproduce the above copyright 15# notice, this list of conditions and the following disclaimer in the 16# documentation and/or other materials provided with the distribution. 17# 18# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE 22# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28# POSSIBILITY OF SUCH DAMAGE. 29# 30# 31# machine dependent section of installation/upgrade script. 32# 33 34md_installboot() { 35 if ! installboot -r /mnt ${1}; then 36 echo "\nFailed to install bootblocks." 37 echo "You will not be able to boot OpenBSD from ${1}." 38 exit 39 fi 40} 41 42md_prep_fdisk() { 43 local _disk=$1 _q _d 44 45 while :; do 46 _d=whole 47 if disk_has $_disk mbr; then 48 fdisk $_disk 49 if disk_has $_disk mbr openbsd; then 50 _q=", use the (O)penBSD area" 51 _d=OpenBSD 52 fi 53 else 54 echo "MBR has invalid signature; not showing it." 55 fi 56 ask "Use (W)hole disk$_q or (E)dit the MBR?" "$_d" 57 case $resp in 58 [wW]*) 59 echo -n "Setting OpenBSD MBR partition to whole $_disk..." 60 fdisk -iy $_disk >/dev/null 61 echo "done." 62 return ;; 63 [eE]*) 64 # Manually configure the MBR. 65 cat <<__EOT 66 67You will now create a single MBR partition to contain your OpenBSD data. This 68partition must have an id of 'A6'; must *NOT* overlap other partitions; and 69must be marked as the only active partition. Inside the fdisk command, the 70'manual' command describes all the fdisk commands in detail. 71 72$(fdisk ${_disk}) 73__EOT 74 fdisk -e ${_disk} 75 disk_has $_disk mbr openbsd && return 76 echo No OpenBSD partition in MBR, try again. ;; 77 [oO]*) 78 [[ $_d == OpenBSD ]] || continue 79 return ;; 80 esac 81 done 82} 83 84md_prep_disklabel() { 85 local _disk=$1 _f=/tmp/i/fstab.$1 86 87 md_prep_fdisk $_disk 88 89 disklabel_autolayout $_disk $_f || return 90 [[ -s $_f ]] && return 91 92 # Edit disklabel manually. 93 # Abandon all hope, ye who enter here. 94 disklabel -F $_f -E $_disk 95} 96 97md_congrats() { 98} 99 100md_consoleinfo() { 101} 102