@ -31,7 +31,7 @@ disks=`dialog --separate-output --no-cancel --no-items --title "Root devices" --
raidtype = ` dialog --no-items --no-cancel --title "Root pool ZFS RAID" --radiolist "Select root pool ZFS RAID type:" 12 35 5 raidz off raidz2 off raidz3 off mirror off none off 2>& 1 1>/dev/tty`
raidtype = ` dialog --no-items --no-cancel --title "Root pool ZFS RAID" --radiolist "Select root pool ZFS RAID type:" 12 35 5 raidz off raidz2 off raidz3 off mirror off none off 2>& 1 1>/dev/tty`
hostname = "" ; while [ -z " $hostname " ] ; do hostname = ` dialog --no-cancel --inputbox "Hostname:" 8 40 2>& 1 >/dev/tty` ; done
hostname = "" ; while [ -z " $hostname " ] ; do hostname = ` dialog --no-cancel --inputbox "Hostname:" 8 40 2>& 1 >/dev/tty` ; done
nicdevices = "" ; for nic in $( ip -o link show | awk -F': ' '{print $2}' | grep -v '^lo' ) ; do nicdevices = " $nicdevices $nic off " ; done
nicdevices = "" ; for nic in $( ip -o link show | awk -F': ' '{print $2}' | grep -v '^lo' ) ; do nicdevices = " $nicdevices $nic off " ; done
nics = ` dialog --separate-output --no-cancel --no-items --title " Network devices for bridge " --checklist "Select the network devices to be bridged " $height $width ${ window } $nicdevices 2>& 1 1>/dev/tty`
nics = ` dialog --separate-output --no-cancel --no-items --title " Bridged network devices " --checklist "Select the network devices to be bridged to br0: " $height $width ${ window } $nicdevices 2>& 1 1>/dev/tty`
admin = "" ; while [ -z " $admin " ] ; do admin = ` dialog --no-cancel --inputbox "Admin user:" 8 40 2>& 1 >/dev/tty` ; done
admin = "" ; while [ -z " $admin " ] ; do admin = ` dialog --no-cancel --inputbox "Admin user:" 8 40 2>& 1 >/dev/tty` ; done
rootpassword = ` dialog --no-cancel --title "Root password" --insecure --passwordbox "Enter root password:" 8 40 2>& 1 1>/dev/tty`
rootpassword = ` dialog --no-cancel --title "Root password" --insecure --passwordbox "Enter root password:" 8 40 2>& 1 1>/dev/tty`
confirmpassword = ` dialog --no-cancel --title "Root password confirmation" --insecure --passwordbox "Re-enter root password:" 8 40 2>& 1 1>/dev/tty`
confirmpassword = ` dialog --no-cancel --title "Root password confirmation" --insecure --passwordbox "Re-enter root password:" 8 40 2>& 1 1>/dev/tty`
@ -204,7 +204,6 @@ echo "ln -s /proc/self/mounts /etc/mtab" >> /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 apt repositories on root pool...\"" >> /mnt/setup-chroot.sh
echo "echo \"Updating apt repositories on root pool...\"" >> /mnt/setup-chroot.sh
#echo "apt update" >> /mnt/setup-chroot.sh
echo 'errors=`apt update 2>&1 1>/dev/null`' >> /mnt/setup-chroot.sh
echo 'errors=`apt update 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 apt repositories on root pool - $errors"' >> /mnt/setup-chroot.sh
echo ' echo "Failed to update apt repositories on root pool - $errors"' >> /mnt/setup-chroot.sh
@ -225,8 +224,8 @@ echo "cp /usr/share/zoneinfo/$timezone /etc/localtime" >> /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 \"Installing linux image, bash, screen, tmux, zfs, dosfstools, openssh ...\"" >> /mnt/setup-chroot.sh
echo "echo \"Installing linux image, bash, screen, tmux, zfs, dosfstools, openssh , ufw ...\"" >> /mnt/setup-chroot.sh
echo "errors=\$(apt install -y --no-install-recommends linux-image-generic 2>&1 1>/dev/null && apt install -y vim bash screen tmux zfs-initramfs dosfstools openssh-server 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh
echo "errors=\$(apt install -y --no-install-recommends linux-image-generic 2>&1 1>/dev/null && apt install -y vim bash screen tmux zfs-initramfs dosfstools openssh-server ufw 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 install preliminary software - $errors"' >> /mnt/setup-chroot.sh
echo ' echo "Failed to install preliminary software - $errors"' >> /mnt/setup-chroot.sh
echo " exit 1" >> /mnt/setup-chroot.sh
echo " exit 1" >> /mnt/setup-chroot.sh
@ -236,9 +235,18 @@ echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
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 " $disks " | head -n1`
firstdisk = ` echo " $disks " | head -n1`
echo " mkdosfs -F 32 -s 1 -n EFI /dev/disk/by-id/ ${ firstdisk } -part2 && mkdir /boot/efi " >> /mnt/setup-chroot.sh
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 'if ! [ "$?" = "0" ]; then ' >> /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 "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 } -part2) /boot/efi vfat nofail,x-systemd.device-timeout=0 0 1 >> /etc/fstab " >> /mnt/setup-chroot.sh
echo "mount /boot/efi && apt install -y grub-efi-amd64-signed shim-signed" >> /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 ' echo "Failed to mount EFI partition or install grub-EFI - $errors"' >> /mnt/setup-chroot.sh
echo " exit 1" >> /mnt/setup-chroot.sh
echo "fi" >> /mnt/setup-chroot.sh
echo 'echo "Done..."' >> /mnt/setup-chroot.sh
echo 'echo "Done..."' >> /mnt/setup-chroot.sh
if ! [ " $disks " = "" ] ; then
if ! [ " $disks " = "" ] ; then
@ -282,7 +290,11 @@ echo "fi">> /mnt/setup-chroot.sh
echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
echo "echo \"Done.\"" >> /mnt/setup-chroot.sh
# you need sed to do this right!
# you need sed to do this right!
# GRUB_CMDLINE_LINUX="root=ZFS=rpool/ROOT/ubuntu" <--- replace this
echo 'echo ""' >> /mnt/setup-chroot.sh
echo 'echo "Modifying grub for ZFS root..."' >> /mnt/setup-chroot.sh
# check for errors here, it can happen
echo "sed -ir 's/GRUB_CMDLINE_LINUX=\".*\"/GRUB_CMDLINE_LINUX=\"root=ZFS=rpool/ROOT/ubuntu\"' /etc/defaults/grub" >> /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
@ -306,9 +318,15 @@ echo "zfs set mountpoint=legacy rpool/var/tmp" >> /mnt/setup-chroot.sh
echo "echo \"rpool/var/tmp /var/tmp zfs nodev,relatime 0 0\" >> /etc/fstab" >> /mnt/setup-chroot.sh
echo "echo \"rpool/var/tmp /var/tmp zfs nodev,relatime 0 0\" >> /etc/fstab" >> /mnt/setup-chroot.sh
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 "systemctl enable ssh" >> /mnt/setup-chroot.sh
echo 'echo ""' >> /mnt/setup-chroot.sh
echo 'echo "Enabling SSH..."' >> /mnt/setup-chroot.sh
echo "errors=\$(systemctl enable ssh 2>&1 1>/dev/null && ufw allow in port 22 proto tcp 2>&1 1>/dev/null)" >> /mnt/setup-chroot.sh
echo 'if ! [ "$?" = "0" ]; then ' >> /mnt/setup-chroot.sh
echo ' echo "Failed to enable SSH - $errors"' >> /mnt/setup-chroot.sh
echo " exit 101" >> /mnt/setup-chroot.sh
echo "fi" >> /mnt/setup-chroot.sh
echo 'echo "Done."' >> /mnt/setup-chroot.sh
# create parker user automated way
# create parker user automated way
echo " useradd $admin " >> /mnt/setup-chroot.sh
echo " useradd $admin " >> /mnt/setup-chroot.sh
@ -319,23 +337,19 @@ echo "echo '${admin}:${rootpassword}' | chpasswd" >> /mnt/setup-chroot.sh
#create swap space, too if necessary
#create swap space, too if necessary
echo "exit 0" >> /mnt/setup-chroot.sh
echo "exit 0" >> /mnt/setup-chroot.sh
#exit 0
errors = $( chmod +x /mnt/setup-chroot.sh 2>& 1 1>/dev/null)
if ! [ " $? " = "0" ] ; then
echo " Failed to set execution permission on chroot script - $errors "
exit 45
fi
chmod +x /mnt/setup-chroot.sh
results = ` chroot /mnt /setup-chroot.sh`
echo "Done."
if ! [ " $? " = "0" ] ; then
chroot /mnt /setup-chroot.sh
echo " Error in chroot environment - $results "
#--login
exit $?
fi
#echo ""
#echo ""
#echo "Clearing chroot configuration script..."
#echo "Clearing chroot configuration script..."