add devbyid dependency
[automated-distro-installer] / arch-pxe
index 03ec659949e17470d26951236cc3796dc15f10c4..5a26fd70a7f97c9a66bc4035907f15a69ed8ce96 100755 (executable)
--- a/arch-pxe
+++ b/arch-pxe
@@ -1,21 +1,37 @@
 #!/bin/bash -lx
+# Copyright (C) 2016 Ian Kelling
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 # Setup arch pxe boot server from the base image.
 # Requires manually downloading image to /a/opt, and set it's name below.
 
 set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR
+trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
+x="$(readlink -f "$BASH_SOURCE")"
+script_dir="${x%/*}"
 cd /a/opt
-#iso="archlinux-2015.11.01-dual"
-iso="archlinux-2016.01.01-dual"
+iso="archlinux-2016.05.01-dual"
 sfs=$iso/arch/x86_64/airootfs.sfs
 rm -rf $iso
 ex $iso.iso
-sed -i -f - $iso/arch/boot/syslinux/archiso_pxe64.cfg <<EOF
+sed -i --follow-symlinks -f - $iso/arch/boot/syslinux/archiso_pxe64.cfg <<EOF
 1itotaltimeout 1
 /^LABEL arch64_nfs/a menu default
-s/^APPEND .*/\0 script=myarchinit.sh/
+s/^APPEND .*/\0 script=arch-iso-init/
 EOF
 # based on https://blog.chendry.org/2015/02/06/automating-arch-linux-installation.html
 # and https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO
@@ -25,12 +41,8 @@ s unsquashfs $sfs
 s mkdir -p squashfs-root/root/.ssh
 s chmod 755 squashfs-root/root/.ssh
 s cp ~/.ssh/id_rsa.pub squashfs-root/root/.ssh/authorized_keys
-s dd of=squashfs-root/root/myarchinit.sh <<EOF
-#!/bin/bash
-echo $(date) > /tmp/myarchinit.log
-dhcpcd eth0
-systemctl start sshd
-EOF
+
+s cp $script_dir/arch-iso-init squashfs-root/root
 s rm $sfs
 s mksquashfs squashfs-root $sfs -comp xz
 # file transfer to wrt is slow, so remove some useless files
@@ -47,7 +59,7 @@ ssh wrt "cd /mnt/usb && rm -f tftpboot && ln -s $iso tftpboot"
 
 # The default settings in the installer expect to find the NFS at /run/archiso/bootmnt
 
-pxe-server arch
+pxe-server default arch
 
 # background:
 # great documentation at https://wiki.archlinux.org/index.php/PXE