blob: d39ea6a1515b3b822fe280ffa6afa989994e0c2e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
#!/bin/sh
# $FreeBSD$
: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_HELP=2}
: ${DIALOG_EXTRA=3}
: ${DIALOG_ITEM_HELP=4}
: ${DIALOG_ESC=255}
if ! mdconfig -l | grep -q md3; then
mdconfig -a -u 3 -s 8m
newfs /dev/md3
mount /dev/md3 /mnt
tar -C /etc -cf - . | tar -C /mnt -xf -
sync; sync; sync
umount /mnt
mount /dev/md3 /etc
fi
# Mount /dev/ufs/pfSense_Install on factory to prevent USB stick disk used
# to boot to be shown as an option to install
if [ -e /dev/ufs/pfSense_Install -a ! -d /tmp/usb_install_media ]; then
mkdir -p /tmp/usb_install_media
mount /dev/ufs/pfSense_Install /tmp/usb_install_media
fi
if [ -f /root/factory-pre.sh ]; then
sh -x /root/factory-pre.sh >/tmp/factory-pre.debug 2>&1
unset CE_message
else
CE_message=1
fi
MACHINE=`uname -m`
# resolv.conf from DHCP ends up in here, so make sure the directory exists
mkdir /tmp/bsdinstall_etc
kbdcontrol -d >/dev/null 2>&1
if [ $? -eq 0 ]; then
# Syscons: use xterm, start interesting things on other VTYs
if [ ${MACHINE} = "pc98" ]; then
TERM=cons25w
else
TERM=xterm
fi
# Don't send ESC on function-key 62/63 (left/right command key)
kbdcontrol -f 62 '' > /dev/null 2>&1
kbdcontrol -f 63 '' > /dev/null 2>&1
if [ -z "$EXTERNAL_VTY_STARTED" ]; then
# Init will clean these processes up if/when the system
# goes multiuser
touch /tmp/bsdinstall_log
tail -f /tmp/bsdinstall_log > /dev/ttyv2 &
/usr/libexec/getty autologin ttyv3 &
EXTERNAL_VTY_STARTED=1
fi
elif kenv -q smbios.system.product | grep -q "SG-5100"; then
TERM="vt100"
else
# Serial or other console
echo
echo "Welcome to pfSense!"
echo
echo "Please choose the appropriate terminal type for your system."
echo "Common console types are:"
echo " ansi Standard ANSI terminal"
echo " vt100 VT100 or compatible terminal"
echo " xterm xterm terminal emulator (or compatible)"
echo " cons25w cons25w terminal"
echo
echo -n "Console type [vt100]: "
read TERM
TERM=${TERM:-vt100}
fi
export TERM
if [ -f /etc/installerconfig ]; then
if bsdinstall script /etc/installerconfig; then
dialog --backtitle "pfSense Installer" --title "Complete" --no-cancel --ok-label "Reboot" --pause "Installation of pfSense complete! Rebooting in 10 seconds" 10 30 10
reboot
else
dialog --backtitle "pfSense Installer" --title "Error" --textbox /tmp/bsdinstall_log 0 0
fi
exit
fi
if [ -n "${CE_message}" ]; then
msg="pfSense is Copyright 2004-2019 Rubicon Communications, LLC (Netgate).\n\npfSense is a federally registered trademark of Electric Sheep Fencing, LLC. Any unauthorized use of this trademark is prohibited by state and federal law and international law. Refer to our Trademark Usage Guidelines for how to properly use the marks. All rights reserved.\n\nAbsolutely No Commercial Distribution Is Allowed."
else
msg="This software is only for use on platforms supplied by Rubicon Communications, LLC (Netgate).\n\npfSense is Copyright 2004-2019 Rubicon Communications, LLC (Netgate).\n\npfSense is a federally registered trademark of Electric Sheep Fencing, LLC. Any unauthorized use of this trademark is prohibited by state and federal law and international law. Refer to our Trademark Usage Guidelines for how to properly use the marks. All rights reserved.\n\nAbsolutely No Commercial Distribution Is Allowed"
fi
if [ ! -f /tmp/buildroom ]; then
exec 3>&1
dialog --backtitle "pfSense Installer" \
--title "Copyright and distribution notice" \
--ok-label "Accept" \
--msgbox "${msg}" 0 0 2>&1 1>&3
exec 3>&-
fi
IOPTS="\
\"Install\" \"Install pfSense\" \
\"Rescue Shell\" \"Launch a shell for rescue operations\""
if [ -x /root/recover_configxml.sh ] ; then
IOPTS="${IOPTS} \"Recover config.xml\" \"Recover config.xml from a previous install\""
fi
exec 3>&1
IMODE=`echo ${IOPTS} | xargs dialog --backtitle "pfSense Installer" \
--title "Welcome" \
--menu "Welcome to pfSense!" \
0 0 0 2>&1 1>&3` || exit 1
exec 3>&-
case "$IMODE" in
"Install") # Install
# If not netbooting, have the installer configure the network
dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
if [ ${dlv:=0} -eq 0 -a ! -f /etc/diskless ]; then
BSDINSTALL_CONFIGCURRENT=yes; export BSDINSTALL_CONFIGCURRENT
fi
trap true SIGINT # Ignore cntrl-C here
bsdinstall
if [ $? -eq 0 ]; then
dialog --backtitle "pfSense Installer" --title "Complete" --yes-label "Reboot" --no-label "Shell" --yesno "Installation of pfSense complete! Would you like to reboot into the installed system now?" 0 0 && reboot
clear
echo "When finished, type 'exit' to reboot."
/bin/sh
reboot
else
. /etc/rc.local
fi
;;
"Rescue Shell") # Rescue Shell
clear
echo "When finished, type 'exit' to return to the installer."
/bin/sh
. /etc/rc.local
;;
"Recover config.xml") # Recover config.xml from a target drive
/root/recover_configxml.sh
. /etc/rc.local
;;
esac
|