1# $NetBSD: install.md,v 1.5 2019/04/10 14:52:53 christos Exp $ 2# 3# 4# Copyright (c) 1996 The NetBSD Foundation, Inc. 5# All rights reserved. 6# 7# This code is derived from software contributed to The NetBSD Foundation 8# by Jason R. Thorpe. 9# 10# Redistribution and use in source and binary forms, with or without 11# modification, are permitted provided that the following conditions 12# are met: 13# 1. Redistributions of source code must retain the above copyright 14# notice, this list of conditions and the following disclaimer. 15# 2. Redistributions in binary form must reproduce the above copyright 16# notice, this list of conditions and the following disclaimer in the 17# documentation and/or other materials provided with the distribution. 18# 19# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29# POSSIBILITY OF SUCH DAMAGE. 30# 31 32# 33# machine dependent section of installation/upgrade script. 34# 35 36# Machine-dependent install sets 37# MDSETS="xbin xman xinc xcon" XXX 38MDSETS="" 39 40md_set_term() { 41 if [ ! -z "$TERM" ]; then 42 return 43 fi 44 echo -n "Specify terminal type [sun]: " 45 getresp "sun" 46 TERM="$resp" 47 export TERM 48} 49 50md_makerootwritable() { 51 # Just remount the root device read-write. 52 if [ ! -e /tmp/root_writable ]; then 53 echo "Remounting root read-write..." 54 mi_mount_kernfs 55 mount -u -t ffs /kern/rootdev / 56 swapctl -a /kern/rootdev 57 cp /dev/null /tmp/root_writable 58 fi 59} 60 61md_get_diskdevs() { 62 # return available disk devices 63 mi_mount_kernfs 64 mi_filter_msgbuf | sed -ne '/^[xs]d[0-9] /s/ .*//p' \ 65 -e '/^xy[0-9] /s/ .*//p' 66} 67 68md_get_cddevs() { 69 # return available CDROM devices 70 mi_mount_kernfs 71 mi_filter_msgbuf | sed -ne '/^cd[0-9] /s/ .*//p' 72} 73 74md_get_ifdevs() { 75 # return available network devices 76 mi_mount_kernfs 77 mi_filter_msgbuf | sed -ne '/^[il]e[0-9] /s/ .*//p' 78} 79 80md_get_partition_range() { 81 # return an expression describing the valid partition id's 82 echo '[a-h]' 83} 84 85md_installboot() { 86 # install the boot block on disk $1 87 echo "Installing boot block..." 88 ( cd /usr/mdec ;\ 89 cp -p ./ufsboot /mnt/ufsboot ;\ 90 sync ; sleep 1 ; sync ;\ 91 /usr/sbin/installboot -v /dev/r${1}a bootxx ufsboot ) 92 echo "done." 93} 94 95md_native_fstype() { 96} 97 98md_native_fsopts() { 99} 100 101md_prep_disklabel() { 102 # $1 is the root disk 103 echo -n "Do you wish to edit the disklabel on ${1}? [y]" 104 getresp "y" 105 case "$resp" in 106 y*|Y*) ;; 107 *) return ;; 108 esac 109 110 # display example 111 cat << \__md_prep_disklabel_1 112Here is an example of what the partition information will look like once 113you have entered the disklabel editor. Disk partition sizes and offsets 114are in sector (most likely 512 bytes) units. Make sure all partitions 115start on a cylinder boundary (c/t/s == XXX/0/0). 116 117[Example] 118partition start (c/t/s) nblks (c/t/s) type 119 120 a (root) 0 (0/00/00) 31392 (109/00/00) 4.2BSD 121 b (swap) 31392 (109/00/00) 73440 (255/00/00) swap 122 c (disk) 0 (0/00/00) 1070496 (3717/00/00) unused 123 d (user) 104832 (364/00/00) 30528 (106/00/00) 4.2BSD 124 e (user) 135360 (470/00/00) 40896 (142/00/00) 4.2BSD 125 f (user) 176256 (612/00/00) 92160 (320/00/00) 4.2BSD 126 g (user) 268416 (932/00/00) 802080 (2785/00/00) 4.2BSD 127 128[End of example] 129 130Hit the <return> key when you have read this... 131 132__md_prep_disklabel_1 133 getresp "" 134 edlabel /dev/r${1}c 135} 136 137md_copy_kernel() { 138 if [ ! -f /mnt/netbsd ]; then 139 echo -n "No kernel set extracted. Copying miniroot kernel..." 140 cp -p /netbsd /mnt/netbsd 141 echo "done." 142 fi 143 ln /mnt/netbsd /mnt/vmunix 144} 145 146md_welcome_banner() { 147 if [ "$MODE" = "install" ]; then 148 echo "" 149 echo "Welcome to the NetBSD/sun2 ${VERSION} installation program." 150 cat << \__welcome_banner_1 151 152This program is designed to help you put NetBSD on your disk, 153in a simple and rational way. You'll be asked several questions, 154and it would probably be useful to have your disk's hardware 155manual, the installation notes, and a calculator handy. 156__welcome_banner_1 157 158 else 159 echo "" 160 echo "Welcome to the NetBSD/sun2 ${VERSION} upgrade program." 161 cat << \__welcome_banner_2 162 163This program is designed to help you upgrade your NetBSD system in a 164simple and rational way. 165 166As a reminder, installing the 'etc' binary set is NOT recommended. 167Once the rest of your system has been upgraded, you should manually 168merge any changes to files in the 'etc' set into those files which 169already exist on your system. 170__welcome_banner_2 171 fi 172 173cat << \__welcome_banner_3 174 175As with anything which modifies your disk's contents, this 176program can cause SIGNIFICANT data loss, and you are advised 177to make sure your data is backed up before beginning the 178installation process. 179 180Default answers are displayed in brackets after the questions. 181You can hit Control-C at any time to quit, but if you do so at a 182prompt, you may have to hit return. Also, quitting in the middle of 183installation may leave your system in an inconsistent state. 184 185__welcome_banner_3 186} 187 188md_not_going_to_install() { 189 cat << \__not_going_to_install_1 190 191OK, then. Enter 'halt' at the prompt to halt the machine. Once the 192machine has halted, power-cycle the system to load new boot code. 193 194__not_going_to_install_1 195} 196 197md_congrats() { 198 local what; 199 if [ "$MODE" = "install" ]; then 200 what="installed"; 201 else 202 what="upgraded"; 203 fi 204 cat << __congratulations_1 205 206CONGRATULATIONS! You have successfully $what NetBSD! 207To boot the installed system, enter halt at the command prompt. Once the 208system has halted, reset the machine and boot from the disk. 209 210__congratulations_1 211} 212