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