summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--airootfs/etc/locale.conf1
-rw-r--r--airootfs/etc/mkinitcpio.conf3
-rw-r--r--airootfs/etc/mkinitcpio.d/linux.preset3
-rw-r--r--airootfs/etc/ssh/sshd_config10
-rw-r--r--airootfs/etc/systemd/network/20-ethernet.network9
l---------airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator1
l---------airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service1
l---------airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service1
l---------airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service1
l---------airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service1
l---------airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service1
l---------airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service1
-rw-r--r--airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf7
-rwxr-xr-xairootfs/root/.loader2
-rwxr-xr-xairootfs/root/bootstrap2
-rw-r--r--bootstrap_packages.x86_642
-rw-r--r--efiboot/loader/entries/01-archiso-x86_64-linux.conf4
-rw-r--r--efiboot/loader/loader.conf5
-rw-r--r--grub/grub.cfg36
-rw-r--r--packages.x86_644
-rw-r--r--pacman.conf5
-rw-r--r--profiledef.sh13
-rw-r--r--syslinux/syslinux-linux.cfg3
-rw-r--r--syslinux/syslinux.cfg4
24 files changed, 80 insertions, 40 deletions
diff --git a/airootfs/etc/locale.conf b/airootfs/etc/locale.conf
new file mode 100644
index 0000000..f9c983c
--- /dev/null
+++ b/airootfs/etc/locale.conf
@@ -0,0 +1 @@
+LANG=C.UTF-8
diff --git a/airootfs/etc/mkinitcpio.conf b/airootfs/etc/mkinitcpio.conf
index 4b7b7fb..34b1a06 100644
--- a/airootfs/etc/mkinitcpio.conf
+++ b/airootfs/etc/mkinitcpio.conf
@@ -1,6 +1,3 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
diff --git a/airootfs/etc/mkinitcpio.d/linux.preset b/airootfs/etc/mkinitcpio.d/linux.preset
index d35f137..9f67184 100644
--- a/airootfs/etc/mkinitcpio.d/linux.preset
+++ b/airootfs/etc/mkinitcpio.d/linux.preset
@@ -1,6 +1,3 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
# mkinitcpio preset file for the 'linux' package on archiso
PRESETS=('archiso')
diff --git a/airootfs/etc/ssh/sshd_config b/airootfs/etc/ssh/sshd_config
index 8ef1758..93f7d63 100644
--- a/airootfs/etc/ssh/sshd_config
+++ b/airootfs/etc/ssh/sshd_config
@@ -1,4 +1,4 @@
-# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
+# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
@@ -58,7 +58,7 @@ AuthorizedKeysFile .ssh/authorized_keys
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
-ChallengeResponseAuthentication no
+#KbdInteractiveAuthentication yes
# Kerberos options
#KerberosAuthentication no
@@ -72,13 +72,13 @@ ChallengeResponseAuthentication no
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
-# be allowed through the ChallengeResponseAuthentication and
+# be allowed through the KbdInteractiveAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
-# PAM authentication via ChallengeResponseAuthentication may bypass
+# PAM authentication via KbdInteractiveAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
-# and ChallengeResponseAuthentication to 'no'.
+# and KbdInteractiveAuthentication to 'no'.
UsePAM yes
#AllowAgentForwarding yes
diff --git a/airootfs/etc/systemd/network/20-ethernet.network b/airootfs/etc/systemd/network/20-ethernet.network
index efa309c..4b6a2ab 100644
--- a/airootfs/etc/systemd/network/20-ethernet.network
+++ b/airootfs/etc/systemd/network/20-ethernet.network
@@ -1,13 +1,10 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
[Match]
+# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*).
+# See https://bugs.archlinux.org/task/70892
+# Instead match by globbing the network interface name.
Name=en*
Name=eth*
[Network]
DHCP=yes
IPv6PrivacyExtensions=yes
-
-[DHCP]
-RouteMetric=512
diff --git a/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator
new file mode 120000
index 0000000..dc1dc0c
--- /dev/null
+++ b/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator
@@ -0,0 +1 @@
+/dev/null \ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service b/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service
new file mode 120000
index 0000000..20ac7b2
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/hv_fcopy_daemon.service \ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service b/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service
new file mode 120000
index 0000000..a7eac4a
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/hv_kvp_daemon.service \ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service b/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service
new file mode 120000
index 0000000..eae19ef
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/hv_vss_daemon.service \ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service b/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service
new file mode 120000
index 0000000..cb2d560
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/vboxservice.service \ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service b/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service
new file mode 120000
index 0000000..e0a11a7
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/vmtoolsd.service \ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service b/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service
new file mode 120000
index 0000000..173f306
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/vmware-vmblock-fuse.service \ No newline at end of file
diff --git a/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
index a4d7442..c9f9bce 100644
--- a/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
+++ b/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
@@ -1,5 +1,6 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
+# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist,
+# network-online.target gets needlessly delayed.
+# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online
[Service]
+ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
diff --git a/airootfs/root/.loader b/airootfs/root/.loader
index 2daeab8..763bae2 100755
--- a/airootfs/root/.loader
+++ b/airootfs/root/.loader
@@ -1,5 +1,5 @@
#!/bin/bash
-set -e
+set -eux
dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress
chmod 0600 /swapfile
diff --git a/airootfs/root/bootstrap b/airootfs/root/bootstrap
index dcd3d3f..5bfcf11 100755
--- a/airootfs/root/bootstrap
+++ b/airootfs/root/bootstrap
@@ -1,5 +1,5 @@
#!/bin/bash
-set -e
+set -eux
if ! timeout 1 curl -Is tombarrett.xyz | grep "200 OK" > /dev/null; then
echo "Please first connect to the internet."
diff --git a/bootstrap_packages.x86_64 b/bootstrap_packages.x86_64
new file mode 100644
index 0000000..64966d0
--- /dev/null
+++ b/bootstrap_packages.x86_64
@@ -0,0 +1,2 @@
+arch-install-scripts
+base
diff --git a/efiboot/loader/entries/01-archiso-x86_64-linux.conf b/efiboot/loader/entries/01-archiso-x86_64-linux.conf
new file mode 100644
index 0000000..11624b6
--- /dev/null
+++ b/efiboot/loader/entries/01-archiso-x86_64-linux.conf
@@ -0,0 +1,4 @@
+title Arch Linux (x86_64, UEFI)
+linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
+initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
+options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
diff --git a/efiboot/loader/loader.conf b/efiboot/loader/loader.conf
index 1ea5ce5..17110fa 100644
--- a/efiboot/loader/loader.conf
+++ b/efiboot/loader/loader.conf
@@ -1,5 +1,2 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
timeout 3
-default archiso-x86_64-linux.conf
+default 01-archiso-x86_64-linux.conf
diff --git a/grub/grub.cfg b/grub/grub.cfg
new file mode 100644
index 0000000..d2aa4ab
--- /dev/null
+++ b/grub/grub.cfg
@@ -0,0 +1,36 @@
+# Load partition table and file system modules
+insmod part_gpt
+insmod part_msdos
+insmod fat
+insmod iso9660
+
+# Use graphics-mode output
+insmod all_video
+insmod font
+if loadfont "${prefix}/fonts/unicode.pf2" ; then
+ insmod gfxterm
+ set gfxmode="auto"
+ terminal_input console
+ terminal_output gfxterm
+fi
+
+# Enable serial console
+if serial --unit=0 --speed=115200; then
+ terminal_input --append serial
+ terminal_output --append serial
+fi
+
+# Set default menu entry
+default=archlinux
+timeout=15
+timeout_style=menu
+
+
+# Menu entries
+
+menuentry "Arch Linux (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
+ set gfxpayload=keep
+ search --no-floppy --set=root --label %ARCHISO_LABEL%
+ linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
+ initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
+}
diff --git a/packages.x86_64 b/packages.x86_64
index 1dad073..5939168 100644
--- a/packages.x86_64
+++ b/packages.x86_64
@@ -6,6 +6,7 @@ clevis
cloud-init
dosfstools
htop
+hyperv
linux
linux-firmware
lvm2
@@ -16,8 +17,10 @@ neovim
networkmanager
nmap
openssh
+open-vm-tools
parted
pv
+qemu-guest-agent
ranger
rsync
smartmontools
@@ -25,6 +28,7 @@ syslinux
tmux
tpm2-tools
vim
+virtualbox-guest-utils-nox
wget
zsh
zsh-autosuggestions
diff --git a/pacman.conf b/pacman.conf
index 9d895e9..5ee6c1e 100644
--- a/pacman.conf
+++ b/pacman.conf
@@ -2,8 +2,6 @@
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
#
# GENERAL OPTIONS
@@ -33,10 +31,11 @@ Architecture = auto
# Misc options
#UseSyslog
#Color
-#TotalDownload
+#NoProgressBar
# We cannot check disk space from within a chroot environment
#CheckSpace
#VerbosePkgLists
+ParallelDownloads = 5
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
diff --git a/profiledef.sh b/profiledef.sh
index fd65beb..b1204d7 100644
--- a/profiledef.sh
+++ b/profiledef.sh
@@ -2,16 +2,19 @@
# shellcheck disable=SC2034
iso_name="toms_arch"
-iso_label="_$(date +%Y%m)"
-iso_publisher="Tom Barrett <https://tombarrett.xyz>"
+iso_label="TA_$(date +%Y%m)"
+iso_publisher="tom barrett <https://tombarrett.xyz>"
iso_application="toms archlinux installer"
iso_version="$(date +%Y.%m.%d)"
install_dir="arch"
-bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
+buildmodes=('iso')
+bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
+ 'uefi-ia32.grub.esp' 'uefi-x64.grub.esp'
+ 'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito')
arch="x86_64"
pacman_conf="pacman.conf"
-airootfs_image_type="squashfs"
-airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M')
+airootfs_image_type="erofs"
+airootfs_image_tool_options=('-zlzma,9' -E ztailpacking)
file_permissions=(
["/etc/shadow"]="0:0:400"
["/root/bootstrap"]="0:0:700"
diff --git a/syslinux/syslinux-linux.cfg b/syslinux/syslinux-linux.cfg
index 867d815..0311f29 100644
--- a/syslinux/syslinux-linux.cfg
+++ b/syslinux/syslinux-linux.cfg
@@ -1,6 +1,3 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
LABEL arch
MENU LABEL Arch Linux (x86_64, BIOS)
LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux
diff --git a/syslinux/syslinux.cfg b/syslinux/syslinux.cfg
index 88a36ea..561ac7c 100644
--- a/syslinux/syslinux.cfg
+++ b/syslinux/syslinux.cfg
@@ -1,6 +1,4 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
+SERIAL 0 115200
UI menu.c32
MENU TITLE Arch Linux
MENU CLEAR