aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild-arch-gce15
-rw-r--r--sys/etc/mkinitcpio.conf67
-rw-r--r--sys/etc/mkinitcpio.d/linux.preset10
3 files changed, 82 insertions, 10 deletions
diff --git a/build-arch-gce b/build-arch-gce
index 1432439..ececc62 100755
--- a/build-arch-gce
+++ b/build-arch-gce
@@ -117,6 +117,10 @@ cp ./sys/etc/ssh/sshd_config $mount_dir/etc/ssh/
echo '-- Creating pacman-init service.'
cp ./sys/etc/systemd/system/pacman-init.service $mount_dir/etc/systemd/system/
+echo '-- Configuring initcpio.'
+cp ./sys/etc/mkinitcpio.conf $mount_dir/etc/
+cp ./sys/etc/mkinitcpio.d/linux.preset $mount_dir/etc/mkinitcpio.d/
+
arch-chroot -- "$mount_dir" /bin/bash -s <<-'EOS'
set -eEuo pipefail
trap 'echo "Error: \`$BASH_COMMAND\` exited with status $?"' ERR
@@ -156,16 +160,7 @@ arch-chroot -- "$mount_dir" /bin/bash -s <<-'EOS'
echo '-- Enabling other services.'
systemctl --quiet enable dhclient@eth0.service
- echo '-- Configuring initcpio.'
- gawk -i assert -i inplace '
- /^MODULES=/ { $0 = "MODULES=(virtio_pci virtio_scsi sd_mod ext4)"; ++f1 }
- /^BINARIES=/ { $0 = "BINARIES=(fsck fsck.ext4)"; ++f2 }
- /^HOOKS=/ { $0 = "HOOKS=(systemd modconf)"; ++f3 }
- { print } END { assert(f1 * f2 * f3 == 1, "f == 1") }' /etc/mkinitcpio.conf
- gawk -i assert -i inplace '
- /^PRESETS=/ { $0 = "PRESETS=(default)"; ++f }
- /#?fallback_/ { next }
- { print } END { assert(f == 1, "f == 1") }' /etc/mkinitcpio.d/linux.preset
+ echo '-- Running mkinitcpio.'
rm /boot/initramfs-linux-fallback.img
mkinitcpio --nocolor --preset linux
diff --git a/sys/etc/mkinitcpio.conf b/sys/etc/mkinitcpio.conf
new file mode 100644
index 0000000..de97b63
--- /dev/null
+++ b/sys/etc/mkinitcpio.conf
@@ -0,0 +1,67 @@
+# vim:set ft=sh
+# MODULES
+# The following modules are loaded before any boot hooks are
+# run. Advanced users may wish to specify all system modules
+# in this array. For instance:
+# MODULES=(piix ide_disk reiserfs)
+MODULES=(virtio_pci virtio_scsi sd_mod ext4)
+
+# BINARIES
+# This setting includes any additional binaries a given user may
+# wish into the CPIO image. This is run last, so it may be used to
+# override the actual binaries included by a given hook
+# BINARIES are dependency parsed, so you may safely ignore libraries
+BINARIES=(fsck fsck.ext4)
+
+# FILES
+# This setting is similar to BINARIES above, however, files are added
+# as-is and are not parsed in any way. This is useful for config files.
+FILES=()
+
+# HOOKS
+# This is the most important setting in this file. The HOOKS control the
+# modules and scripts added to the image, and what happens at boot time.
+# Order is important, and it is recommended that you do not change the
+# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
+# help on a given hook.
+# 'base' is _required_ unless you know precisely what you are doing.
+# 'udev' is _required_ in order to automatically load modules
+# 'filesystems' is _required_ unless you specify your fs modules in MODULES
+# Examples:
+## This setup specifies all modules in the MODULES setting above.
+## No raid, lvm2, or encrypted root is needed.
+# HOOKS=(base)
+#
+## This setup will autodetect all modules for your system and should
+## work as a sane default
+# HOOKS=(base udev autodetect block filesystems)
+#
+## This setup will generate a 'full' image which supports most systems.
+## No autodetection is done.
+# HOOKS=(base udev block filesystems)
+#
+## This setup assembles a pata mdadm array with an encrypted root FS.
+## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
+# HOOKS=(base udev block mdadm encrypt filesystems)
+#
+## This setup loads an lvm2 volume group on a usb device.
+# HOOKS=(base udev block lvm2 filesystems)
+#
+## NOTE: If you have /usr on a separate partition, you MUST include the
+# usr, fsck and shutdown hooks.
+HOOKS=(systemd modconf)
+
+# COMPRESSION
+# Use this to compress the initramfs image. By default, zstd compression
+# is used. Use 'cat' to create an uncompressed image.
+#COMPRESSION="zstd"
+#COMPRESSION="gzip"
+#COMPRESSION="bzip2"
+#COMPRESSION="lzma"
+#COMPRESSION="xz"
+#COMPRESSION="lzop"
+#COMPRESSION="lz4"
+
+# COMPRESSION_OPTIONS
+# Additional options for the compressor
+#COMPRESSION_OPTIONS=()
diff --git a/sys/etc/mkinitcpio.d/linux.preset b/sys/etc/mkinitcpio.d/linux.preset
new file mode 100644
index 0000000..6fcee70
--- /dev/null
+++ b/sys/etc/mkinitcpio.d/linux.preset
@@ -0,0 +1,10 @@
+# mkinitcpio preset file for the 'linux' package
+
+ALL_config="/etc/mkinitcpio.conf"
+ALL_kver="/boot/vmlinuz-linux"
+
+PRESETS=('default')
+
+#default_config="/etc/mkinitcpio.conf"
+default_image="/boot/initramfs-linux.img"
+#default_options=""