aboutsummaryrefslogtreecommitdiff
path: root/configs/smalldeploy
diff options
context:
space:
mode:
authorThorsten Töpper <atsutane@freethoughts.de>2025-09-13 01:46:16 +0200
committerThorsten Töpper <atsutane@freethoughts.de>2025-09-13 01:46:16 +0200
commit6dc3190f0ac070b10ddd18a5137f92a4f12b757d (patch)
tree1f78a81dba9a55ac278be5f5fe5ed44997936a85 /configs/smalldeploy
parenta16a81ae8d08d5dc0ec576e3a427b11cbaa3a8bb (diff)
downloadarchiso-6dc3190f0ac070b10ddd18a5137f92a4f12b757d.tar.gz
archiso-6dc3190f0ac070b10ddd18a5137f92a4f12b757d.tar.bz2
copy baseline to smalldeploy
Diffstat (limited to 'configs/smalldeploy')
-rw-r--r--configs/smalldeploy/airootfs/etc/locale.conf1
l---------configs/smalldeploy/airootfs/etc/localtime1
-rw-r--r--configs/smalldeploy/airootfs/etc/mkinitcpio.conf.d/archiso.conf1
-rw-r--r--configs/smalldeploy/airootfs/etc/mkinitcpio.d/linux.preset8
-rw-r--r--configs/smalldeploy/airootfs/etc/shadow1
-rw-r--r--configs/smalldeploy/airootfs/etc/ssh/sshd_config.d/10-archiso.conf3
-rw-r--r--configs/smalldeploy/airootfs/etc/systemd/network/20-ethernet.network13
-rw-r--r--configs/smalldeploy/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf2
-rw-r--r--configs/smalldeploy/airootfs/etc/systemd/resolved.conf.d/archiso.conf4
l---------configs/smalldeploy/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator1
l---------configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service1
l---------configs/smalldeploy/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket1
-rw-r--r--configs/smalldeploy/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf6
-rw-r--r--configs/smalldeploy/bootstrap_packages.x86_642
-rw-r--r--configs/smalldeploy/efiboot/loader/entries/01-archiso-x86_64-linux.conf4
-rw-r--r--configs/smalldeploy/efiboot/loader/loader.conf2
-rw-r--r--configs/smalldeploy/grub/grub.cfg96
-rw-r--r--configs/smalldeploy/grub/loopback.cfg73
-rw-r--r--configs/smalldeploy/packages.x86_6412
-rw-r--r--configs/smalldeploy/pacman.conf100
-rw-r--r--configs/smalldeploy/profiledef.sh21
-rw-r--r--configs/smalldeploy/syslinux/syslinux-linux.cfg5
-rw-r--r--configs/smalldeploy/syslinux/syslinux.cfg9
37 files changed, 381 insertions, 0 deletions
diff --git a/configs/smalldeploy/airootfs/etc/locale.conf b/configs/smalldeploy/airootfs/etc/locale.conf
new file mode 100644
index 0000000..f9c983c
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/locale.conf
@@ -0,0 +1 @@
+LANG=C.UTF-8
diff --git a/configs/smalldeploy/airootfs/etc/localtime b/configs/smalldeploy/airootfs/etc/localtime
new file mode 120000
index 0000000..0e35b57
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/localtime
@@ -0,0 +1 @@
+/usr/share/zoneinfo/UTC \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/mkinitcpio.conf.d/archiso.conf b/configs/smalldeploy/airootfs/etc/mkinitcpio.conf.d/archiso.conf
new file mode 100644
index 0000000..fd9cd48
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/mkinitcpio.conf.d/archiso.conf
@@ -0,0 +1 @@
+HOOKS=(base udev modconf archiso block filesystems)
diff --git a/configs/smalldeploy/airootfs/etc/mkinitcpio.d/linux.preset b/configs/smalldeploy/airootfs/etc/mkinitcpio.d/linux.preset
new file mode 100644
index 0000000..8e85205
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/mkinitcpio.d/linux.preset
@@ -0,0 +1,8 @@
+# mkinitcpio preset file for the 'linux' package on archiso
+
+PRESETS=('archiso')
+
+ALL_kver='/boot/vmlinuz-linux'
+archiso_config='/etc/mkinitcpio.conf.d/archiso.conf'
+
+archiso_image="/boot/initramfs-linux.img"
diff --git a/configs/smalldeploy/airootfs/etc/shadow b/configs/smalldeploy/airootfs/etc/shadow
new file mode 100644
index 0000000..7edfd69
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/shadow
@@ -0,0 +1 @@
+root::14871::::::
diff --git a/configs/smalldeploy/airootfs/etc/ssh/sshd_config.d/10-archiso.conf b/configs/smalldeploy/airootfs/etc/ssh/sshd_config.d/10-archiso.conf
new file mode 100644
index 0000000..6ea7b41
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/ssh/sshd_config.d/10-archiso.conf
@@ -0,0 +1,3 @@
+# Allow root login using password authentication
+PasswordAuthentication yes
+PermitRootLogin yes
diff --git a/configs/smalldeploy/airootfs/etc/systemd/network/20-ethernet.network b/configs/smalldeploy/airootfs/etc/systemd/network/20-ethernet.network
new file mode 100644
index 0000000..0e4287b
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/network/20-ethernet.network
@@ -0,0 +1,13 @@
+[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*
+
+[Link]
+RequiredForOnline=routable
+
+[Network]
+DHCP=yes
+MulticastDNS=yes
diff --git a/configs/smalldeploy/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf b/configs/smalldeploy/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf
new file mode 100644
index 0000000..0e9ceb4
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf
@@ -0,0 +1,2 @@
+[Network]
+IPv6PrivacyExtensions=yes
diff --git a/configs/smalldeploy/airootfs/etc/systemd/resolved.conf.d/archiso.conf b/configs/smalldeploy/airootfs/etc/systemd/resolved.conf.d/archiso.conf
new file mode 100644
index 0000000..636f3bd
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/resolved.conf.d/archiso.conf
@@ -0,0 +1,4 @@
+# Default systemd-resolved configuration for archiso
+
+[Resolve]
+MulticastDNS=yes
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/configs/smalldeploy/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator
new file mode 120000
index 0000000..dc1dc0c
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator
@@ -0,0 +1 @@
+/dev/null \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service
new file mode 120000
index 0000000..ebc50f0
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/cloud-config.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service
new file mode 120000
index 0000000..80fa3c8
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/cloud-final.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service
new file mode 120000
index 0000000..dd8e9f1
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/cloud-init-local.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service
new file mode 120000
index 0000000..875ff73
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/cloud-init-main.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service
new file mode 120000
index 0000000..ae77734
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/cloud-init-network.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service
new file mode 120000
index 0000000..20ac7b2
--- /dev/null
+++ b/configs/smalldeploy/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/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service
new file mode 120000
index 0000000..a7eac4a
--- /dev/null
+++ b/configs/smalldeploy/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/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service
new file mode 120000
index 0000000..eae19ef
--- /dev/null
+++ b/configs/smalldeploy/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/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service
new file mode 120000
index 0000000..d21ebd9
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/sshd.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service
new file mode 120000
index 0000000..4c158e6
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service
new file mode 120000
index 0000000..4f6ae34
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service
new file mode 120000
index 0000000..cb2d560
--- /dev/null
+++ b/configs/smalldeploy/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/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service
new file mode 120000
index 0000000..e0a11a7
--- /dev/null
+++ b/configs/smalldeploy/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/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service b/configs/smalldeploy/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service
new file mode 120000
index 0000000..173f306
--- /dev/null
+++ b/configs/smalldeploy/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/configs/smalldeploy/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service b/configs/smalldeploy/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service
new file mode 120000
index 0000000..7d6ad92
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/systemd-networkd-wait-online.service \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket b/configs/smalldeploy/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket
new file mode 120000
index 0000000..51942c8
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket
@@ -0,0 +1 @@
+/usr/lib/systemd/system/systemd-networkd.socket \ No newline at end of file
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/configs/smalldeploy/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
new file mode 100644
index 0000000..c9f9bce
--- /dev/null
+++ b/configs/smalldeploy/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
@@ -0,0 +1,6 @@
+# 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/configs/smalldeploy/bootstrap_packages.x86_64 b/configs/smalldeploy/bootstrap_packages.x86_64
new file mode 100644
index 0000000..64966d0
--- /dev/null
+++ b/configs/smalldeploy/bootstrap_packages.x86_64
@@ -0,0 +1,2 @@
+arch-install-scripts
+base
diff --git a/configs/smalldeploy/efiboot/loader/entries/01-archiso-x86_64-linux.conf b/configs/smalldeploy/efiboot/loader/entries/01-archiso-x86_64-linux.conf
new file mode 100644
index 0000000..3193768
--- /dev/null
+++ b/configs/smalldeploy/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% archisosearchuuid=%ARCHISO_UUID%
diff --git a/configs/smalldeploy/efiboot/loader/loader.conf b/configs/smalldeploy/efiboot/loader/loader.conf
new file mode 100644
index 0000000..17110fa
--- /dev/null
+++ b/configs/smalldeploy/efiboot/loader/loader.conf
@@ -0,0 +1,2 @@
+timeout 3
+default 01-archiso-x86_64-linux.conf
diff --git a/configs/smalldeploy/grub/grub.cfg b/configs/smalldeploy/grub/grub.cfg
new file mode 100644
index 0000000..38164bd
--- /dev/null
+++ b/configs/smalldeploy/grub/grub.cfg
@@ -0,0 +1,96 @@
+# Load partition table and file system modules
+insmod part_gpt
+insmod part_msdos
+insmod fat
+insmod iso9660
+insmod ntfs
+insmod ntfscomp
+insmod exfat
+insmod udf
+
+# Use graphics-mode output
+if loadfont "${prefix}/fonts/unicode.pf2" ; then
+ insmod all_video
+ set gfxmode="auto"
+ terminal_input console
+ terminal_output console
+fi
+
+# Enable serial console
+insmod serial
+insmod usbserial_common
+insmod usbserial_ftdi
+insmod usbserial_pl2303
+insmod usbserial_usbdebug
+if serial --unit=0 --speed=115200; then
+ terminal_input --append serial
+ terminal_output --append serial
+fi
+
+# Get a human readable platform identifier
+if [ "${grub_platform}" == 'efi' ]; then
+ archiso_platform='UEFI'
+ if [ "${grub_cpu}" == 'x86_64' ]; then
+ archiso_platform="x64 ${archiso_platform}"
+ elif [ "${grub_cpu}" == 'i386' ]; then
+ archiso_platform="IA32 ${archiso_platform}"
+ else
+ archiso_platform="${grub_cpu} ${archiso_platform}"
+ fi
+elif [ "${grub_platform}" == 'pc' ]; then
+ archiso_platform='BIOS'
+else
+ archiso_platform="${grub_cpu} ${grub_platform}"
+fi
+
+# Set default menu entry
+default=archlinux
+timeout=15
+timeout_style=menu
+
+
+# Menu entries
+
+menuentry "Arch Linux (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
+ set gfxpayload=keep
+ linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID%
+ initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
+}
+
+if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest.efi
+ }
+fi
+if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest
+ }
+fi
+if [ "${grub_platform}" == 'efi' ]; then
+ if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then
+ menuentry 'UEFI Shell' {
+ chainloader /shellx64.efi
+ }
+ elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then
+ menuentry 'UEFI Shell' {
+ chainloader /shellia32.efi
+ }
+ fi
+
+ menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
+ fwsetup
+ }
+fi
+
+menuentry 'System shutdown' --class shutdown --class poweroff {
+ echo 'System shutting down...'
+ halt
+}
+
+menuentry 'System restart' --class reboot --class restart {
+ echo 'System rebooting...'
+ reboot
+}
diff --git a/configs/smalldeploy/grub/loopback.cfg b/configs/smalldeploy/grub/loopback.cfg
new file mode 100644
index 0000000..dc38fdf
--- /dev/null
+++ b/configs/smalldeploy/grub/loopback.cfg
@@ -0,0 +1,73 @@
+# https://www.supergrubdisk.org/wiki/Loopback.cfg
+
+# Search for the ISO volume
+search --no-floppy --set=archiso_img_dev --file "${iso_path}"
+probe --set archiso_img_dev_uuid --fs-uuid "${archiso_img_dev}"
+
+# Get a human readable platform identifier
+if [ "${grub_platform}" == 'efi' ]; then
+ archiso_platform='UEFI'
+ if [ "${grub_cpu}" == 'x86_64' ]; then
+ archiso_platform="x64 ${archiso_platform}"
+ elif [ "${grub_cpu}" == 'i386' ]; then
+ archiso_platform="IA32 ${archiso_platform}"
+ else
+ archiso_platform="${grub_cpu} ${archiso_platform}"
+ fi
+elif [ "${grub_platform}" == 'pc' ]; then
+ archiso_platform='BIOS'
+else
+ archiso_platform="${grub_cpu} ${grub_platform}"
+fi
+
+# Set default menu entry
+default=archlinux
+timeout=15
+timeout_style=menu
+
+
+# Menu entries
+
+menuentry "Arch Linux (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
+ set gfxpayload=keep
+ linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}"
+ initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
+}
+
+if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest.efi
+ }
+fi
+if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest
+ }
+fi
+if [ "${grub_platform}" == 'efi' ]; then
+ if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then
+ menuentry 'UEFI Shell' {
+ chainloader /shellx64.efi
+ }
+ elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then
+ menuentry 'UEFI Shell' {
+ chainloader /shellia32.efi
+ }
+ fi
+
+ menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
+ fwsetup
+ }
+fi
+
+menuentry 'System shutdown' --class shutdown --class poweroff {
+ echo 'System shutting down...'
+ halt
+}
+
+menuentry 'System restart' --class reboot --class restart {
+ echo 'System rebooting...'
+ reboot
+}
diff --git a/configs/smalldeploy/packages.x86_64 b/configs/smalldeploy/packages.x86_64
new file mode 100644
index 0000000..cbb93b0
--- /dev/null
+++ b/configs/smalldeploy/packages.x86_64
@@ -0,0 +1,12 @@
+base
+cloud-init
+hyperv
+linux
+mkinitcpio
+mkinitcpio-archiso
+open-vm-tools
+openssh
+pv
+qemu-guest-agent
+syslinux
+virtualbox-guest-utils-nox
diff --git a/configs/smalldeploy/pacman.conf b/configs/smalldeploy/pacman.conf
new file mode 100644
index 0000000..e7e6497
--- /dev/null
+++ b/configs/smalldeploy/pacman.conf
@@ -0,0 +1,100 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+#HookDir = /etc/pacman.d/hooks/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#NoProgressBar
+# We cannot check disk space from within a chroot environment
+#CheckSpace
+#VerbosePkgLists
+ParallelDownloads = 5
+#DownloadUser = alpm
+#DisableSandbox
+
+# 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.
+SigLevel = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all official Arch Linux
+# packagers with `pacman-key --populate archlinux`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+#[core-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+#[extra-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+# If you want to run 32 bit applications on your x86_64 system,
+# enable the multilib repositories as required here.
+
+#[multilib-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[multilib]
+#Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
diff --git a/configs/smalldeploy/profiledef.sh b/configs/smalldeploy/profiledef.sh
new file mode 100644
index 0000000..d6fdbfb
--- /dev/null
+++ b/configs/smalldeploy/profiledef.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+# shellcheck disable=SC2034
+
+iso_name="archlinux-baseline"
+iso_label="ARCH_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)"
+iso_publisher="Arch Linux <https://archlinux.org>"
+iso_application="Arch Linux baseline"
+iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)"
+install_dir="arch"
+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="erofs"
+airootfs_image_tool_options=('-zlzma,109' -E 'ztailpacking')
+bootstrap_tarball_compression=(zstd -c -T0 --long -19)
+file_permissions=(
+ ["/etc/shadow"]="0:0:400"
+)
diff --git a/configs/smalldeploy/syslinux/syslinux-linux.cfg b/configs/smalldeploy/syslinux/syslinux-linux.cfg
new file mode 100644
index 0000000..25b9d1b
--- /dev/null
+++ b/configs/smalldeploy/syslinux/syslinux-linux.cfg
@@ -0,0 +1,5 @@
+LABEL arch
+MENU LABEL Arch Linux (x86_64, BIOS)
+LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
+APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID%
diff --git a/configs/smalldeploy/syslinux/syslinux.cfg b/configs/smalldeploy/syslinux/syslinux.cfg
new file mode 100644
index 0000000..561ac7c
--- /dev/null
+++ b/configs/smalldeploy/syslinux/syslinux.cfg
@@ -0,0 +1,9 @@
+SERIAL 0 115200
+UI menu.c32
+MENU TITLE Arch Linux
+MENU CLEAR
+
+DEFAULT arch
+TIMEOUT 30
+
+INCLUDE syslinux-linux.cfg