8
8
# an ISO mounted as the CD-ROM, and customizes the system before powering down.
9
9
# SSH is enabled, and a user gopher, password gopher, is created.
10
10
11
- # Only tested on Ubuntu 14 .04.
11
+ # Only tested on Ubuntu 16 .04.
12
12
# Requires packages: qemu expect mkisofs
13
13
14
14
set -e
15
15
16
+ function download_image() {
17
+ local release_url=ftp://ftp.freebsd.org/pub/FreeBSD/releases/VM-IMAGES/${VERSION:? } -RELEASE/amd64/Latest
18
+ local img_filename=FreeBSD-${VERSION:? } -RELEASE-amd64${VERSION_TRAILER} .raw.xz
19
+ curl -O ${release_url} /${img_filename}
20
+ echo " ${SHA256} ${img_filename} " | sha256sum -c -
21
+ xz -d FreeBSD-${VERSION:? } -RELEASE-amd64${VERSION_TRAILER} .raw.xz
22
+ }
23
+
16
24
case $1 in
17
25
9.3)
18
26
readonly VERSION=9.3
19
27
readonly VERSION_TRAILER=" -20140711-r268512"
20
28
readonly DNS_LOOKUP=dig
29
+ readonly SHA256=4737218995ae056207c68f3105c0fbe655c32e8b76d2160ebfb1bba56dd5196f
21
30
;;
22
31
23
- 10.1)
24
- if [ -z $1 ]; then
25
- echo " No version specified, defaulting to 10.1"
26
- fi
27
- readonly VERSION=10.1
32
+ 10.3)
33
+ readonly VERSION=10.3
28
34
readonly VERSION_TRAILER=
29
35
# BIND replaced by unbound on FreeBSD 10, so drill(1) is the new dig(1)
30
36
readonly DNS_LOOKUP=drill
37
+ readonly SHA256=1d710ba643bf6a8ce5bff5a9d69b1657ccff83dd1f2df711d9b4e02f9aab7d06
38
+ ;;
39
+ 11.0)
40
+ readonly VERSION=11.0
41
+ readonly VERSION_TRAILER=
42
+ readonly DNS_LOOKUP=drill
43
+ readonly SHA256=f9f7fcac1acfe210979a72e0642a70fcf9c9381cc1884e966eac8381c724158c
31
44
;;
32
45
* )
33
46
echo " Usage: $0 <version>"
34
- echo " version - FreeBSD version to build. Valid choices: 9.3 10.1 "
47
+ echo " version - FreeBSD version to build. Valid choices: 9.3 10.3 11.0 "
35
48
exit 1
36
49
esac
37
50
@@ -43,8 +56,7 @@ if [ $(tput cols) -lt 80 ]; then
43
56
fi
44
57
45
58
if ! [ -e FreeBSD-${VERSION:? } -RELEASE-amd64.raw ]; then
46
- curl -O ftp://ftp.freebsd.org/pub/FreeBSD/releases/VM-IMAGES/${VERSION:? } -RELEASE/amd64/Latest/FreeBSD-${VERSION:? } -RELEASE-amd64${VERSION_TRAILER} .raw.xz
47
- xz -d FreeBSD-${VERSION:? } -RELEASE-amd64${VERSION_TRAILER} .raw.xz
59
+ download_image
48
60
fi
49
61
50
62
cp FreeBSD-${VERSION:? } -RELEASE-amd64${VERSION_TRAILER} .raw disk.raw
@@ -117,7 +129,7 @@ sleep 2
117
129
# TODO(wathiede): set serial output so we can track boot on GCE.
118
130
expect << EOF
119
131
set timeout 600
120
- spawn qemu-system-x86_64 -display curses -smp 2 -drive if=virtio,file=disk.raw -cdrom config.iso -net nic,model=virtio -net user
132
+ spawn qemu-system-x86_64 -display curses -smp 2 -drive if=virtio,file=disk.raw,cache=none -cdrom config.iso -net nic,model=virtio -net user
121
133
122
134
# Speed-up boot by going in to single user mode.
123
135
expect "Welcome to FreeBSD"
0 commit comments