diff options
-rwxr-xr-x | bootstrap | 25 | ||||
-rw-r--r-- | bootstrap.txt | 10 | ||||
-rw-r--r-- | doc/manual.cli | 11 | ||||
-rwxr-xr-x | init | 13 |
4 files changed, 49 insertions, 10 deletions
@@ -26,7 +26,7 @@ # usage="usage: $0" -macaddr="de:ad:be:ef:b8:da" # @@ TMP Mmac address for testing. +macaddr="de:ad:be:ef:b8:da" # @@ TMP mac address for testing. id="$(id -un)" btrfs=/btrfs @@ -45,12 +45,14 @@ root="$btrfs/$id/buildos" # release="unstable" components="main,contrib,non-free" -mirror="https://deb.debian.org/debian/" +mirror="http://deb.debian.org/debian/" +#mirror="https://deb.debian.org/debian/" base_pkgs="locales,klibc-utils,sudo,systemd-container,udev" base_pkgs+=",kmod,linux-base,firmware-linux-free,irqbalance,pciutils,usbutils" base_pkgs+=",intel-microcode,amd64-microcode" base_pkgs+=",hdparm,btrfs-progs" +base_pkgs+=",lm-sensors" base_pkgs+=",net-tools,iproute2,iptables,isc-dhcp-client" base_pkgs+=",ifupdown,bridge-utils,dnsmasq,ntp,postfix" @@ -65,7 +67,7 @@ base_pkgs+=",qemu-kvm,qemu-utils,socat" base_pkgs+=",g++,make,pkg-config" -extra_pkgs="lm-sensors" +extra_pkgs="ca-certificates,smartmontools" owd="$(pwd)" trap "{ cd '$owd'; exit 1; }" ERR @@ -242,7 +244,11 @@ mount --move /sys /tmp/sys # Run second stage of debootstrap. # -/debootstrap/debootstrap --second-stage +if ! /debootstrap/debootstrap --second-stage; then + cat /debootstrap/debootstrap.log 1>&2 + bash + exit 1 +fi rm -f /etc/localtime cp /usr/share/zoneinfo/UTC /etc/localtime @@ -364,12 +370,19 @@ set -x # apt-get update apt-get install -y build-essential linux-source +apt-get install -y bison flex +apt-get install -y libelf-dev +apt-get install -y libssl-dev cd /usr/src tar xf linux-source-* mv linux-source-*/ linux xzcat linux-config-*/config.amd64_none_amd64.xz >linux/.config cd linux +# Adjust configuration. +# +echo 'CONFIG_SYSTEM_TRUSTED_KEYS=""' >>.config + # Adjust kernel command line size limit. # sed -i -re 's/^(#define COMMAND_LINE_SIZE ).+\$/\1 4096/' arch/x86/include/asm/setup.h @@ -437,6 +450,10 @@ for p in \$(sed -e 's/,/ /g' <<<"$extra_pkgs"); do apt-get install -y --no-install-recommends "\$p" done +# We want the utility (smartctl) but not the daemon. +# +systemctl disable smartd + # Create the build user, /build home directory. Make a password-less sudo'er. # # Note that we force UID/GID to specific numbers to make sure they are diff --git a/bootstrap.txt b/bootstrap.txt index 18c7af2..c7f0bf1 100644 --- a/bootstrap.txt +++ b/bootstrap.txt @@ -15,3 +15,13 @@ diff -urw <old> <new> We currently only use init plus udev in scripts/init-{top,bottom} + +* Upgrade to latest debootstrap/keyrings from unstable. + +* Note: as of latest attempt, bootstrap of https was still broken + +* Bootstrap: + + ./bootstrap 2>&1 | tee bootstrap.log + +* Compare sizes to previous version for any abnormalities. diff --git a/doc/manual.cli b/doc/manual.cli index 3d9e011..5c1ba3c 100644 --- a/doc/manual.cli +++ b/doc/manual.cli @@ -553,13 +553,18 @@ build host. \h#machines-login|Logging into a Machine| A running QEMU/KVM machine (that is, one being bootstrapped or used for -building) can be accessed with a VNC client. @@ TODO +building) can be accessed with a VNC client. Clients based on \c{gtk-vnc}, +such as \c{vinagre}, are known to work reasonably well. For example: \ -echo cont | ssh build@build socat - UNIX-CONNECT:/tmp/<toolchain>-monitor +ssh -f -L 5901:127.0.0.1:5901 build@build sleep 1 && vinagre 127.0.0.1:5901 \ +If the machine has been suspended, it can be resumed using the following +command: + \ -ssh -f -L 5901:127.0.0.1:5901 build@build sleep 1 && vncviewer 127.0.0.1:5901 +echo cont | ssh build@build socat - UNIX-CONNECT:/tmp/<toolchain>-monitor \ + " @@ -298,9 +298,6 @@ while read l || [ -n "$l" ]; do info "mounting $d (buildos.state) on /state as $t" - o="defaults,noatime,nodiratime" - echo "$d /state $t $o 0 0" >>$fstab - # Check it. # if ! fsck -n -t "$t" "$d"; then @@ -308,6 +305,9 @@ while read l || [ -n "$l" ]; do error fi + o="defaults,noatime,nodiratime" + echo "$d /state $t $o 0 0" >>$fstab + # Mount it now since we need it below. # mkdir -p "/state" @@ -348,6 +348,13 @@ while read l || [ -n "$l" ]; do info "mounting $d (buildos.$l) on $m" + # Check it. + # + if ! btrfs check -p "$d"; then + info "$d (buildos.$l) has errors; run btrfs check -p --repair $d" + error + fi + o="defaults,noatime,nodiratime,user_subvol_rm_allowed" echo "$d $m btrfs $o 0 0" >>$fstab |