Merge pull request #221 from saveriomiroddi/fix_debian_in_new_procedure
Add support for Debian to new procedure
This commit is contained in:
commit
7441a2bfa5
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# zfs-installer
|
# zfs-installer
|
||||||
|
|
||||||
ZFS installer is a shell script program that fully prepares ZFS on a system, and allows an effortless installation of several Ubuntu-based operating systems using their standard installer (or debootstrap, or any custom script).
|
ZFS installer is a shell script program that fully prepares ZFS on a system, and allows an effortless installation of several Debian-based operating systems using their standard installer (or debootstrap, or any custom script).
|
||||||
|
|
||||||
- [Requirements and functionality](#requirements-and-functionality)
|
- [Requirements and functionality](#requirements-and-functionality)
|
||||||
- [Comparison with Ubuntu built-in installer](#comparison-with-ubuntu-built-in-installer)
|
- [Comparison with Ubuntu built-in installer](#comparison-with-ubuntu-built-in-installer)
|
||||||
|
@ -23,6 +23,7 @@ The program currently supports:
|
||||||
- Ubuntu Desktop 18.04.x/20.04 Live
|
- Ubuntu Desktop 18.04.x/20.04 Live
|
||||||
- Ubuntu Server 18.04.x/20.04 Live
|
- Ubuntu Server 18.04.x/20.04 Live
|
||||||
- Linux Mint 19.x, 20
|
- Linux Mint 19.x, 20
|
||||||
|
- Debian 10.x Live (desktop environment required)
|
||||||
- ElementaryOS 5.1
|
- ElementaryOS 5.1
|
||||||
|
|
||||||
The ZFS version installed is 0.8 (optionally, 2.x), which supports native encryption and trimming (among the other improvements over 0.7). The required repositories are automatically added to the destination system.
|
The ZFS version installed is 0.8 (optionally, 2.x), which supports native encryption and trimming (among the other improvements over 0.7). The required repositories are automatically added to the destination system.
|
||||||
|
@ -31,7 +32,7 @@ EFI boot is required (any modern (2011+) system will do); legacy boot is current
|
||||||
|
|
||||||
All the ZFS RAID types are supported, with any arbitrary number of disks. An EFI partition is created on each disk, for redundancy purposes.
|
All the ZFS RAID types are supported, with any arbitrary number of disks. An EFI partition is created on each disk, for redundancy purposes.
|
||||||
|
|
||||||
It's fairly easy to extend the program to support other Ubuntu-based operating systems - the project is open to feature requests.
|
It's fairly easy to extend the program to support other Debian-based operating systems (e.g. older/newer Ubuntu's, etc.) - the project is (very) open to feature requests.
|
||||||
|
|
||||||
## Comparison with Ubuntu built-in installer
|
## Comparison with Ubuntu built-in installer
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -33,7 +33,7 @@ v_free_tail_space= # integer
|
||||||
|
|
||||||
# Variables set during execution
|
# Variables set during execution
|
||||||
|
|
||||||
v_linux_distribution= # Ubuntu, LinuxMint, ... WATCH OUT: not necessarily from `lsb_release` (ie. UbuntuServer)
|
v_linux_distribution= # Debian, Ubuntu, ... WATCH OUT: not necessarily from `lsb_release` (ie. UbuntuServer)
|
||||||
v_use_ppa= # 1=true, false otherwise (applies only to Ubuntu-based).
|
v_use_ppa= # 1=true, false otherwise (applies only to Ubuntu-based).
|
||||||
v_temp_volume_device= # /dev/zdN; scope: setup_partitions -> sync_os_temp_installation_dir_to_rpool
|
v_temp_volume_device= # /dev/zdN; scope: setup_partitions -> sync_os_temp_installation_dir_to_rpool
|
||||||
v_suitable_disks=() # (/dev/by-id/disk_id, ...); scope: find_suitable_disks -> select_disk
|
v_suitable_disks=() # (/dev/by-id/disk_id, ...); scope: find_suitable_disks -> select_disk
|
||||||
|
@ -118,7 +118,7 @@ USERDATA/%P mountpoint=/home/%P canmount=on com.ubuntu.zsys:b
|
||||||
'
|
'
|
||||||
c_zfs_mount_dir=/mnt
|
c_zfs_mount_dir=/mnt
|
||||||
c_installed_os_mount_dir=/target
|
c_installed_os_mount_dir=/target
|
||||||
declare -A c_supported_linux_distributions=([Ubuntu]="18.04 20.04" [UbuntuServer]="18.04 20.04" [LinuxMint]="19.1 19.2 19.3" [Linuxmint]="20 20.1" [elementary]=5.1)
|
declare -A c_supported_linux_distributions=([Debian]=10 [Ubuntu]="18.04 20.04" [UbuntuServer]="18.04 20.04" [LinuxMint]="19.1 19.2 19.3" [Linuxmint]="20 20.1" [elementary]=5.1)
|
||||||
c_temporary_volume_size=12 # gigabytes; large enough - Debian, for example, takes ~8 GiB.
|
c_temporary_volume_size=12 # gigabytes; large enough - Debian, for example, takes ~8 GiB.
|
||||||
c_passphrase_named_pipe=$(dirname "$(mktemp)")/zfs-installer.pp.fifo
|
c_passphrase_named_pipe=$(dirname "$(mktemp)")/zfs-installer.pp.fifo
|
||||||
|
|
||||||
|
@ -1431,6 +1431,15 @@ function configure_and_update_grub {
|
||||||
chroot_execute "update-grub"
|
chroot_execute "update-grub"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function configure_and_update_grub_Debian {
|
||||||
|
zfs_root_fs=$(chroot_execute 'zfs list / | awk "NR==2 {print \$1}"')
|
||||||
|
zfs_boot_fs=$(chroot_execute 'zfs list /boot | awk "NR==2 {print \$1}"')
|
||||||
|
|
||||||
|
chroot_execute "perl -i -pe 's|GRUB_CMDLINE_LINUX=\"\K|root=ZFS=$zfs_root_fs bootfs=$zfs_boot_fs |' /etc/default/grub"
|
||||||
|
|
||||||
|
configure_and_update_grub
|
||||||
|
}
|
||||||
|
|
||||||
function sync_efi_partitions {
|
function sync_efi_partitions {
|
||||||
for ((i = 1; i < ${#v_selected_disks[@]}; i++)); do
|
for ((i = 1; i < ${#v_selected_disks[@]}; i++)); do
|
||||||
local synced_efi_partition_path="/boot/efi$((i + 1))"
|
local synced_efi_partition_path="/boot/efi$((i + 1))"
|
||||||
|
|
Loading…
Reference in New Issue