Merge pull request #194 from saveriomiroddi/add_kubuntu_support
Add KUbuntu support
This commit is contained in:
		
						commit
						2d9d6b4a06
					
				@ -89,6 +89,7 @@ c_dataset_options_help='# The defaults create a root pool similar to the Ubuntu
 | 
				
			|||||||
# Parameters and command substitutions are applied; useful variables are $c_zfs_mount_dir and $v_rpool_name.
 | 
					# Parameters and command substitutions are applied; useful variables are $c_zfs_mount_dir and $v_rpool_name.
 | 
				
			||||||
'
 | 
					'
 | 
				
			||||||
# Can't include double quotes, due to the templating logic.
 | 
					# Can't include double quotes, due to the templating logic.
 | 
				
			||||||
 | 
					# KUbuntu has a /home/.directory, which must not be a separate dataset (it's a symlink).
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
c_default_dataset_create_options='
 | 
					c_default_dataset_create_options='
 | 
				
			||||||
ROOT                           mountpoint=/ com.ubuntu.zsys:bootfs=yes com.ubuntu.zsys:last-used=$(date +%s)
 | 
					ROOT                           mountpoint=/ com.ubuntu.zsys:bootfs=yes com.ubuntu.zsys:last-used=$(date +%s)
 | 
				
			||||||
@ -112,7 +113,7 @@ ROOT/tmp                       com.ubuntu.zsys:bootfs=no
 | 
				
			|||||||
USERDATA                       mountpoint=/ canmount=off
 | 
					USERDATA                       mountpoint=/ canmount=off
 | 
				
			||||||
USERDATA/root                  mountpoint=/root canmount=on com.ubuntu.zsys:bootfs-datasets=$v_rpool_name/ROOT
 | 
					USERDATA/root                  mountpoint=/root canmount=on com.ubuntu.zsys:bootfs-datasets=$v_rpool_name/ROOT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(find $c_installed_os_mount_dir/home -mindepth 1 -maxdepth 1 -printf '\''
 | 
					$(find $c_installed_os_mount_dir/home -mindepth 1 -maxdepth 1 -not -name '\''.*'\'' -printf '\''
 | 
				
			||||||
USERDATA/%P                    mountpoint=/home/%P canmount=on com.ubuntu.zsys:bootfs-datasets=$v_rpool_name/%P
 | 
					USERDATA/%P                    mountpoint=/home/%P canmount=on com.ubuntu.zsys:bootfs-datasets=$v_rpool_name/%P
 | 
				
			||||||
'\'')
 | 
					'\'')
 | 
				
			||||||
'
 | 
					'
 | 
				
			||||||
@ -558,15 +559,6 @@ function update_apt_index {
 | 
				
			|||||||
  apt update
 | 
					  apt update
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# There are three parameters:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 1. the tools are preinstalled (ie. Ubuntu Desktop based);
 | 
					 | 
				
			||||||
# 2. the default repository supports ZFS 0.8 (ie. Ubuntu 20.04+ based);
 | 
					 | 
				
			||||||
# 3. the distro provides the precompiled ZFS module (i.e. Ubuntu based, not Debian)
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Fortunately, with Debian-specific logic isolated, we need conditionals based only on #2 - see
 | 
					 | 
				
			||||||
# install_host_packages() and install_host_packages_UbuntuServer().
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
function set_use_zfs_ppa {
 | 
					function set_use_zfs_ppa {
 | 
				
			||||||
  local zfs_package_version
 | 
					  local zfs_package_version
 | 
				
			||||||
  zfs_package_version=$(apt show zfsutils-linux 2> /dev/null | perl -ne 'print /^Version: (\d+\.\d+)/')
 | 
					  zfs_package_version=$(apt show zfsutils-linux 2> /dev/null | perl -ne 'print /^Version: (\d+\.\d+)/')
 | 
				
			||||||
@ -585,8 +577,12 @@ function set_use_zfs_ppa_Debian {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Whiptail's lack of multiline editing is quite painful.
 | 
					# Whiptail's lack of multiline editing is quite painful.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
function install_dialog_package {
 | 
					function install_host_base_packages {
 | 
				
			||||||
  apt install -y dialog
 | 
					  # `efibootmgr` needs installation on all the systems.
 | 
				
			||||||
 | 
					  # the other packages are each required by different distros, so for simplicity, they're all packed
 | 
				
			||||||
 | 
					  # together.
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  apt install -y efibootmgr dialog software-properties-common
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function select_disks {
 | 
					function select_disks {
 | 
				
			||||||
@ -836,10 +832,10 @@ function ask_dataset_create_options {
 | 
				
			|||||||
  print_variables v_dataset_create_options
 | 
					  print_variables v_dataset_create_options
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function install_host_packages {
 | 
					function install_host_zfs_packages {
 | 
				
			||||||
  if [[ $v_use_ppa == "1" ]]; then
 | 
					  if [[ $v_use_ppa == "1" ]]; then
 | 
				
			||||||
    if [[ ${ZFS_SKIP_LIVE_ZFS_MODULE_INSTALL:-} != "1" ]]; then
 | 
					    if [[ ${ZFS_SKIP_LIVE_ZFS_MODULE_INSTALL:-} != "1" ]]; then
 | 
				
			||||||
      add-apt-repository --yes "$c_ppa"
 | 
					      add-apt-repository --yes --no-update "$c_ppa"
 | 
				
			||||||
      apt update
 | 
					      apt update
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Libelf-dev allows `CONFIG_STACK_VALIDATION` to be set - it's optional, but good to have.
 | 
					      # Libelf-dev allows `CONFIG_STACK_VALIDATION` to be set - it's optional, but good to have.
 | 
				
			||||||
@ -855,12 +851,14 @@ function install_host_packages {
 | 
				
			|||||||
    fi
 | 
					    fi
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  apt install --yes efibootmgr
 | 
					  # Required only by some distros.
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  apt install --yes zfsutils-linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  zfs --version > "$c_zfs_module_version_log" 2>&1
 | 
					  zfs --version > "$c_zfs_module_version_log" 2>&1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function install_host_packages_Debian {
 | 
					function install_host_zfs_packages_Debian {
 | 
				
			||||||
  if [[ ${ZFS_SKIP_LIVE_ZFS_MODULE_INSTALL:-} != "1" ]]; then
 | 
					  if [[ ${ZFS_SKIP_LIVE_ZFS_MODULE_INSTALL:-} != "1" ]]; then
 | 
				
			||||||
    echo "zfs-dkms zfs-dkms/note-incompatible-licenses note true" | debconf-set-selections
 | 
					    echo "zfs-dkms zfs-dkms/note-incompatible-licenses note true" | debconf-set-selections
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -873,29 +871,10 @@ function install_host_packages_Debian {
 | 
				
			|||||||
    modprobe zfs
 | 
					    modprobe zfs
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  apt install --yes efibootmgr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  zfs --version > "$c_zfs_module_version_log" 2>&1
 | 
					  zfs --version > "$c_zfs_module_version_log" 2>&1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Differently from Ubuntu, Mint doesn't have the package installed in the live version.
 | 
					function install_host_zfs_packages_UbuntuServer {
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
function install_host_packages_Linuxmint {
 | 
					 | 
				
			||||||
  apt install --yes zfsutils-linux
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  invoke "install_host_packages"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function install_host_packages_elementary {
 | 
					 | 
				
			||||||
  if [[ ${ZFS_SKIP_LIVE_ZFS_MODULE_INSTALL:-} != "1" ]]; then
 | 
					 | 
				
			||||||
    apt update
 | 
					 | 
				
			||||||
    apt install --yes software-properties-common
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  invoke "install_host_packages"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function install_host_packages_UbuntuServer {
 | 
					 | 
				
			||||||
  if [[ $v_use_ppa != "1" ]]; then
 | 
					  if [[ $v_use_ppa != "1" ]]; then
 | 
				
			||||||
    apt install --yes zfsutils-linux efibootmgr
 | 
					    apt install --yes zfsutils-linux efibootmgr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -920,7 +899,7 @@ function install_host_packages_UbuntuServer {
 | 
				
			|||||||
    apt update
 | 
					    apt update
 | 
				
			||||||
    apt install --yes "linux-headers-$(uname -r)"
 | 
					    apt install --yes "linux-headers-$(uname -r)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    install_host_packages
 | 
					    install_host_zfs_packages
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    apt install --yes efibootmgr
 | 
					    apt install --yes efibootmgr
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
@ -1288,11 +1267,17 @@ function prepare_jail {
 | 
				
			|||||||
  chroot_execute 'echo "nameserver 8.8.8.8" >> /etc/resolv.conf'
 | 
					  chroot_execute 'echo "nameserver 8.8.8.8" >> /etc/resolv.conf'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# See install_host_packages() for some comments.
 | 
					# Same principle as install_host_base_packages().
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					function install_jail_base_packages {
 | 
				
			||||||
 | 
					  chroot_execute "apt install --yes rsync grub-efi-amd64-signed shim-signed software-properties-common"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# See install_host_zfs_packages() for some comments.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
function install_jail_zfs_packages {
 | 
					function install_jail_zfs_packages {
 | 
				
			||||||
  if [[ $v_use_ppa == "1" ]]; then
 | 
					  if [[ $v_use_ppa == "1" ]]; then
 | 
				
			||||||
    chroot_execute "add-apt-repository --yes $c_ppa"
 | 
					    chroot_execute "add-apt-repository --yes --no-update $c_ppa"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    chroot_execute "apt update"
 | 
					    chroot_execute "apt update"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1310,8 +1295,6 @@ function install_jail_zfs_packages {
 | 
				
			|||||||
    #
 | 
					    #
 | 
				
			||||||
    chroot_execute "apt install --yes libzfs2linux zfs-initramfs zfs-zed zfsutils-linux"
 | 
					    chroot_execute "apt install --yes libzfs2linux zfs-initramfs zfs-zed zfsutils-linux"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					 | 
				
			||||||
  chroot_execute "apt install --yes grub-efi-amd64-signed shim-signed"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function install_jail_zfs_packages_Debian {
 | 
					function install_jail_zfs_packages_Debian {
 | 
				
			||||||
@ -1330,18 +1313,12 @@ APT'
 | 
				
			|||||||
  chroot_execute "apt update"
 | 
					  chroot_execute "apt update"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  chroot_execute 'echo "zfs-dkms zfs-dkms/note-incompatible-licenses note true" | debconf-set-selections'
 | 
					  chroot_execute 'echo "zfs-dkms zfs-dkms/note-incompatible-licenses note true" | debconf-set-selections'
 | 
				
			||||||
  chroot_execute "apt install --yes rsync zfs-initramfs zfs-dkms grub-efi-amd64-signed shim-signed"
 | 
					  chroot_execute "apt install --yes zfs-initramfs zfs-dkms"
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function install_jail_zfs_packages_elementary {
 | 
					 | 
				
			||||||
  chroot_execute "apt install --yes software-properties-common"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  invoke "install_jail_zfs_packages"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function install_jail_zfs_packages_UbuntuServer {
 | 
					function install_jail_zfs_packages_UbuntuServer {
 | 
				
			||||||
  if [[ $v_use_ppa != "1" ]]; then
 | 
					  if [[ $v_use_ppa != "1" ]]; then
 | 
				
			||||||
    chroot_execute "apt install --yes zfsutils-linux zfs-initramfs grub-efi-amd64-signed shim-signed"
 | 
					    chroot_execute "apt install --yes zfsutils-linux zfs-initramfs"
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    invoke "install_jail_zfs_packages"
 | 
					    invoke "install_jail_zfs_packages"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
@ -1528,7 +1505,7 @@ invoke "create_passphrase_named_pipe"
 | 
				
			|||||||
invoke "prepare_standard_repositories"
 | 
					invoke "prepare_standard_repositories"
 | 
				
			||||||
invoke "update_apt_index"
 | 
					invoke "update_apt_index"
 | 
				
			||||||
invoke "set_use_zfs_ppa"
 | 
					invoke "set_use_zfs_ppa"
 | 
				
			||||||
invoke "install_dialog_package"
 | 
					invoke "install_host_base_packages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
invoke "select_disks"
 | 
					invoke "select_disks"
 | 
				
			||||||
invoke "select_pools_raid_type"
 | 
					invoke "select_pools_raid_type"
 | 
				
			||||||
@ -1541,7 +1518,7 @@ invoke "ask_rpool_name"
 | 
				
			|||||||
invoke "ask_pool_create_options"
 | 
					invoke "ask_pool_create_options"
 | 
				
			||||||
invoke "ask_dataset_create_options"
 | 
					invoke "ask_dataset_create_options"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
invoke "install_host_packages"
 | 
					invoke "install_host_zfs_packages"
 | 
				
			||||||
invoke "setup_partitions"
 | 
					invoke "setup_partitions"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ -z ${ZFS_OS_INSTALLATION_SCRIPT:-} ]]; then
 | 
					if [[ -z ${ZFS_OS_INSTALLATION_SCRIPT:-} ]]; then
 | 
				
			||||||
@ -1563,6 +1540,7 @@ else
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
invoke "prepare_jail"
 | 
					invoke "prepare_jail"
 | 
				
			||||||
 | 
					invoke "install_jail_base_packages"
 | 
				
			||||||
invoke "install_jail_zfs_packages"
 | 
					invoke "install_jail_zfs_packages"
 | 
				
			||||||
invoke "prepare_efi_partition"
 | 
					invoke "prepare_efi_partition"
 | 
				
			||||||
invoke "configure_and_update_grub"
 | 
					invoke "configure_and_update_grub"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user