diff --git a/debian-devuan-install-on-disk.sh b/debian-devuan-install-on-disk.sh index 2eec1f1..106b4f8 100755 --- a/debian-devuan-install-on-disk.sh +++ b/debian-devuan-install-on-disk.sh @@ -4,17 +4,18 @@ set -e set -x -if [ $# -ne 2 ]; then - echo $0 suite disk +if [ $# -ne 3 ]; then + echo $0 suite keyfile disk + echo suite: beowulf or similar + echo keyfile: file containing the ssh keys + echo disk: the block device exit 1 fi suite=$1; shift +keyfile=$1; shift disk=$1; shift -keyurl=https://key.wf - - case $disk in /dev/sd*) partition=${disk}1 @@ -39,15 +40,17 @@ date=$(date +%F) dd if=/dev/zero of=${disk} bs=1M count=2 # Partition disk with 1 Linux partition -sudo sfdisk "$DISK" < ${chroot_dir}/etc/apt/sources.list chroot ${chroot_dir} apt update -chroot ${chroot_dir} apt install -y openssh-server rdnssd linux-image-amd64 firmware-bnx2 ifenslave vlan +chroot ${chroot_dir} apt install -y openssh-server rdnssd linux-image-amd64 firmware-bnx2 ifenslave vlan grub echo "unconfigured-host" > ${chroot_dir}/etc/hostname -cp ${chroot_dir}/boot/vmlinuz-* ${kernel} - echo '* * * * * root ip -o -6 addr show | grep -E -v " lo |one" > /etc/issue' > ${chroot_dir}/etc/cron.d/ipv6addr mkdir -p ${chroot_dir}/root/.ssh -for key in sami dominique jinguk nico; do - curl -s ${keyurl}/${key} >> ${chroot_dir}/root/.ssh/authorized_keys -done +cat ${keyfile} > ${chroot_dir}/root/.ssh/authorized_keys # Fix possible permission issue from above -chown -R root:root ${chroot_dir}/root/ +chmod -R og-rwx ${chroot_dir}/root/ ################################################################################ # networking @@ -101,42 +100,19 @@ iface eth1 inet manual bond-master bond0 post-up /sbin/ip link set \$IFACE mtu 9000 -# server network -auto bond0.11 -iface bond0.11 inet6 auto - post-up /sbin/ip link set \$IFACE mtu 9000 - vlan-raw-device bond0 - EOF -# # find the boot interfaces at boot: HP servers still have ifnames=1 -# cat > ${chroot_dir}/etc/rc.local <> /etc/network/interfaces << eof -# auto \$dev -# iface \$dev inet6 auto -# eof +chroot ${chroot_dir} grub-install ${disk} -# ifup "\${dev}" +for dir in dev sys proc; do + umount ${chroot_dir}/${dir} +done -# exit 0 -# EOF +umount ${chroot_dir} +sync -# chmod a+rx "${chroot_dir}/etc/rc.local" - -# ensure there is /init in the initramfs -> otherwise there is a kernel panic -# reason: initramfs is designed to be PRE regular os, so /init usually hands over to /sbin/init -# in our case, they are just the same -ln -fs /sbin/init ${chroot_dir}/init - -# Finally building the initramfs -( cd ${chroot_dir} ; find . | cpio -H newc -o | gzip -9 > ${initramfs} ) - -# Fix paranoid permissions -chmod a+rx ${abs_outdir} -chmod a+r ${kernel} ${initramfs} - - -exit 0 +rmdir ${chroot_dir}