mirror of
https://github.com/terem42/zfs-hetzner-vm.git
synced 2025-12-24 15:58:37 +00:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7821afa95d | ||
|
|
79bf5aff79 | ||
|
|
ebb64e71cf | ||
|
|
8f524d1852 | ||
|
|
95f7d51e9c | ||
|
|
e176123e5a | ||
|
|
dc23d826e3 | ||
|
|
3b9724e6af | ||
|
|
23ec2c0e89 | ||
|
|
00ed04d44e | ||
|
|
27bb8d8302 | ||
|
|
6c015b895d | ||
|
|
b40c5e0699 | ||
|
|
0053d63360 |
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[](https://github.com/terem42/zfs-hetzner-vm/actions/workflows/shellcheck.yml)
|
[](https://github.com/terem42/zfs-hetzner-vm/actions/workflows/shellcheck.yml)
|
||||||
|
|
||||||
Scripts to install Debian 11, 10 or Ubuntu 18 LTS, 20 LTS, 22 LTS with ZFS root on Hetzner root servers (virtual and dedicated).<br/>
|
Scripts to install Debian 10, 11, 12 or Ubuntu 18 LTS, 20 LTS, 22 LTS with ZFS root on Hetzner root servers (virtual and dedicated).<br/>
|
||||||
__WARNING:__ all data on the disk will be destroyed.
|
__WARNING:__ all data on the disk will be destroyed.
|
||||||
|
|
||||||
## How to use:
|
## How to use:
|
||||||
|
|||||||
@@ -138,20 +138,20 @@ function check_prerequisites {
|
|||||||
|
|
||||||
function initial_load_debian_zed_cache {
|
function initial_load_debian_zed_cache {
|
||||||
chroot_execute "mkdir /etc/zfs/zfs-list.cache"
|
chroot_execute "mkdir /etc/zfs/zfs-list.cache"
|
||||||
chroot_execute "touch /etc/zfs/zfs-list.cache/rpool"
|
chroot_execute "touch /etc/zfs/zfs-list.cache/$v_rpool_name"
|
||||||
chroot_execute "ln -sf /usr/lib/zfs-linux/zed.d/history_event-zfs-list-cacher.sh /etc/zfs/zed.d/"
|
chroot_execute "ln -sf /usr/lib/zfs-linux/zed.d/history_event-zfs-list-cacher.sh /etc/zfs/zed.d/"
|
||||||
|
|
||||||
chroot_execute "zed -F &"
|
chroot_execute "zed -F &"
|
||||||
|
|
||||||
local success=0
|
local success=0
|
||||||
|
|
||||||
if [[ ! -e /mnt/etc/zfs/zfs-list.cache/rpool ]] || [[ -e /mnt/etc/zfs/zfs-list.cache/rpool && (( $(find /mnt/etc/zfs/zfs-list.cache/rpool -type f -printf '%s' 2> /dev/null) == 0 )) ]]; then
|
if [[ ! -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" ]] || [[ -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" && (( $(find "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" -type f -printf '%s' 2> /dev/null) == 0 )) ]]; then
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
|
|
||||||
SECONDS=0
|
SECONDS=0
|
||||||
|
|
||||||
while (( SECONDS++ <= 300 )); do
|
while (( SECONDS++ <= 120 )); do
|
||||||
if [[ -e /mnt/etc/zfs/zfs-list.cache/rpool ]] && (( $(find /mnt/etc/zfs/zfs-list.cache/rpool -type f -printf '%s' 2> /dev/null) > 0 )); then
|
if [[ -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" ]] && (( $(find "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" -type f -printf '%s' 2> /dev/null) > 0 )); then
|
||||||
success=1
|
success=1
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
@@ -169,7 +169,7 @@ function initial_load_debian_zed_cache {
|
|||||||
|
|
||||||
chroot_execute "pkill zed"
|
chroot_execute "pkill zed"
|
||||||
|
|
||||||
sed -Ei 's|/mnt/?|/|g' /mnt/etc/zfs/zfs-list.cache/rpool
|
sed -Ei "s|/$c_zfs_mount_dir/?|/|g" "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name"
|
||||||
}
|
}
|
||||||
|
|
||||||
function find_suitable_disks {
|
function find_suitable_disks {
|
||||||
@@ -717,7 +717,7 @@ if [[ $v_zfs_experimental == "1" ]]; then
|
|||||||
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
||||||
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
||||||
chroot_execute "apt update"
|
chroot_execute "apt update"
|
||||||
chroot_execute "apt install -t zfs-debian-experimental --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install -t zfs-debian-experimental --yes openzfs-zfs-initramfs openzfs-zfs-dkms openzfs-zfsutils openzfs-zfs-zed"
|
||||||
else
|
else
|
||||||
chroot_execute "apt install --yes -t buster-backports zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install --yes -t buster-backports zfs-initramfs zfs-dkms zfsutils-linux"
|
||||||
fi
|
fi
|
||||||
@@ -755,7 +755,7 @@ chroot_execute "grub-install ${v_selected_disks[0]}"
|
|||||||
|
|
||||||
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=rpool/ROOT/debian\"|g' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=$v_rpool_name/ROOT/debian\"|g' /etc/default/grub"
|
||||||
|
|
||||||
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
||||||
@@ -769,7 +769,8 @@ if [[ $v_encrypt_rpool == "1" ]]; then
|
|||||||
echo "=========set up dropbear=============="
|
echo "=========set up dropbear=============="
|
||||||
|
|
||||||
chroot_execute "apt install --yes dropbear-initramfs"
|
chroot_execute "apt install --yes dropbear-initramfs"
|
||||||
|
|
||||||
|
mkdir -p "$c_zfs_mount_dir/etc/dropbear-initramfs"
|
||||||
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear-initramfs/authorized_keys"
|
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear-initramfs/authorized_keys"
|
||||||
|
|
||||||
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
||||||
@@ -796,7 +797,7 @@ CONF
|
|||||||
|
|
||||||
echo "========running packages upgrade==========="
|
echo "========running packages upgrade==========="
|
||||||
chroot_execute "apt upgrade --yes"
|
chroot_execute "apt upgrade --yes"
|
||||||
chroot_execute "apt autoremove --yes"
|
chroot_execute "apt purge cryptsetup* --yes"
|
||||||
|
|
||||||
echo "===========add static route to initramfs via hook to add default routes for Hetzner due to Debian/Ubuntu initramfs DHCP bug ========="
|
echo "===========add static route to initramfs via hook to add default routes for Hetzner due to Debian/Ubuntu initramfs DHCP bug ========="
|
||||||
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
||||||
@@ -829,7 +830,7 @@ auto lo
|
|||||||
iface lo inet loopback
|
iface lo inet loopback
|
||||||
iface lo inet6 loopback
|
iface lo inet6 loopback
|
||||||
|
|
||||||
auto eth0
|
allow-hotplug eth0
|
||||||
iface eth0 inet dhcp
|
iface eth0 inet dhcp
|
||||||
iface eth0 inet6 dhcp
|
iface eth0 inet6 dhcp
|
||||||
CONF
|
CONF
|
||||||
@@ -844,7 +845,7 @@ chroot_execute "update-grub"
|
|||||||
|
|
||||||
echo "======= setting up zed =========="
|
echo "======= setting up zed =========="
|
||||||
if [[ $v_zfs_experimental == "1" ]]; then
|
if [[ $v_zfs_experimental == "1" ]]; then
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
else
|
else
|
||||||
initial_load_debian_zed_cache
|
initial_load_debian_zed_cache
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -139,20 +139,20 @@ function check_prerequisites {
|
|||||||
|
|
||||||
function initial_load_debian_zed_cache {
|
function initial_load_debian_zed_cache {
|
||||||
chroot_execute "mkdir /etc/zfs/zfs-list.cache"
|
chroot_execute "mkdir /etc/zfs/zfs-list.cache"
|
||||||
chroot_execute "touch /etc/zfs/zfs-list.cache/rpool"
|
chroot_execute "touch /etc/zfs/zfs-list.cache/$v_rpool_name"
|
||||||
chroot_execute "ln -sf /usr/lib/zfs-linux/zed.d/history_event-zfs-list-cacher.sh /etc/zfs/zed.d/"
|
chroot_execute "ln -sf /usr/lib/zfs-linux/zed.d/history_event-zfs-list-cacher.sh /etc/zfs/zed.d/"
|
||||||
|
|
||||||
chroot_execute "zed -F &"
|
chroot_execute "zed -F &"
|
||||||
|
|
||||||
local success=0
|
local success=0
|
||||||
|
|
||||||
if [[ ! -e /mnt/etc/zfs/zfs-list.cache/rpool ]] || [[ -e /mnt/etc/zfs/zfs-list.cache/rpool && (( $(find /mnt/etc/zfs/zfs-list.cache/rpool -type f -printf '%s' 2> /dev/null) == 0 )) ]]; then
|
if [[ ! -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" ]] || [[ -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" && (( $(find "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" -type f -printf '%s' 2> /dev/null) == 0 )) ]]; then
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
|
|
||||||
SECONDS=0
|
SECONDS=0
|
||||||
|
|
||||||
while (( SECONDS++ <= 120 )); do
|
while (( SECONDS++ <= 120 )); do
|
||||||
if [[ -e /mnt/etc/zfs/zfs-list.cache/rpool ]] && (( $(find /mnt/etc/zfs/zfs-list.cache/rpool -type f -printf '%s' 2> /dev/null) > 0 )); then
|
if [[ -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" ]] && (( $(find "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" -type f -printf '%s' 2> /dev/null) > 0 )); then
|
||||||
success=1
|
success=1
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
@@ -170,7 +170,7 @@ function initial_load_debian_zed_cache {
|
|||||||
|
|
||||||
chroot_execute "pkill zed"
|
chroot_execute "pkill zed"
|
||||||
|
|
||||||
sed -Ei 's|/mnt/?|/|g' /mnt/etc/zfs/zfs-list.cache/rpool
|
sed -Ei "s|/$c_zfs_mount_dir/?|/|g" "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name"
|
||||||
}
|
}
|
||||||
|
|
||||||
function find_suitable_disks {
|
function find_suitable_disks {
|
||||||
@@ -720,7 +720,7 @@ if [[ $v_zfs_experimental == "1" ]]; then
|
|||||||
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
||||||
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
||||||
chroot_execute "apt update"
|
chroot_execute "apt update"
|
||||||
chroot_execute "apt install -t zfs-debian-experimental --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install -t zfs-debian-experimental --yes openzfs-zfs-initramfs openzfs-zfs-dkms openzfs-zfsutils openzfs-zfs-zed"
|
||||||
else
|
else
|
||||||
chroot_execute "apt install -t bullseye-backports --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install -t bullseye-backports --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
||||||
fi
|
fi
|
||||||
@@ -760,7 +760,7 @@ chroot_execute "grub-install --recheck ${v_selected_disks[0]}"
|
|||||||
|
|
||||||
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=rpool/ROOT/debian\"|g' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=$v_rpool_name/ROOT/debian\"|g' /etc/default/grub"
|
||||||
|
|
||||||
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
||||||
@@ -774,21 +774,22 @@ if [[ $v_encrypt_rpool == "1" ]]; then
|
|||||||
echo "=========set up dropbear=============="
|
echo "=========set up dropbear=============="
|
||||||
|
|
||||||
chroot_execute "apt install --yes dropbear-initramfs"
|
chroot_execute "apt install --yes dropbear-initramfs"
|
||||||
|
|
||||||
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear-initramfs/authorized_keys"
|
mkdir -p "$c_zfs_mount_dir/etc/dropbear/initramfs"
|
||||||
|
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear/initramfs/authorized_keys"
|
||||||
|
|
||||||
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
||||||
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_rsa_key_temp"
|
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_rsa_key_temp"
|
||||||
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key_temp /etc/dropbear-initramfs/dropbear_rsa_host_key"
|
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key_temp /etc/dropbear/initramfs/dropbear_rsa_host_key"
|
||||||
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
||||||
|
|
||||||
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_ecdsa_key_temp"
|
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_ecdsa_key_temp /etc/dropbear-initramfs/dropbear_ecdsa_host_key"
|
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_ecdsa_key_temp /etc/dropbear/initramfs/dropbear_ecdsa_host_key"
|
||||||
chroot_execute "rm -rf /etc/ssh/ssh_host_ecdsa_key_temp"
|
chroot_execute "rm -rf /etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
|
|
||||||
rm -rf "$c_zfs_mount_dir/etc/dropbear-initramfs/dropbear_dss_host_key"
|
rm -rf "$c_zfs_mount_dir/etc/dropbear/initramfs/dropbear_dss_host_key"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "============setup root prompt============"
|
echo "============setup root prompt============"
|
||||||
@@ -801,6 +802,7 @@ CONF
|
|||||||
|
|
||||||
echo "========running packages upgrade==========="
|
echo "========running packages upgrade==========="
|
||||||
chroot_execute "apt upgrade --yes"
|
chroot_execute "apt upgrade --yes"
|
||||||
|
chroot_execute "apt purge cryptsetup* --yes"
|
||||||
|
|
||||||
echo "===========add static route to initramfs via hook to add default routes for Hetzner due to Debian/Ubuntu initramfs DHCP bug ========="
|
echo "===========add static route to initramfs via hook to add default routes for Hetzner due to Debian/Ubuntu initramfs DHCP bug ========="
|
||||||
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
||||||
@@ -840,7 +842,7 @@ chroot_execute "update-grub"
|
|||||||
|
|
||||||
echo "======= setting up zed =========="
|
echo "======= setting up zed =========="
|
||||||
if [[ $v_zfs_experimental == "1" ]]; then
|
if [[ $v_zfs_experimental == "1" ]]; then
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
else
|
else
|
||||||
initial_load_debian_zed_cache
|
initial_load_debian_zed_cache
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -139,20 +139,20 @@ function check_prerequisites {
|
|||||||
|
|
||||||
function initial_load_debian_zed_cache {
|
function initial_load_debian_zed_cache {
|
||||||
chroot_execute "mkdir /etc/zfs/zfs-list.cache"
|
chroot_execute "mkdir /etc/zfs/zfs-list.cache"
|
||||||
chroot_execute "touch /etc/zfs/zfs-list.cache/rpool"
|
chroot_execute "touch /etc/zfs/zfs-list.cache/$v_rpool_name"
|
||||||
chroot_execute "ln -sf /usr/lib/zfs-linux/zed.d/history_event-zfs-list-cacher.sh /etc/zfs/zed.d/"
|
chroot_execute "ln -sf /usr/lib/zfs-linux/zed.d/history_event-zfs-list-cacher.sh /etc/zfs/zed.d/"
|
||||||
|
|
||||||
chroot_execute "zed -F &"
|
chroot_execute "zed -F &"
|
||||||
|
|
||||||
local success=0
|
local success=0
|
||||||
|
|
||||||
if [[ ! -e /mnt/etc/zfs/zfs-list.cache/rpool ]] || [[ -e /mnt/etc/zfs/zfs-list.cache/rpool && (( $(find /mnt/etc/zfs/zfs-list.cache/rpool -type f -printf '%s' 2> /dev/null) == 0 )) ]]; then
|
if [[ ! -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" ]] || [[ -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" && (( $(find "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" -type f -printf '%s' 2> /dev/null) == 0 )) ]]; then
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
|
|
||||||
SECONDS=0
|
SECONDS=0
|
||||||
|
|
||||||
while (( SECONDS++ <= 120 )); do
|
while (( SECONDS++ <= 120 )); do
|
||||||
if [[ -e /mnt/etc/zfs/zfs-list.cache/rpool ]] && (( $(find /mnt/etc/zfs/zfs-list.cache/rpool -type f -printf '%s' 2> /dev/null) > 0 )); then
|
if [[ -e "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" ]] && (( $(find "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name" -type f -printf '%s' 2> /dev/null) > 0 )); then
|
||||||
success=1
|
success=1
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
@@ -170,7 +170,7 @@ function initial_load_debian_zed_cache {
|
|||||||
|
|
||||||
chroot_execute "pkill zed"
|
chroot_execute "pkill zed"
|
||||||
|
|
||||||
sed -Ei 's|/mnt/?|/|g' /mnt/etc/zfs/zfs-list.cache/rpool
|
sed -Ei "s|/$c_zfs_mount_dir/?|/|g" "$c_zfs_mount_dir/etc/zfs/zfs-list.cache/$v_rpool_name"
|
||||||
}
|
}
|
||||||
|
|
||||||
function find_suitable_disks {
|
function find_suitable_disks {
|
||||||
@@ -630,7 +630,7 @@ CONF
|
|||||||
|
|
||||||
ip6addr_prefix=$(ip -6 a s | grep -E "inet6.+global" | sed -nE 's/.+inet6\s(([0-9a-z]{1,4}:){4,4}).+/\1/p' | head -n 1)
|
ip6addr_prefix=$(ip -6 a s | grep -E "inet6.+global" | sed -nE 's/.+inet6\s(([0-9a-z]{1,4}:){4,4}).+/\1/p' | head -n 1)
|
||||||
|
|
||||||
cat <<CONF > /mnt/etc/systemd/network/10-eth0.network
|
cat <<CONF > "$c_zfs_mount_dir/etc/systemd/network/10-eth0.network"
|
||||||
[Match]
|
[Match]
|
||||||
Name=eth0
|
Name=eth0
|
||||||
|
|
||||||
@@ -721,7 +721,7 @@ if [[ $v_zfs_experimental == "1" ]]; then
|
|||||||
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
||||||
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
||||||
chroot_execute "apt update"
|
chroot_execute "apt update"
|
||||||
chroot_execute "apt install -t zfs-debian-experimental --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install -t zfs-debian-experimental --yes openzfs-zfs-initramfs openzfs-zfs-dkms openzfs-zfsutils openzfs-zfs-zed"
|
||||||
else
|
else
|
||||||
chroot_execute "apt install -t bookworm-backports --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install -t bookworm-backports --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
||||||
fi
|
fi
|
||||||
@@ -746,7 +746,7 @@ chroot_execute "echo root:$(printf "%q" "$v_root_password") | chpasswd"
|
|||||||
|
|
||||||
echo "======= setting up zfs cache =========="
|
echo "======= setting up zfs cache =========="
|
||||||
|
|
||||||
cp /etc/zpool.cache /mnt/etc/zfs/zpool.cache
|
cp /etc/zpool.cache "$c_zfs_mount_dir/etc/zfs/zpool.cache"
|
||||||
|
|
||||||
echo "========setting up zfs module parameters========"
|
echo "========setting up zfs module parameters========"
|
||||||
chroot_execute "echo options zfs zfs_arc_max=$((v_zfs_arc_max_mb * 1024 * 1024)) >> /etc/modprobe.d/zfs.conf"
|
chroot_execute "echo options zfs zfs_arc_max=$((v_zfs_arc_max_mb * 1024 * 1024)) >> /etc/modprobe.d/zfs.conf"
|
||||||
@@ -759,7 +759,7 @@ chroot_execute "grub-install --recheck ${v_selected_disks[0]}"
|
|||||||
|
|
||||||
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=rpool/ROOT/debian\"|g' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=$v_rpool_name/ROOT/debian\"|g' /etc/default/grub"
|
||||||
|
|
||||||
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
||||||
@@ -773,21 +773,22 @@ if [[ $v_encrypt_rpool == "1" ]]; then
|
|||||||
echo "=========set up dropbear=============="
|
echo "=========set up dropbear=============="
|
||||||
|
|
||||||
chroot_execute "apt install --yes dropbear-initramfs"
|
chroot_execute "apt install --yes dropbear-initramfs"
|
||||||
|
|
||||||
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear-initramfs/authorized_keys"
|
mkdir -p "$c_zfs_mount_dir/etc/dropbear/initramfs"
|
||||||
|
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear/initramfs/authorized_keys"
|
||||||
|
|
||||||
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
||||||
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_rsa_key_temp"
|
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_rsa_key_temp"
|
||||||
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key_temp /etc/dropbear-initramfs/dropbear_rsa_host_key"
|
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key_temp /etc/dropbear/initramfs/dropbear_rsa_host_key"
|
||||||
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
||||||
|
|
||||||
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_ecdsa_key_temp"
|
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_ecdsa_key_temp /etc/dropbear-initramfs/dropbear_ecdsa_host_key"
|
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_ecdsa_key_temp /etc/dropbear/initramfs/dropbear_ecdsa_host_key"
|
||||||
chroot_execute "rm -rf /etc/ssh/ssh_host_ecdsa_key_temp"
|
chroot_execute "rm -rf /etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
|
|
||||||
rm -rf "$c_zfs_mount_dir/etc/dropbear-initramfs/dropbear_dss_host_key"
|
rm -rf "$c_zfs_mount_dir/etc/dropbear/initramfs/dropbear_dss_host_key"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "============setup root prompt============"
|
echo "============setup root prompt============"
|
||||||
@@ -804,7 +805,7 @@ cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/root/.ssh/authorized_keys"
|
|||||||
|
|
||||||
echo "========running packages upgrade and autoremove==========="
|
echo "========running packages upgrade and autoremove==========="
|
||||||
chroot_execute "apt upgrade --yes"
|
chroot_execute "apt upgrade --yes"
|
||||||
chroot_execute "apt autoremove --yes"
|
chroot_execute "apt purge cryptsetup* --yes"
|
||||||
|
|
||||||
echo "===========add static route to initramfs via hook to add default routes for Hetzner due to Debian/Ubuntu initramfs DHCP bug ========="
|
echo "===========add static route to initramfs via hook to add default routes for Hetzner due to Debian/Ubuntu initramfs DHCP bug ========="
|
||||||
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
||||||
@@ -839,12 +840,14 @@ chmod 755 "$c_zfs_mount_dir/etc/network/interfaces"
|
|||||||
echo "======= update initramfs =========="
|
echo "======= update initramfs =========="
|
||||||
chroot_execute "update-initramfs -u -k all"
|
chroot_execute "update-initramfs -u -k all"
|
||||||
|
|
||||||
|
chroot_execute "apt remove cryptsetup* --yes"
|
||||||
|
|
||||||
echo "======= update grub =========="
|
echo "======= update grub =========="
|
||||||
chroot_execute "update-grub"
|
chroot_execute "update-grub"
|
||||||
|
|
||||||
echo "======= setting up zed =========="
|
echo "======= setting up zed =========="
|
||||||
if [[ $v_zfs_experimental == "1" ]]; then
|
if [[ $v_zfs_experimental == "1" ]]; then
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
else
|
else
|
||||||
initial_load_debian_zed_cache
|
initial_load_debian_zed_cache
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -702,7 +702,7 @@ if [[ $v_zfs_experimental == "1" ]]; then
|
|||||||
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
||||||
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
||||||
chroot_execute "apt update"
|
chroot_execute "apt update"
|
||||||
chroot_execute "apt install -t zfs-debian-experimental --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install -t zfs-debian-experimental --yes openzfs-zfs-initramfs openzfs-zfs-dkms openzfs-zfsutils openzfs-zfs-zed"
|
||||||
else
|
else
|
||||||
chroot_execute "add-apt-repository --yes ppa:jonathonf/zfs"
|
chroot_execute "add-apt-repository --yes ppa:jonathonf/zfs"
|
||||||
chroot_execute "apt install --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
||||||
@@ -741,7 +741,7 @@ chroot_execute "grub-install ${v_selected_disks[0]}"
|
|||||||
|
|
||||||
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=rpool/ROOT/ubuntu\"|g' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=$v_rpool_name/ROOT/ubuntu\"|g' /etc/default/grub"
|
||||||
|
|
||||||
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
||||||
@@ -769,18 +769,6 @@ if [[ $v_encrypt_rpool == "1" ]]; then
|
|||||||
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
|
|
||||||
rm -rf "$c_zfs_mount_dir/etc/dropbear-initramfs/dropbear_dss_host_key"
|
rm -rf "$c_zfs_mount_dir/etc/dropbear-initramfs/dropbear_dss_host_key"
|
||||||
|
|
||||||
cd "$c_zfs_mount_dir/root"
|
|
||||||
wget http://ftp.de.debian.org/debian/pool/main/libt/libtommath/libtommath1_1.1.0-3_amd64.deb
|
|
||||||
wget http://ftp.de.debian.org/debian/pool/main/d/dropbear/dropbear-bin_2018.76-5_amd64.deb
|
|
||||||
wget http://ftp.de.debian.org/debian/pool/main/d/dropbear/dropbear-initramfs_2018.76-5_all.deb
|
|
||||||
|
|
||||||
chroot_execute "dpkg -i /root/libtommath1_1.1.0-3_amd64.deb"
|
|
||||||
chroot_execute "dpkg -i /root/dropbear-bin_2018.76-5_amd64.deb"
|
|
||||||
chroot_execute "dpkg -i /root/dropbear-initramfs_2018.76-5_all.deb"
|
|
||||||
|
|
||||||
rm $c_zfs_mount_dir/root/*.deb
|
|
||||||
cd /root
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "============setup root prompt============"
|
echo "============setup root prompt============"
|
||||||
@@ -793,6 +781,7 @@ CONF
|
|||||||
|
|
||||||
echo "========running packages upgrade==========="
|
echo "========running packages upgrade==========="
|
||||||
chroot_execute "apt upgrade --yes"
|
chroot_execute "apt upgrade --yes"
|
||||||
|
chroot_execute "apt purge cryptsetup* --yes"
|
||||||
|
|
||||||
echo "===========add static route to initramfs via hook to add default routes due to Ubuntu initramfs DHCP bug ========="
|
echo "===========add static route to initramfs via hook to add default routes due to Ubuntu initramfs DHCP bug ========="
|
||||||
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
||||||
@@ -816,8 +805,8 @@ esac
|
|||||||
|
|
||||||
configure_networking
|
configure_networking
|
||||||
|
|
||||||
ip route add 172.31.1.1/255.255.255.255 dev ens3
|
ip route add 172.31.1.1/255.255.255.255 dev eth0
|
||||||
ip route add default via 172.31.1.1 dev ens3
|
ip route add default via 172.31.1.1 dev eth0
|
||||||
CONF
|
CONF
|
||||||
|
|
||||||
chmod 755 "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount/static-route"
|
chmod 755 "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount/static-route"
|
||||||
@@ -830,7 +819,7 @@ chroot_execute "update-grub"
|
|||||||
|
|
||||||
echo "======= setting up zed =========="
|
echo "======= setting up zed =========="
|
||||||
|
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
|
|
||||||
echo "======= setting mountpoints =========="
|
echo "======= setting mountpoints =========="
|
||||||
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/ubuntu"
|
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/ubuntu"
|
||||||
|
|||||||
@@ -703,7 +703,7 @@ if [[ $v_zfs_experimental == "1" ]]; then
|
|||||||
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
||||||
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
||||||
chroot_execute "apt update"
|
chroot_execute "apt update"
|
||||||
chroot_execute "apt install -t zfs-debian-experimental --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install -t zfs-debian-experimental --yes openzfs-zfs-initramfs openzfs-zfs-dkms openzfs-zfsutils openzfs-zfs-zed"
|
||||||
else
|
else
|
||||||
chroot_execute "add-apt-repository --yes ppa:jonathonf/zfs"
|
chroot_execute "add-apt-repository --yes ppa:jonathonf/zfs"
|
||||||
chroot_execute "apt install --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
||||||
@@ -738,11 +738,11 @@ chroot_execute "echo options zfs zfs_arc_max=$((v_zfs_arc_max_mb * 1024 * 1024))
|
|||||||
echo "======= setting up grub =========="
|
echo "======= setting up grub =========="
|
||||||
chroot_execute "echo 'grub-pc grub-pc/install_devices_empty boolean true' | debconf-set-selections"
|
chroot_execute "echo 'grub-pc grub-pc/install_devices_empty boolean true' | debconf-set-selections"
|
||||||
chroot_execute "DEBIAN_FRONTEND=noninteractive apt install --yes grub-pc"
|
chroot_execute "DEBIAN_FRONTEND=noninteractive apt install --yes grub-pc"
|
||||||
chroot_execute "grub-install ${v_selected_disks[0]}"
|
chroot_execute "grub-install --recheck ${v_selected_disks[0]}"
|
||||||
|
|
||||||
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=rpool/ROOT/ubuntu\"|g' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=$v_rpool_name/ROOT/ubuntu\"|g' /etc/default/grub"
|
||||||
|
|
||||||
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
||||||
@@ -755,7 +755,7 @@ done
|
|||||||
if [[ $v_encrypt_rpool == "1" ]]; then
|
if [[ $v_encrypt_rpool == "1" ]]; then
|
||||||
echo "=========set up dropbear=============="
|
echo "=========set up dropbear=============="
|
||||||
chroot_execute "apt install --yes dropbear-initramfs"
|
chroot_execute "apt install --yes dropbear-initramfs"
|
||||||
|
|
||||||
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear-initramfs/authorized_keys"
|
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear-initramfs/authorized_keys"
|
||||||
|
|
||||||
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
||||||
@@ -794,6 +794,7 @@ CONF
|
|||||||
|
|
||||||
echo "========running packages upgrade==========="
|
echo "========running packages upgrade==========="
|
||||||
chroot_execute "apt upgrade --yes"
|
chroot_execute "apt upgrade --yes"
|
||||||
|
chroot_execute "apt purge cryptsetup* --yes"
|
||||||
|
|
||||||
echo "===========add static route to initramfs via hook to add default routes due to Ubuntu initramfs DHCP bug ========="
|
echo "===========add static route to initramfs via hook to add default routes due to Ubuntu initramfs DHCP bug ========="
|
||||||
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
||||||
@@ -831,7 +832,7 @@ chroot_execute "update-grub"
|
|||||||
|
|
||||||
echo "======= setting up zed =========="
|
echo "======= setting up zed =========="
|
||||||
|
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
|
|
||||||
echo "======= setting mountpoints =========="
|
echo "======= setting mountpoints =========="
|
||||||
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/ubuntu"
|
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/ubuntu"
|
||||||
|
|||||||
@@ -685,7 +685,7 @@ chroot_execute "rm -f /etc/localtime /etc/timezone"
|
|||||||
chroot_execute "dpkg-reconfigure tzdata -f noninteractive "
|
chroot_execute "dpkg-reconfigure tzdata -f noninteractive "
|
||||||
|
|
||||||
echo "======= installing latest kernel============="
|
echo "======= installing latest kernel============="
|
||||||
chroot_execute "DEBIAN_FRONTEND=noninteractive apt install --yes linux-headers${v_kernel_variant} linux-image${v_kernel_variant}"
|
chroot_execute "DEBIAN_FRONTEND=noninteractive apt install --yes linux-image-generic linux-headers-generic"
|
||||||
if [[ $v_kernel_variant == "-virtual" ]]; then
|
if [[ $v_kernel_variant == "-virtual" ]]; then
|
||||||
# linux-image-extra is only available for virtual hosts
|
# linux-image-extra is only available for virtual hosts
|
||||||
chroot_execute "DEBIAN_FRONTEND=noninteractive apt install --yes linux-image-extra-virtual"
|
chroot_execute "DEBIAN_FRONTEND=noninteractive apt install --yes linux-image-extra-virtual"
|
||||||
@@ -703,7 +703,7 @@ if [[ $v_zfs_experimental == "1" ]]; then
|
|||||||
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
chroot_execute "wget -O - https://terem42.github.io/zfs-debian/apt_pub.gpg | apt-key add -"
|
||||||
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
chroot_execute "add-apt-repository 'deb https://terem42.github.io/zfs-debian/public zfs-debian-experimental main'"
|
||||||
chroot_execute "apt update"
|
chroot_execute "apt update"
|
||||||
chroot_execute "apt install -t zfs-debian-experimental --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install -t zfs-debian-experimental --yes openzfs-zfs-initramfs openzfs-zfs-dkms openzfs-zfsutils openzfs-zfs-zed"
|
||||||
else
|
else
|
||||||
chroot_execute "add-apt-repository --yes ppa:jonathonf/zfs"
|
chroot_execute "add-apt-repository --yes ppa:jonathonf/zfs"
|
||||||
chroot_execute "apt install --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
chroot_execute "apt install --yes zfs-initramfs zfs-dkms zfsutils-linux"
|
||||||
@@ -738,11 +738,11 @@ chroot_execute "echo options zfs zfs_arc_max=$((v_zfs_arc_max_mb * 1024 * 1024))
|
|||||||
echo "======= setting up grub =========="
|
echo "======= setting up grub =========="
|
||||||
chroot_execute "echo 'grub-pc grub-pc/install_devices_empty boolean true' | debconf-set-selections"
|
chroot_execute "echo 'grub-pc grub-pc/install_devices_empty boolean true' | debconf-set-selections"
|
||||||
chroot_execute "DEBIAN_FRONTEND=noninteractive apt install --yes grub-pc"
|
chroot_execute "DEBIAN_FRONTEND=noninteractive apt install --yes grub-pc"
|
||||||
chroot_execute "grub-install ${v_selected_disks[0]}"
|
chroot_execute "grub-install --recheck ${v_selected_disks[0]}"
|
||||||
|
|
||||||
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
chroot_execute "sed -i 's/#GRUB_TERMINAL=console/GRUB_TERMINAL=console/g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0\"|' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=rpool/ROOT/ubuntu\"|g' /etc/default/grub"
|
chroot_execute "sed -i 's|GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=ZFS=$v_rpool_name/ROOT/ubuntu\"|g' /etc/default/grub"
|
||||||
|
|
||||||
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
chroot_execute "sed -i 's/quiet//g' /etc/default/grub"
|
||||||
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
chroot_execute "sed -i 's/splash//g' /etc/default/grub"
|
||||||
@@ -755,33 +755,22 @@ done
|
|||||||
if [[ $v_encrypt_rpool == "1" ]]; then
|
if [[ $v_encrypt_rpool == "1" ]]; then
|
||||||
echo "=========set up dropbear=============="
|
echo "=========set up dropbear=============="
|
||||||
chroot_execute "apt install --yes dropbear-initramfs"
|
chroot_execute "apt install --yes dropbear-initramfs"
|
||||||
|
|
||||||
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear-initramfs/authorized_keys"
|
mkdir -p "$c_zfs_mount_dir/etc/dropbear/initramfs"
|
||||||
|
cp /root/.ssh/authorized_keys "$c_zfs_mount_dir/etc/dropbear/initramfs/authorized_keys"
|
||||||
|
|
||||||
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
||||||
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_rsa_key_temp"
|
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_rsa_key_temp"
|
||||||
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key_temp /etc/dropbear-initramfs/dropbear_rsa_host_key"
|
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key_temp /etc/dropbear/initramfs/dropbear_rsa_host_key"
|
||||||
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_rsa_key_temp"
|
||||||
|
|
||||||
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
cp "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key" "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_ecdsa_key_temp"
|
chroot_execute "ssh-keygen -p -i -m pem -N '' -f /etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_ecdsa_key_temp /etc/dropbear-initramfs/dropbear_ecdsa_host_key"
|
chroot_execute "/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_ecdsa_key_temp /etc/dropbear/initramfs/dropbear_ecdsa_host_key"
|
||||||
chroot_execute "rm -rf /etc/ssh/ssh_host_ecdsa_key_temp"
|
chroot_execute "rm -rf /etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
rm -rf "$c_zfs_mount_dir/etc/ssh/ssh_host_ecdsa_key_temp"
|
||||||
|
|
||||||
rm -rf "$c_zfs_mount_dir/etc/dropbear-initramfs/dropbear_dss_host_key"
|
rm -rf "$c_zfs_mount_dir/etc/dropbear/initramfs/dropbear_dss_host_key"
|
||||||
|
|
||||||
cd "$c_zfs_mount_dir/root"
|
|
||||||
wget http://ftp.de.debian.org/debian/pool/main/libt/libtommath/libtommath1_1.2.0-6_amd64.deb
|
|
||||||
wget http://ftp.de.debian.org/debian/pool/main/d/dropbear/dropbear-bin_2020.81-3_amd64.deb
|
|
||||||
wget http://ftp.de.debian.org/debian/pool/main/d/dropbear/dropbear-initramfs_2020.81-3_all.deb
|
|
||||||
|
|
||||||
chroot_execute "dpkg -i /root/libtommath1_1.2.0-6_amd64.deb"
|
|
||||||
chroot_execute "dpkg -i /root/dropbear-bin_2020.81-3_amd64.deb"
|
|
||||||
chroot_execute "dpkg -i /root/dropbear-initramfs_2020.81-3_all.deb"
|
|
||||||
|
|
||||||
rm $c_zfs_mount_dir/root/*.deb
|
|
||||||
cd /root
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "============setup root prompt============"
|
echo "============setup root prompt============"
|
||||||
@@ -794,6 +783,7 @@ CONF
|
|||||||
|
|
||||||
echo "========running packages upgrade==========="
|
echo "========running packages upgrade==========="
|
||||||
chroot_execute "apt upgrade --yes"
|
chroot_execute "apt upgrade --yes"
|
||||||
|
chroot_execute "apt purge cryptsetup* --yes"
|
||||||
|
|
||||||
echo "===========add static route to initramfs via hook to add default routes due to Ubuntu initramfs DHCP bug ========="
|
echo "===========add static route to initramfs via hook to add default routes due to Ubuntu initramfs DHCP bug ========="
|
||||||
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
mkdir -p "$c_zfs_mount_dir/usr/share/initramfs-tools/scripts/init-premount"
|
||||||
@@ -831,7 +821,7 @@ chroot_execute "update-grub"
|
|||||||
|
|
||||||
echo "======= setting up zed =========="
|
echo "======= setting up zed =========="
|
||||||
|
|
||||||
chroot_execute "zfs set canmount=noauto rpool"
|
chroot_execute "zfs set canmount=noauto $v_rpool_name"
|
||||||
|
|
||||||
echo "======= setting mountpoints =========="
|
echo "======= setting mountpoints =========="
|
||||||
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/ubuntu"
|
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/ubuntu"
|
||||||
|
|||||||
Reference in New Issue
Block a user