Compare commits

12 Commits
Author SHA1 Message Date
sean acf94c1c70 tweaks 2019-07-26 13:49:27 -07:00
sean fc27be9805 tweaks 2019-07-26 13:46:01 -07:00
sean 08dea28243 tweaks 2019-07-26 13:42:55 -07:00
sean 2506714ae8 tweaks 2019-07-26 13:24:52 -07:00
sean b51e5f1db5 tweaks 2019-07-26 13:22:57 -07:00
sean b09786d730 tweaks 2019-07-26 11:53:03 -07:00
sean 89977b70a4 change part2 to part1 2019-07-25 18:44:39 -07:00
sean 0a9ace0897 tweaks 2019-07-25 18:20:45 -07:00
sean 9c8c803090 tweaks 2019-07-25 18:13:11 -07:00
sean 9f9168ae6b new booting tweaks 2019-07-25 17:53:05 -07:00
Sean c089338005 tweaks 2019-07-24 20:21:08 -07:00
Sean 2865672f33 tweaks 2019-07-24 20:11:32 -07:00
+75 -112
View File
@@ -25,6 +25,8 @@ width=`tput cols`
height=`tput lines` height=`tput lines`
window=$((height - 5)) window=$((height - 5))
if [ -d "/sys/firmware/efi" ]; then efi="1"; echo -e "\nUEFI detected..." else efi="0"; echo -e "\nBIOS detected..."; fi
# gather input at the start # gather input at the start
devices=""; for device in $(ls /dev/disk/by-id | grep -v part); do devices="$devices $device off"; done devices=""; for device in $(ls /dev/disk/by-id | grep -v part); do devices="$devices $device off"; done
disks=`dialog --separate-output --no-cancel --no-items --title "Root devices" --checklist "Select root OS disks:" $height $width ${window}$devices 2>&1 1>/dev/tty` disks=`dialog --separate-output --no-cancel --no-items --title "Root devices" --checklist "Select root OS disks:" $height $width ${window}$devices 2>&1 1>/dev/tty`
@@ -106,16 +108,44 @@ for disk in `echo "$alldisks"`; do
echo "Done." echo "Done."
done done
for disk in `echo "$boots"`; do if [ "$efi" = "1" ]; then
echo ""
echo "Creating boot partitions for device $disk..." for disk in `echo "$boots"`; do
errors=`sgdisk -n2:1M:+512M -t2:EF00 /dev/disk/by-id/$disk 2>&1 1>/dev/null && sgdisk -n3:0:+512M -t3:BF01 /dev/disk/by-id/$disk 2>&1 1>/dev/null` echo ""
if ! [ "$?" = "0" ]; then echo "Creating boot partitions for device $disk..."
echo "Failed to create boot partition for device $disk - $errors" errors=`sgdisk -n1:1M:+512M -t1:EF00 /dev/disk/by-id/$disk 2>&1 1>/dev/null`
exit 3 if ! [ "$?" = "0" ]; then
fi echo "Failed to create boot partition for device $disk - $errors"
echo "Done." exit 3
done fi
echo "Done."
done
for disk in `echo "$boots"`; do
echo ""
echo "Creating boot partitions for device $disk..."
errors=`sgdisk -n3:0:+512M -t3:BF01 /dev/disk/by-id/$disk 2>&1 1>/dev/null`
if ! [ "$?" = "0" ]; then
echo "Failed to create boot partition for device $disk - $errors"
exit 3
fi
echo "Done."
done
else
for disk in `echo "$boots"`; do
echo ""
echo "Creating boot partitions for device $disk..."
errors=`sgdisk -a1 -n1:24K:+1000K -t1:EF02 /dev/disk/by-id/$disk 2>&1 1>/dev/null`
if ! [ "$?" = "0" ]; then
echo "Failed to create boot partition for device $disk - $errors"
exit 3
fi
echo "Done."
done
fi
for disk in `echo "$disks"`; do for disk in `echo "$disks"`; do
echo "" echo ""
@@ -128,18 +158,31 @@ for disk in `echo "$disks"`; do
echo "Done." echo "Done."
done done
# create boot mirror list # create boot mirror list and root list
bootmirror=""; rootraidz=""; for disk in `echo "$disks"`; do bootmirror="$bootmirror /dev/disk/by-id/${disk}-part3"; rootraidz="$rootraidz /dev/disk/by-id/${disk}-part4"; done
count="0"; bootmirror=""; for disk in `echo "$boots"`; do bootmirror="$bootmirror /dev/disk/by-id/${disk}-part3"; count=$((count + 1)); done; if [ "$count" -gt "1" ]; then bootmirror="mirror $bootmirror"; fi
rootraidz=""; for disk in `echo "$disks"`; do rootraidz="$rootraidz /dev/disk/by-id/${disk}-part4"; done
# refresh drives or there are missing partitions # refresh drives or there are missing partitions
partprobe 2>/dev/null 1>/dev/null partprobe 2>/dev/null 1>/dev/null
# wait for the partitions to show up # wait for the partitions to show up
for disk in `echo "$boots"`; do for disk in `echo "$boots"`; do
pending="0" pending="0"
while ! [ -e "/dev/disk/by-id/${disk}-part3" ]; do while ! [ -e "/dev/disk/by-id/${disk}-part3" ]; do
partprobe 2>/dev/null 1>/dev/null partprobe 2>/dev/null 1>/dev/null
if [ "$pending" = "0" ]; then echo "" && echo "Waiting for ${disk} boot partition to update..."; pending="1"; fi if [ "$pending" = "0" ]; then echo "" && echo "Waiting for ${disk} boot pool partition to update on device ${disk}..."; pending="1"; fi
sleep 3
done
if [ "$pending" = "1" ]; then echo "Done."; fi
done
for disk in `echo "$boots"`; do
pending="0"
while ! [ -e "/dev/disk/by-id/${disk}-part1" ]; do
partprobe 2>/dev/null 1>/dev/null
if [ "$pending" = "0" ]; then echo "" && echo "Waiting for ${disk} boot partition to update on device ${disk}..."; pending="1"; fi
sleep 3 sleep 3
done done
if [ "$pending" = "1" ]; then echo "Done."; fi if [ "$pending" = "1" ]; then echo "Done."; fi
@@ -147,7 +190,7 @@ done
echo "" echo ""
echo "Creating boot zpool..." echo "Creating boot zpool..."
errors=`zpool create -f -o ashift=12 -d -o feature@async_destroy=enabled -o feature@bookmarks=enabled -o feature@embedded_data=enabled -o feature@empty_bpobj=enabled -o feature@enabled_txg=enabled -o feature@extensible_dataset=enabled -o feature@filesystem_limits=enabled -o feature@hole_birth=enabled -o feature@large_blocks=enabled -o feature@lz4_compress=enabled -o feature@spacemap_histogram=enabled -o feature@userobj_accounting=enabled -O acltype=posixacl -O canmount=off -O compression=lz4 -O devices=off -O normalization=formD -O relatime=on -O xattr=sa -O mountpoint=/ -R /mnt bpool mirror$bootmirror 2>&1 1>/dev/null` errors=`zpool create -f -o ashift=12 -d -o feature@async_destroy=enabled -o feature@bookmarks=enabled -o feature@embedded_data=enabled -o feature@empty_bpobj=enabled -o feature@enabled_txg=enabled -o feature@extensible_dataset=enabled -o feature@filesystem_limits=enabled -o feature@hole_birth=enabled -o feature@large_blocks=enabled -o feature@lz4_compress=enabled -o feature@spacemap_histogram=enabled -o feature@userobj_accounting=enabled -O acltype=posixacl -O canmount=off -O compression=lz4 -O devices=off -O normalization=formD -O relatime=on -O xattr=sa -O mountpoint=/ -R /mnt bpool $bootmirror 2>&1 1>/dev/null`
if ! [ "$?" = "0" ]; then if ! [ "$?" = "0" ]; then
echo "Failed to create boot pool - $errors" echo "Failed to create boot pool - $errors"
exit 4 exit 4
@@ -230,29 +273,6 @@ echo "deb http://archive.ubuntu.com/ubuntu bionic-updates main universe" >> /mnt
echo "deb-src http://archive.ubuntu.com/ubuntu bionic-updates main universe" >> /mnt/etc/apt/sources.list echo "deb-src http://archive.ubuntu.com/ubuntu bionic-updates main universe" >> /mnt/etc/apt/sources.list
echo "Done." echo "Done."
#echo "network:" > /mnt/etc/netplan/bridge.yaml
#echo " version: 2" >> /mnt/etc/netplan/bridge.yaml
#echo " renderer: networkd" >> /mnt/etc/netplan/bridge.yaml
#echo " ethernets:" >> /mnt/etc/netplan/bridge.yaml
#for nic in "$nics"; do
#echo " ${nic}:" >> /mnt/etc/netplan/bridge.yaml
#echo " dhcp4: no" >> /mnt/etc/netplan/bridge.yaml
#done
#echo " bridges:" >> /mnt/etc/netplan/bridge.yaml
#echo " br0:" >> /mnt/etc/netplan/bridge.yaml
#echo " macaddress: ${macaddr}" >> /mnt/etc/netplan/bridge.yaml
#echo " dhcp4: yes" >> /mnt/etc/netplan/bridge.yaml
#echo " parameters:" >> /mnt/etc/netplan/bridge.yaml
#echo " stp: true" >> /mnt/etc/netplan/bridge.yaml
#echo " forward-delay: 0" >> /mnt/etc/netplan/bridge.yaml
#echo " interfaces:" >> /mnt/etc/netplan/bridge.yaml
#for nic in `echo "$nics"`; do
#echo " - ${nic}" >> /mnt/etc/netplan/bridge.yaml
#done
echo "" echo ""
echo "Setting up boot pool import service..." echo "Setting up boot pool import service..."
echo "[Unit]"> /mnt/etc/systemd/system/zfs-import-bpool.service echo "[Unit]"> /mnt/etc/systemd/system/zfs-import-bpool.service
@@ -268,7 +288,6 @@ echo "[Install]" >> /mnt/etc/systemd/system/zfs-import-bpool.service
echo " WantedBy=zfs-import.target " >> /mnt/etc/systemd/system/zfs-import-bpool.service echo " WantedBy=zfs-import.target " >> /mnt/etc/systemd/system/zfs-import-bpool.service
echo "Done." echo "Done."
echo "" echo ""
echo "Creating home directory..." echo "Creating home directory..."
errors=`zfs create rpool/home/${admin} 2>&1 1>/dev/null` errors=`zfs create rpool/home/${admin} 2>&1 1>/dev/null`
@@ -336,7 +355,6 @@ echo " exit 118">> /mnt/setup-chroot.sh
echo "fi">> /mnt/setup-chroot.sh echo "fi">> /mnt/setup-chroot.sh
echo "echo \"Done.\"" >> /mnt/setup-chroot.sh echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
# configure docker storage to use zfs # configure docker storage to use zfs
mkdir -p /mnt/etc/docker mkdir -p /mnt/etc/docker
echo "{\"storage-driver\":\"zfs\"}" > /mnt/etc/docker/daemon.json echo "{\"storage-driver\":\"zfs\"}" > /mnt/etc/docker/daemon.json
@@ -347,19 +365,12 @@ echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /mnt/etc/sysctl.conf
echo 'echo ""' >> /mnt/setup-chroot.sh echo 'echo ""' >> /mnt/setup-chroot.sh
echo 'echo "Creating EFI partition..."' >> /mnt/setup-chroot.sh echo 'echo "Creating EFI partition..."' >> /mnt/setup-chroot.sh
firstdisk=`echo "$boots" | head -n1` firstdisk=`echo "$boots" | head -n1`
echo "error=\$(mkdosfs -F 32 -s 1 -n EFI /dev/disk/by-id/${firstdisk}-part2 2>&1 1>/dev/null && mkdir /boot/efi 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh echo "error=\$(mkdosfs -F 32 -s 1 -n EFI /dev/disk/by-id/${firstdisk}-part1 2>&1 1>/dev/null && mkdir /boot/efi 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh
echo 'if ! [ \"$?\" = \"0\" ]; then '>> /mnt/setup-chroot.sh echo 'if ! [ \"$?\" = \"0\" ]; then '>> /mnt/setup-chroot.sh
echo ' echo "Failed to create dos file system for EFI partition - $errors"' >> /mnt/setup-chroot.sh echo ' echo "Failed to create dos file system for EFI partition - $errors"' >> /mnt/setup-chroot.sh
echo " exit 100">> /mnt/setup-chroot.sh echo " exit 100">> /mnt/setup-chroot.sh
echo "fi">> /mnt/setup-chroot.sh echo "fi">> /mnt/setup-chroot.sh
echo "echo PARTUUID=$(blkid -s PARTUUID -o value /dev/disk/by-id/${firstdisk}-part2) /boot/efi vfat nofail,x-systemd.device-timeout=0 0 1 >> /etc/fstab" >> /mnt/setup-chroot.sh echo "echo PARTUUID=$(blkid -s PARTUUID -o value /dev/disk/by-id/${firstdisk}-part1) /boot/efi vfat nofail,x-systemd.device-timeout=0 0 1 >> /etc/fstab" >> /mnt/setup-chroot.sh
#echo "echo \"\"" >> /mnt/setup-chroot.sh
#echo "echo \"Mounting /boot/efi...\"" >> /mnt/setup-chroot.sh
#echo "mount /boot/efi 2>&1 1>/dev/null" >> /mnt/setup-chroot.sh
# clear past boots
#echo "for f in \`efibootmgr -v | grep -e '^Boot[0-9]\\+' | sed 's/^Boot\\([0-9]*\\).*/\\1/g'\`; do efibootmgr -b \$f -B; done" >> /mnt/setup-chroot.sh
#echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
echo "errors=\$(mount /boot/efi 2>&1 1>/dev/null && apt install -y grub-efi-amd64-signed shim-signed 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh echo "errors=\$(mount /boot/efi 2>&1 1>/dev/null && apt install -y grub-efi-amd64-signed shim-signed 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh
echo 'if ! [ \"$?\" = \"0\" ]; then '>> /mnt/setup-chroot.sh echo 'if ! [ \"$?\" = \"0\" ]; then '>> /mnt/setup-chroot.sh
@@ -383,15 +394,6 @@ echo " exit 102">> /mnt/setup-chroot.sh
echo "fi">> /mnt/setup-chroot.sh echo "fi">> /mnt/setup-chroot.sh
echo 'echo "Done."'>> /mnt/setup-chroot.sh echo 'echo "Done."'>> /mnt/setup-chroot.sh
#echo 'echo ""'>> /mnt/setup-chroot.sh
#echo 'echo "Enabling tmp file system mounting..."'>> /mnt/setup-chroot.sh
#echo "errors=\$(cp /usr/sharesystemd/tmp.mount /etc/systemd/system/ 2>&1 1>/dev/null && systemctl enable tmp.mount 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh
#echo "if ! [ \"\$?\" = \"0\" ]; then echo \"Failed to enable tmp file system mounting - \$errors\"; exit 103; fi" >> /mnt/setup-chroot.sh
#echo 'echo "Done."'>> /mnt/setup-chroot.sh
#addgroup --system lpadmin
#addgroup --system sambashare
echo 'echo ""' >> /mnt/setup-chroot.sh echo 'echo ""' >> /mnt/setup-chroot.sh
echo "echo \"Checking ZFS root...\"" >> /mnt/setup-chroot.sh echo "echo \"Checking ZFS root...\"" >> /mnt/setup-chroot.sh
echo 'zfscheck=$(grub-probe /boot 2>&1 1>/dev/null)' >> /mnt/setup-chroot.sh echo 'zfscheck=$(grub-probe /boot 2>&1 1>/dev/null)' >> /mnt/setup-chroot.sh
@@ -400,6 +402,7 @@ echo "echo \"Success.\"" >> /mnt/setup-chroot.sh
echo 'echo ""' >> /mnt/setup-chroot.sh echo 'echo ""' >> /mnt/setup-chroot.sh
echo 'echo "Updating initramfs..."' >> /mnt/setup-chroot.sh echo 'echo "Updating initramfs..."' >> /mnt/setup-chroot.sh
echo "echo \"vmd\" >> /etc/initramfs-tools/modules" >> /mnt/setup-chroot.sh
echo 'errors=$(update-initramfs -u -k all 2>&1 1>/dev/null)' >> /mnt/setup-chroot.sh echo 'errors=$(update-initramfs -u -k all 2>&1 1>/dev/null)' >> /mnt/setup-chroot.sh
echo 'if ! [ \"$?\" = \"0\" ]; then '>> /mnt/setup-chroot.sh echo 'if ! [ \"$?\" = \"0\" ]; then '>> /mnt/setup-chroot.sh
echo ' echo "Failed to update initramfs - $errors"' >> /mnt/setup-chroot.sh echo ' echo "Failed to update initramfs - $errors"' >> /mnt/setup-chroot.sh
@@ -410,11 +413,10 @@ echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
# you need sed to do this right! # you need sed to do this right!
echo 'echo ""' >> /mnt/setup-chroot.sh echo 'echo ""' >> /mnt/setup-chroot.sh
echo 'echo "Modifying grub for ZFS root..."' >> /mnt/setup-chroot.sh echo 'echo "Modifying grub for ZFS root..."' >> /mnt/setup-chroot.sh
echo "errors=\$(sed -ir 's/quiet splash//g' /etc/default/grub 2>&1 1>/dev/null && sed -ir 's/GRUB_CMDLINE_LINUX=\".*\"/GRUB_CMDLINE_LINUX=\"root=ZFS=rpool\/ROOT\/ubuntu\"/g' /etc/default/grub 2>&1 1>/dev/null && sed -ir 's/^#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh echo "errors=\$(sed -ir 's/quiet splash//g' /etc/default/grub 2>&1 1>/dev/null && sed -ir 's/GRUB_CMDLINE_LINUX=\".*\"/GRUB_CMDLINE_LINUX=\"root=ZFS=rpool\/ROOT\/ubuntu rootdelay=10 noresume\"/g' /etc/default/grub 2>&1 1>/dev/null && sed -ir 's/^#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh
echo "if ! [ \"\$?\" = \"0\" ]; then echo \"Failed to set grub ZFS root - \$errors\"; exit 104; fi" >> /mnt/setup-chroot.sh echo "if ! [ \"\$?\" = \"0\" ]; then echo \"Failed to set grub ZFS root - \$errors\"; exit 104; fi" >> /mnt/setup-chroot.sh
echo 'echo "Done."' >> /mnt/setup-chroot.sh echo 'echo "Done."' >> /mnt/setup-chroot.sh
echo 'echo ""' >> /mnt/setup-chroot.sh echo 'echo ""' >> /mnt/setup-chroot.sh
echo 'echo "Updating grub..."' >> /mnt/setup-chroot.sh echo 'echo "Updating grub..."' >> /mnt/setup-chroot.sh
echo 'errors=$(update-grub 2>&1 1>/dev/null)'>> /mnt/setup-chroot.sh echo 'errors=$(update-grub 2>&1 1>/dev/null)'>> /mnt/setup-chroot.sh
@@ -431,16 +433,19 @@ echo "if ! [ \"\$?\" = \"0\" ]; then echo \"Failed to install grub UEFI on plex1
echo "echo \"Done.\"" >> /mnt/setup-chroot.sh echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
if ! [ "$boots" = "" ]; then if ! [ "$boots" = "" ]; then
echo 'echo ""' >> /mnt/setup-chroot.sh if [ "$efi" = "1" ]; then
echo 'echo "Cloning EFI boot partition to all boot devices..."' >> /mnt/setup-chroot.sh
i="2"
for disk in `echo "$boots" | tail -n+2`; do
echo "errors=\$(dd if=/dev/disk/by-id/${firstdisk}-part2 of=/dev/disk/by-id/${disk}-part2 2>&1 1>/dev/null && efibootmgr -c -g -d /dev/disk/by-id/${disk} -p 3 -L "ubuntu-$i" -l '\EFI\ubuntu\grubx64.efi' 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh
echo "if ! [ \"\$?\" = \"0\" ]; then echo \"EFI copy failed - \$errors\"; exit 20; fi" >> /mnt/setup-chroot.sh
i=$((i + 1))
done
echo 'echo "Done."' >> /mnt/setup-chroot.sh echo 'echo ""' >> /mnt/setup-chroot.sh
echo 'echo "Cloning EFI boot partition to all boot devices..."' >> /mnt/setup-chroot.sh
i="2"
for disk in `echo "$boots" | tail -n+2`; do
echo "errors=\$(dd if=/dev/disk/by-id/${firstdisk}-part1 of=/dev/disk/by-id/${disk}-part1 2>&1 1>/dev/null && efibootmgr -c -g -d /dev/disk/by-id/${disk} -p 3 -L "ubuntu-$i" -l '\EFI\ubuntu\grubx64.efi' 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh
echo "if ! [ \"\$?\" = \"0\" ]; then echo \"EFI copy failed - \$errors\"; exit 20; fi" >> /mnt/setup-chroot.sh
i=$((i + 1))
done
echo 'echo "Done."' >> /mnt/setup-chroot.sh
fi
fi fi
# error check this as one big block # error check this as one big block
@@ -455,16 +460,12 @@ echo "echo \"rpool/var/tmp /var/tmp zfs nodev,relatime 0 0\" >> /etc/fstab" >> /
echo "zfs set mountpoint=legacy rpool/tmp" >> /mnt/setup-chroot.sh echo "zfs set mountpoint=legacy rpool/tmp" >> /mnt/setup-chroot.sh
echo "echo \"rpool/tmp /tmp zfs nodev,relatime 0 0\" >> /etc/fstab" >> /mnt/setup-chroot.sh echo "echo \"rpool/tmp /tmp zfs nodev,relatime 0 0\" >> /etc/fstab" >> /mnt/setup-chroot.sh
echo 'echo ""' >> /mnt/setup-chroot.sh echo 'echo ""' >> /mnt/setup-chroot.sh
echo 'echo "Enabling SSH..."'>> /mnt/setup-chroot.sh echo 'echo "Enabling SSH..."'>> /mnt/setup-chroot.sh
echo "sed -ir 's/^ *#? *ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/g' /etc/ssh/sshd_config" >> /mnt/setup-chroot.sh echo "sed -ir 's/^ *#? *ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/g' /etc/ssh/sshd_config" >> /mnt/setup-chroot.sh
echo "sed -ir 's/^#PasswordAuthentication.*/PasswordAuthentication no/g' /etc/ssh/sshd_config" >> /mnt/setup-chroot.sh echo "sed -ir 's/^#PasswordAuthentication.*/PasswordAuthentication no/g' /etc/ssh/sshd_config" >> /mnt/setup-chroot.sh
echo "sed -ir 's/^UsePAM.*/UsePAM no/g' /etc/ssh/sshd_config" >> /mnt/setup-chroot.sh echo "sed -ir 's/^UsePAM.*/UsePAM no/g' /etc/ssh/sshd_config" >> /mnt/setup-chroot.sh
echo "sed -ir 's/^#PermitRootLogin.*/PermitRootLogin no/g' /etc/ssh/sshd_config" >> /mnt/setup-chroot.sh echo "sed -ir 's/^#PermitRootLogin.*/PermitRootLogin no/g' /etc/ssh/sshd_config" >> /mnt/setup-chroot.sh
echo "errors=\$(systemctl enable ssh 2>&1 1>/dev/null)">> /mnt/setup-chroot.sh echo "errors=\$(systemctl enable ssh 2>&1 1>/dev/null)">> /mnt/setup-chroot.sh
#&& ufw allow in on any from any to any port 22 proto tcp 2>&1 1>/dev/null #&& ufw allow in on any from any to any port 22 proto tcp 2>&1 1>/dev/null
echo 'if ! [ \"$?\" = \"0\" ]; then '>> /mnt/setup-chroot.sh echo 'if ! [ \"$?\" = \"0\" ]; then '>> /mnt/setup-chroot.sh
@@ -483,14 +484,6 @@ echo "usermod -a -G adm,cdrom,dip,plugdev,sudo -s /bin/bash \"$admin\"" >> /mnt/
echo "echo '${admin}:${rootpassword}' | chpasswd" >> /mnt/setup-chroot.sh echo "echo '${admin}:${rootpassword}' | chpasswd" >> /mnt/setup-chroot.sh
echo 'echo "Done."'>> /mnt/setup-chroot.sh echo 'echo "Done."'>> /mnt/setup-chroot.sh
# relax app armor for nfs kernel server
#echo "aa-complain nfsd" >> /mnt/setup-chroot.sh
#create swap space, too if necessary
#sendemail -t to@example.com -m "Here is the file." -a attachmentFile
echo "mkdir \"/home/${admin}/.ssh\"" >> /mnt/setup-chroot.sh echo "mkdir \"/home/${admin}/.ssh\"" >> /mnt/setup-chroot.sh
echo "ssh-keygen -b 4096 -t rsa -q -f \"/home/${admin}/.ssh/id_rsa\" -N '$rootpassword'" >> /mnt/setup-chroot.sh echo "ssh-keygen -b 4096 -t rsa -q -f \"/home/${admin}/.ssh/id_rsa\" -N '$rootpassword'" >> /mnt/setup-chroot.sh
echo "cat /home/${admin}/.ssh/id_rsa.pub > \"/home/${admin}/.ssh/authorized_keys\"" >> /mnt/setup-chroot.sh echo "cat /home/${admin}/.ssh/id_rsa.pub > \"/home/${admin}/.ssh/authorized_keys\"" >> /mnt/setup-chroot.sh
@@ -516,13 +509,11 @@ if [ "$networktype" = "dhcp" ]; then
else else
connection="$address" connection="$address"
fi fi
# --content-filename=\"${hostname}.ssh.key\" --content-name=\"${hostname}.ssh.key\"
echo "serverinfo=\`cat \"/home/${admin}/.ssh/id_rsa\"\`" >> /mnt/setup-chroot.sh echo "serverinfo=\`cat \"/home/${admin}/.ssh/id_rsa\"\`" >> /mnt/setup-chroot.sh
#echo "serverinfo=\"Server available at $connection\\n\$serverinfo\"; echo \"\$serverinfo\" | mail -s \"$hostname SSH key\" -A \"/home/${admin}/.ssh/id_rsa\" -r \"${email}\" \"${admins}\"" >> /mnt/setup-chroot.sh
echo "serverinfo=\"Server available at $connection\\n\\n\$serverinfo\"; echo -e \"\$serverinfo\" | mail -s \"$hostname SSH key\" -r \"${email}\" \"\`cat /admins\`\"" >> /mnt/setup-chroot.sh echo "serverinfo=\"Server available at $connection\\n\\n\$serverinfo\"; echo -e \"\$serverinfo\" | mail -s \"$hostname SSH key\" -r \"${email}\" \"\`cat /admins\`\"" >> /mnt/setup-chroot.sh
echo "echo \"Done.\"" >> /mnt/setup-chroot.sh echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
errors=`chmod +x /mnt/setup-chroot.sh 2>&1 1>/dev/null` errors=`chmod +x /mnt/setup-chroot.sh 2>&1 1>/dev/null`
if ! [ "$?" = "0" ]; then if ! [ "$?" = "0" ]; then
echo "Failed to set execution permission on chroot script - $errors" echo "Failed to set execution permission on chroot script - $errors"
@@ -564,19 +555,6 @@ echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
echo "exit 0" >> /mnt/setup-chroot.sh echo "exit 0" >> /mnt/setup-chroot.sh
chroot /mnt /setup-chroot.sh chroot /mnt /setup-chroot.sh
if ! [ "$?" = "0" ]; then if ! [ "$?" = "0" ]; then
exit $? exit $?
@@ -592,8 +570,6 @@ fi
echo "/dev/zvol/rpool/swap none swap discard 0 0" >> /mnt/etc/fstab echo "/dev/zvol/rpool/swap none swap discard 0 0" >> /mnt/etc/fstab
echo "Done." echo "Done."
#ececho "RESUME=none" > /mnt/etc/initramfs.tools/conf.d/resume
echo "" echo ""
echo "Writing network interfaces file..." echo "Writing network interfaces file..."
macaddr=$(echo $hostname|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/') macaddr=$(echo $hostname|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
@@ -624,14 +600,6 @@ echo " bridge_stp on" >> /mnt/etc/network/interfaces.d/br0
echo "source-directory /etc/network/interfaces.d" > /mnt/etc/network/interfaces echo "source-directory /etc/network/interfaces.d" > /mnt/etc/network/interfaces
echo "Done." echo "Done."
#crontab -l > mycron
#echo new cron into cron file
#echo "00 09 * * 1-5 echo hello" >> mycron
#install new cron file
#crontab mycron
#rm mycron
# add the firewall rule for SSH, but there may already be an exception for this, test the network in the live environment # add the firewall rule for SSH, but there may already be an exception for this, test the network in the live environment
echo "" echo ""
@@ -644,7 +612,6 @@ echo "Clearing chroot configuration script..."
rm /mnt/setup-chroot.sh rm /mnt/setup-chroot.sh
echo "Done." echo "Done."
echo "#! /bin/bash" > /mnt/zfshealth.sh echo "#! /bin/bash" > /mnt/zfshealth.sh
echo "problems=0; emailSubject=\"\`hostname\` - ZFS pool - HEALTH check\"; emailMessage=\"\"" >> /mnt/zfshealth.sh echo "problems=0; emailSubject=\"\`hostname\` - ZFS pool - HEALTH check\"; emailMessage=\"\"" >> /mnt/zfshealth.sh
echo "condition=\$(/sbin/zpool status | grep -e \"^ *state:\" | egrep -i '(DEGRADED|FAULTED|OFFLINE|UNAVAIL|REMOVED|FAIL|DESTROYED|corrupt|cannot|unrecover)')" >> /mnt/zfshealth.sh echo "condition=\$(/sbin/zpool status | grep -e \"^ *state:\" | egrep -i '(DEGRADED|FAULTED|OFFLINE|UNAVAIL|REMOVED|FAIL|DESTROYED|corrupt|cannot|unrecover)')" >> /mnt/zfshealth.sh
@@ -683,8 +650,6 @@ echo "if [ \"\$problems\" -ne 0 ]; then logger \$emailSubject; fi" >> /mnt/zfshe
chmod +x /mnt/zfshealth.sh chmod +x /mnt/zfshealth.sh
echo "" echo ""
echo "Unmounting chroot mounts..." echo "Unmounting chroot mounts..."
mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | xargs -i{} umount -lf {} mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | xargs -i{} umount -lf {}
@@ -702,6 +667,4 @@ echo "Done."
echo "" echo ""
echo "Congratulations! The install was successful. Please reboot and set your boot device using UEFI in the BIOS. You should receive an e-mail with the server's SSH private key shortly." echo "Congratulations! The install was successful. Please reboot and set your boot device using UEFI in the BIOS. You should receive an e-mail with the server's SSH private key shortly."
echo "" echo ""
exit 0 exit 0
#sed -i -r "s/(^|[^#y])(compress)/\1#\2/" "$file"