diff options
author | pico.dev <pico.dev@gmail.com> | 2020-05-09 14:34:00 +0200 |
---|---|---|
committer | pico.dev <pico.dev@gmail.com> | 2020-05-09 14:34:00 +0200 |
commit | 8168e52ec15997ae90efe3f3444d218eb20867b2 (patch) | |
tree | 437cfbc8f49438d14d604e2cd20962d7a30e5e74 | |
parent | 9306d00f871b80fd723d0a5306583cde8d8c0fed (diff) |
Commented support for systemd-homed and f2fs
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | alis.conf | 6 | ||||
-rw-r--r-- | alis.sh | 113 | ||||
-rw-r--r-- | packer/alis-packer-bios-ext4-grub-luks-lvm.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-bios-ext4-grub.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-efi-btrfs-luks-lvm-systemd-aur.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-efi-ext4-grub-gnome.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-efi-ext4-grub-kde.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-efi-ext4-grub-xfce.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-efi-ext4-luks-grub.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-efi-ext4-luks-lvm-grub.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-efi-ext4-luks-lvm-systemd.json | 4 | ||||
-rw-r--r-- | packer/alis-packer-efi-f2fs-luks-lvm-systemd.json | 52 |
13 files changed, 181 insertions, 28 deletions
@@ -46,7 +46,7 @@ For new features, improvements and bugs fill an issue in GitHub or make a pull r * Kernel compression and custom parameters * Users creation and add to sudoers * Common and custom packages installation -* Systemd units enable or disable +* systemd units enable or disable * AUR utility installation (aurman, yay) * Script for download installation and recovery scripts and configuration files * Retry packages download on connection/mirror error @@ -52,6 +52,12 @@ USER_PASSWORD="archlinux" # Main user password. Warning: change it! USER_PASSWORD_RETYPE="archlinux" ADDITIONAL_USERS=() # eg. ("user1=password1" "user2=password2") +#SYSTEMD_HOMED="false" +#SYSTEMD_HOMED_STORAGE="directory !fscrypt !luks !cifs !subvolume" +#SYSTEMD_HOMED_IMAGE_PATH="" +#SYSTEMD_HOMED_CIFS_DOMAIN="" +#SYSTEMD_HOMED_CIFS_SERVICE="" + # mkinitcpio HOOKS="base !udev !usr !resume !systemd !btrfs keyboard autodetect modconf block !net !dmraid !mdadm !mdadm_udev !keymap !consolefont !sd-vconsole !encrypt !lvm2 !sd-encrypt !sd-lvm2 fsck filesystems" @@ -89,6 +89,7 @@ function sanitize_variables() { SWAP_SIZE=$(sanitize_variable "$SWAP_SIZE") KERNELS=$(sanitize_variable "$KERNELS") KERNELS_COMPRESSION=$(sanitize_variable "$KERNELS_COMPRESSION") +# SYSTEMD_HOMED_STORAGE=$(sanitize_variable "$SYSTEMD_HOMED_STORAGE") BOOTLOADER=$(sanitize_variable "$BOOTLOADER") DESKTOP_ENVIRONMENT=$(sanitize_variable "$DESKTOP_ENVIRONMENT") DISPLAY_DRIVER=$(sanitize_variable "$DISPLAY_DRIVER") @@ -141,6 +142,18 @@ function check_variables() { check_variables_value "USER_PASSWORD" "$USER_PASSWORD" check_variables_equals "ROOT_PASSWORD" "ROOT_PASSWORD_RETYPE" "$ROOT_PASSWORD" "$ROOT_PASSWORD_RETYPE" check_variables_equals "USER_PASSWORD" "USER_PASSWORD_RETYPE" "$USER_PASSWORD" "$USER_PASSWORD_RETYPE" +# check_variables_boolean "SYSTEMD_HOMED" "$SYSTEMD_HOMED" +# if [ "$SYSTEMD_HOMED" == "true" ]; then +# check_variables_list "SYSTEMD_HOMED_STORAGE" "$SYSTEMD_HOMED_STORAGE" "directory fscrypt luks cifs subvolume" "true" +# +# if [ "$SYSTEMD_HOMED_STORAGE" == "fscrypt" ]; then +# check_variables_list "FILE_SYSTEM_TYPE" "$FILE_SYSTEM_TYPE" "ext4 f2fs" "true" +# fi +# if [ "$SYSTEMD_HOMED_STORAGE" == "cifs" ]; then +# check_variables_value "SYSTEMD_HOMED_CIFS_DOMAIN" "$SYSTEMD_HOMED_CIFS_DOMAIN" +# check_variables_value "SYSTEMD_HOMED_CIFS_SERVICE" "$SYSTEMD_HOMED_CIFS_SERVICE" +# fi +# fi check_variables_value "HOOKS" "$HOOKS" check_variables_list "BOOTLOADER" "$BOOTLOADER" "grub refind systemd" check_variables_list "AUR" "$AUR" "aurman yay" "false" @@ -408,7 +421,7 @@ function partition() { # partition if [ "$FILE_SYSTEM_TYPE" == "f2fs" ]; then - pacman -S f2fs-tools + pacman -Syu --noconfirm f2fs-tools fi if [ "$PARTITION_MODE" == "auto" ]; then @@ -477,7 +490,11 @@ function partition() { PARTITION_OPTIONS="defaults" if [ "$DEVICE_TRIM" == "true" ]; then - PARTITION_OPTIONS="$PARTITION_OPTIONS,noatime" + if [ "$FILE_SYSTEM_TYPE" == "f2fs" ]; then + PARTITION_OPTIONS="$PARTITION_OPTIONS,noatime,nodiscard" + else + PARTITION_OPTIONS="$PARTITION_OPTIONS,noatime" + fi fi # mount @@ -549,7 +566,11 @@ function configuration() { fi if [ "$DEVICE_TRIM" == "true" ]; then - sed -i 's/relatime/noatime/' /mnt/etc/fstab + if [ "$FILE_SYSTEM_TYPE" == "f2fs" ]; then + sed -i 's/relatime/noatime,nodiscard/' /mnt/etc/fstab + else + sed -i 's/relatime/noatime/' /mnt/etc/fstab + fi arch-chroot /mnt systemctl enable fstrim.timer fi @@ -724,20 +745,20 @@ function bootloader() { case "$BOOTLOADER" in "grub" ) - grub + bootloader_grub ;; "refind" ) - refind + bootloader_refind ;; "systemd" ) - systemd + bootloader_systemd ;; esac arch-chroot /mnt systemctl set-default multi-user.target } -function grub() { +function bootloader_grub() { pacman_install "grub dosfstools" arch-chroot /mnt sed -i 's/GRUB_DEFAULT=0/GRUB_DEFAULT=saved/' /etc/default/grub arch-chroot /mnt sed -i 's/#GRUB_SAVEDEFAULT="true"/GRUB_SAVEDEFAULT="true"/' /etc/default/grub @@ -763,7 +784,7 @@ function grub() { fi } -function refind() { +function bootloader_refind() { pacman_install "refind-efi" arch-chroot /mnt refind-install @@ -861,7 +882,7 @@ EOT fi } -function systemd() { +function bootloader_systemd() { arch-chroot /mnt systemd-machine-id-setup arch-chroot /mnt bootctl --path="$ESP_DIRECTORY" install @@ -1027,11 +1048,85 @@ function users() { arch-chroot /mnt sed -i 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers pacman_install "xdg-user-dirs" + +# if [ "$SYSTEMD_HOMED" == "true" ]; then +# cat <<EOT > "/etc/pam.d/nss-auth" +##%PAM-1.0 +# +#auth sufficient pam_unix.so try_first_pass nullok +#auth sufficient pam_systemd_home.so +#auth required pam_deny.so +# +#account sufficient pam_unix.so +#account sufficient pam_systemd_home.so +#account required pam_deny.so +# +#password sufficient pam_unix.so try_first_pass nullok sha512 shadow +#password sufficient pam_systemd_home.so +#password required pam_deny.so +#EOT +# +# cat <<EOT > "/etc/pam.d/system-auth" +##%PAM-1.0 +# +#auth substack nss-auth +#auth optional pam_permit.so +#auth required pam_env.so +# +#account substack nss-auth +#account optional pam_permit.so +#account required pam_time.so +# +#password substack nss-auth +#password optional pam_permit.so +# +#session required pam_limits.so +#session optional pam_systemd_home.so +#session required pam_unix.so +#EOT +# fi } function create_user() { USER_NAME=$1 USER_PASSWORD=$2 + create_user_useradd $USER_NAME $USER_PASSWORD +# if [ "$SYSTEMD_HOMED" == "true" ]; then +# arch-chroot /mnt systemctl enable systemd-homed.service +# create_user_homectl $USER_NAME $USER_PASSWORD +# else +# create_user_useradd $USER_NAME $USER_PASSWORD +# fi +} + +#function create_user_homectl() { +# USER_NAME=$1 +# USER_PASSWORD=$2 +# STORAGE="" +# CIFS_DOMAIN="" +# CIFS_USERNAME="" +# CIFS_SERVICE="" +# TZ=$(echo ${TIMEZONE} | sed "s/\/usr\/share\/zoneinfo\///g") +# L=$(echo ${LOCALE_CONF[0]} | sed "s/LANG=//g") +# +# if [ -n "$SYSTEMD_HOMED_STORAGE" ]; then +# STORAGE="--storage=$SYSTEMD_HOMED_STORAGE" +# fi +# if [ "$SYSTEMD_HOMED_STORAGE" == "cifs" ]; then +# CIFS_DOMAIN="--cifs-domain=$SYSTEMD_HOMED_CIFS_DOMAIN" +# CIFS_USERNAME="--cifs-user-name=$USER_NAME" +# CIFS_SERVICE="--cifs-service=$SYSTEMD_HOMED_CIFS_SERVICE" +# fi +# +# arch-chroot /mnt homectl --password-change-now=yes --timezone=$TZ --language=$L create $USER_NAME $STORAGE $CIFS_DOMAIN $CIFS_USERNAME $CIFS_SERVICE -G wheel,storage,optical +# #arch-chroot /mnt homectl --timezone=$TZ update $USER_NAME +# #arch-chroot /mnt homectl --language=$L update $USER_NAME +# #printf "$USER_PASSWORD\n$USER_PASSWORD" | arch-chroot /mnt homectl passwd $USER_NAME +#} + +function create_user_useradd() { + USER_NAME=$1 + USER_PASSWORD=$2 arch-chroot /mnt useradd -m -G wheel,storage,optical -s /bin/bash $USER_NAME printf "$USER_PASSWORD\n$USER_PASSWORD" | arch-chroot /mnt passwd $USER_NAME } diff --git a/packer/alis-packer-bios-ext4-grub-luks-lvm.json b/packer/alis-packer-bios-ext4-grub-luks-lvm.json index 448f005..a78c682 100644 --- a/packer/alis-packer-bios-ext4-grub-luks-lvm.json +++ b/packer/alis-packer-bios-ext4-grub-luks-lvm.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-bios-ext4-grub.json b/packer/alis-packer-bios-ext4-grub.json index e5bfc88..062183f 100644 --- a/packer/alis-packer-bios-ext4-grub.json +++ b/packer/alis-packer-bios-ext4-grub.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-efi-btrfs-luks-lvm-systemd-aur.json b/packer/alis-packer-efi-btrfs-luks-lvm-systemd-aur.json index 772c0ea..c119f08 100644 --- a/packer/alis-packer-efi-btrfs-luks-lvm-systemd-aur.json +++ b/packer/alis-packer-efi-btrfs-luks-lvm-systemd-aur.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-efi-ext4-grub-gnome.json b/packer/alis-packer-efi-ext4-grub-gnome.json index d46da37..bda282e 100644 --- a/packer/alis-packer-efi-ext4-grub-gnome.json +++ b/packer/alis-packer-efi-ext4-grub-gnome.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-efi-ext4-grub-kde.json b/packer/alis-packer-efi-ext4-grub-kde.json index 4c57632..94b9c36 100644 --- a/packer/alis-packer-efi-ext4-grub-kde.json +++ b/packer/alis-packer-efi-ext4-grub-kde.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-efi-ext4-grub-xfce.json b/packer/alis-packer-efi-ext4-grub-xfce.json index aa2e183..c5a02d6 100644 --- a/packer/alis-packer-efi-ext4-grub-xfce.json +++ b/packer/alis-packer-efi-ext4-grub-xfce.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-efi-ext4-luks-grub.json b/packer/alis-packer-efi-ext4-luks-grub.json index b8bb1dd..d41d3f6 100644 --- a/packer/alis-packer-efi-ext4-luks-grub.json +++ b/packer/alis-packer-efi-ext4-luks-grub.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-efi-ext4-luks-lvm-grub.json b/packer/alis-packer-efi-ext4-luks-lvm-grub.json index 5550d05..c8e7d39 100644 --- a/packer/alis-packer-efi-ext4-luks-lvm-grub.json +++ b/packer/alis-packer-efi-ext4-luks-lvm-grub.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-efi-ext4-luks-lvm-systemd.json b/packer/alis-packer-efi-ext4-luks-lvm-systemd.json index fcf97eb..30d8739 100644 --- a/packer/alis-packer-efi-ext4-luks-lvm-systemd.json +++ b/packer/alis-packer-efi-ext4-luks-lvm-systemd.json @@ -1,6 +1,6 @@ { "variables": { - "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.04.01-x86_64.iso", + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", "disk_size": "16384" }, "builders": [ @@ -20,7 +20,7 @@ "disk_size": "{{user `disk_size`}}", "hard_drive_interface": "sata", "iso_url": "{{user `iso`}}", - "iso_checksum": "bbece70b6e6a3f1d5f90a7d330657ea3c9280355", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", "iso_checksum_type": "sha1", "ssh_username": "vagrant", "ssh_password": "vagrant", diff --git a/packer/alis-packer-efi-f2fs-luks-lvm-systemd.json b/packer/alis-packer-efi-f2fs-luks-lvm-systemd.json new file mode 100644 index 0000000..791db3b --- /dev/null +++ b/packer/alis-packer-efi-f2fs-luks-lvm-systemd.json @@ -0,0 +1,52 @@ +{ + "variables": { + "iso": "https://mirror.rackspace.com/archlinux/iso/latest/archlinux-2020.05.01-x86_64.iso", + "disk_size": "16384" + }, + "builders": [ + { + "name": "archlinux-alis-virtualbox", + "type": "virtualbox-iso", + "guest_os_type": "ArchLinux_64", + "guest_additions_mode": "attach", + "headless": false, + "http_directory": ".", + "vboxmanage": [ + ["modifyvm", "{{.Name}}", "--memory", "2048"], + ["modifyvm", "{{.Name}}", "--vram", "128"], + ["modifyvm", "{{.Name}}", "--cpus", "2"], + ["modifyvm", "{{.Name}}", "--firmware", "efi"] + ], + "disk_size": "{{user `disk_size`}}", + "hard_drive_interface": "sata", + "iso_url": "{{user `iso`}}", + "iso_checksum": "fe15ff1c688c078d035e275a4946075281f5324e", + "iso_checksum_type": "sha1", + "ssh_username": "vagrant", + "ssh_password": "vagrant", + "ssh_wait_timeout": "60m", + "boot_wait": "5s", + "boot_command": [ + "<wait30s>", + "wget http://{{.HTTPIP}}:{{.HTTPPort}}/alis.conf<enter><wait1s>", + "wget http://{{.HTTPIP}}:{{.HTTPPort}}/alis.sh<enter><wait1s>", + "sed -i \"s/FILE_SYSTEM_TYPE=.*/FILE_SYSTEM_TYPE=\\\"f2fs\\\"/\" ./alis.conf<enter><wait1s>", + "sed -i \"s/LVM=.*/LVM=\\\"true\\\"/\" ./alis.conf<enter><wait1s>", + "sed -i \"s/LUKS_PASSWORD=.*/LUKS_PASSWORD=\\\"archlinux\\\"/\" ./alis.conf<enter><wait1s>", + "sed -i \"s/LUKS_PASSWORD_RETYPE=.*/LUKS_PASSWORD_RETYPE=\\\"archlinux\\\"/\" ./alis.conf<enter><wait1s>", + "sed -i \"s/BOOTLOADER=.*/BOOTLOADER=\\\"systemd\\\"/\" ./alis.conf<enter><wait1s>", + "sed -i \"s/DESKTOP_ENVIRONMENT=.*/DESKTOP_ENVIRONMENT=\\\"\\\"/\" ./alis.conf<enter><wait1s>", + "chmod +x ./alis.sh<enter><wait1s>", + "./alis.sh<enter><wait3>y<wait1s><enter>", + "<wait10s><wait10s><wait10s><wait10s><wait10s><wait10s><wait10s><wait60m>" + ], + "shutdown_command": "systemctl poweroff" + } + ], + "post-processors": [ + { + "type": "vagrant", + "output": "archlinux-alis-{{.BuildName}}.box" + } + ] + }
\ No newline at end of file |