diff --git a/airootfs/etc/mkinitcpio.conf b/airootfs/etc/mkinitcpio.conf new file mode 100644 index 0000000..75203ef --- /dev/null +++ b/airootfs/etc/mkinitcpio.conf @@ -0,0 +1,3 @@ +# Standard hooks for a bootable Live ISO and installed system +HOOKS=(base udev modconf kms keyboard keymap consolefont block filesystems fsck) +COMPRESSION="zstd" diff --git a/airootfs/usr/share/calamares/modules/mount.conf b/airootfs/usr/share/calamares/modules/mount.conf index da95395..97888f2 100644 --- a/airootfs/usr/share/calamares/modules/mount.conf +++ b/airootfs/usr/share/calamares/modules/mount.conf @@ -1,23 +1,6 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 -# -# Mount filesystems in the target (generally, before treating the -# target as a usable chroot / "live" system). Filesystems are -# automatically mounted from the partitioning module. Filesystems -# listed here are **extra**. The filesystems listed in *extraMounts* -# are mounted in all target systems. --- -# Extra filesystems to mount. The key's value is a list of entries; each -# entry has five keys: -# - device The device node to mount -# - fs (optional) The filesystem type to use -# - mountPoint Where to mount the filesystem -# - options (optional) An array of options to pass to mount -# - efi (optional) A boolean that when true is only mounted for UEFI installs -# -# The device is not mounted if the mountPoint is unset or if the fs is -# set to unformatted. -# extraMounts: - device: proc fs: proc @@ -39,87 +22,17 @@ extraMounts: mountPoint: /sys/firmware/efi/efivars efi: true -# Btrfs subvolumes to create if root filesystem is on btrfs volume. -# If *mountpoint* is mounted already to another partition, it is ignored. -# Separate subvolume for swapfile is handled separately and automatically. -# -# It is possible to prevent subvolume creation -- this is likely only relevant -# for the root (/) subvolume -- by giving an empty string as a subvolume -# name. In this case no subvolume will be created. -# -btrfsSubvolumes: - - mountPoint: / - subvolume: /@ - # As an alternative: - # - # subvolume: "" - - mountPoint: /home - subvolume: /@home - - mountPoint: /var/cache - subvolume: /@cache - - mountPoint: /var/log - subvolume: /@log +# Btrfs subvolumes removed to support flat ext4 installation +btrfsSubvolumes: [] -# The name of the btrfs subvolume holding the swapfile. This only used when -# a swapfile is selected and the root filesystem is btrfs -# -btrfsSwapSubvol: /@swap - -# The mount options used to mount each filesystem. -# -# filesystem contains the name of the filesystem or on of three special -# values, "default", efi" and "btrfs_swap". The logic is applied in this manner: -# - If the partition is the EFI partition, the "efi" entry will be used -# - If the fs is btrfs and the subvolume is for the swapfile, -# the "btrfs_swap" entry is used -# - If the filesystem is an exact match for filesystem, that entry is used -# - If no match is found in the above, the default entry is used -# - If there is no match and no default entry, "defaults" is used -# - If the mountOptions key is not present, "defaults" is used -# -# Each filesystem entry contains 3 keys, all of which are optional -# options - An array of mount options that is used on all disk types -# ssdOptions - An array of mount options combined with options for ssds -# hddOptions - An array of mount options combined with options for hdds -# If combining these options results in an empty array, "defaults" is used -# -# Example 1 -# In this example, there are specific options for ext4 and btrfs filesystems, -# the EFI partition and the subvolume holding the btrfs swapfile. All other -# filesystems use the default entry. For the btrfs filesystem, there are -# additional options specific to hdds and ssds -# -# mountOptions: -# - filesystem: default -# options: [ defaults ] -# - filesystem: efi -# options: [ defaults, umask=0077 ] -# - filesystem: ext4 -# options: [ defaults ] -# - filesystem: btrfs -# options: [ defaults, compress=zstd:1 ] -# ssdOptions: [ discard=async ] -# hddOptions: [ autodefrag ] -# - filesystem: btrfs_swap -# options: [ defaults, noatime ] -# -# Example 2 -# In this example there is a single default used by all filesystems -# -# mountOptions: -# - filesystem: default -# options: [ defaults ] -# mountOptions: - filesystem: default options: [ defaults ] - filesystem: efi options: [ defaults, umask=0077 ] + - filesystem: ext4 + options: [ defaults, relatime ] - filesystem: btrfs options: [ defaults, compress=zstd:1 ] - filesystem: btrfs_swap options: [ defaults, noatime ] - - - - diff --git a/airootfs/usr/share/calamares/modules/unpackfs.conf b/airootfs/usr/share/calamares/modules/unpackfs.conf index 6282769..c09b520 100644 --- a/airootfs/usr/share/calamares/modules/unpackfs.conf +++ b/airootfs/usr/share/calamares/modules/unpackfs.conf @@ -1,123 +1,10 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 -# -# Unsquash / unpack a filesystem. Multiple sources are supported, and -# they may be squashed or plain filesystems. -# -# Configuration: -# -# from globalstorage: rootMountPoint -# from job.configuration: the path to where to mount the source image(s) -# for copying an ordered list of unpack mappings for image file <-> -# target dir relative to rootMountPoint. - --- -# Each list item is unpacked, in order, to the target system. -# -# Each list item has the following **mandatory** attributes: -# - *source* path relative to the live / intstalling system to the image -# - *sourcefs* the type of the source files; valid entries are -# - `ext4` (copies the filesystem contents) -# - `squashfs` (unsquashes) -# - `file` (copies a file or directory) -# - (may be others if mount supports it) -# - *destination* path relative to rootMountPoint (so in the target -# system) where this filesystem is unpacked. It may be an -# empty string, which effectively is / (the root) of the target -# system. -# -# Each list item **optionally** can include the following attributes: -# - *exclude* is a list of values that is expanded into --exclude -# arguments for rsync (each entry in exclude gets its own --exclude). -# - *excludeFile* is a single file that is passed to rsync as an -# --exclude-file argument. This should be a full pathname -# inside the **host** filesystem. -# - *weight* is useful when the entries take wildly different -# times to unpack (e.g. with a squashfs, and one single file) -# and the total weight of this module should be distributed -# differently between the entries. (This is only relevant when -# there is more than one entry; by default all the entries -# have the same weight, 1) -# -# EXAMPLES -# -# Usually you list a filesystem image to unpack; you can use -# squashfs or an ext4 image. An empty destination is equivalent to "/", -# the root of the target system. The destination directory must exist -# in the target system. -# -# - source: "/path/to/filesystem.sqfs" -# sourcefs: "squashfs" -# destination: "" -# -# Multiple entries are unpacked in-order; if there is more than one -# item then only the first must exist beforehand -- it's ok to -# create directories with one unsquash and then to use those -# directories as a target from a second unsquash. -# -# - source: "/path/to/another/filesystem.img" -# sourcefs: "ext4" -# destination: "" -# - source: "/path/to/another/filesystem2.img" -# sourcefs: "ext4" -# destination: "/usr/lib/extra" -# -# You can list filesystem source paths relative to the Calamares run -# directory, if you use -d (this is only useful for testing, though). -# -# - source: ./example.sqfs -# sourcefs: squashfs -# destination: "" -# -# You can list individual files (copied one-by-one), or directories -# (the files inside this directory are copied directly to the destination, -# so no "dummycpp/" subdirectory is created in this example). -# Do note that the target directory must exist already (e.g. from -# extracting some other filesystem). -# -# - source: ../CHANGES -# sourcefs: file -# destination: "/tmp/derp" -# - source: ../src/modules/dummycpp -# sourcefs: file -# destination: "/tmp/derp" -# -# The *destination* and *source* are handed off to rsync, so the semantics -# of trailing slashes apply. In order to *rename* a file as it is -# copied, specify one single file (e.g. CHANGES) and a full pathname -# for its destination name, as in the example below. -# -# It is also possible to dynamically (conditionally) unpack a source by passing a boolean -# value for *condition*. This may be true or false (constant) or name a globalstorage -# value. Use '.' to separate parts of a globalstorage name if it is nested. -# -# This is used in e.g. stacked squashfses, where the user can select a specific -# install type. The default value of *condition* is true. -# -# - source: ./example.minimal.sqfs -# sourcefs: squashfs -# destination: "" -# condition: false -# - source: ./example.standard.sqfs -# sourcefs: squashfs -# destination: "" -# condition: exampleGlobalStorageVariable.subkey -# -# You may also wish to include optional squashfses, which may not exist at certain times -# depending on your image tooling. If an optional squashfs is not found, it is simply -# skipped. -# -# - source: ./example.standard.sqfs -# sourcefs: squashfs -# destination: "" -# - source: ./example.extras.sqfs -# sourcefs: squashfs -# destination: "" -# optional: true unpack: - source: "/run/archiso/bootmnt/arch/x86_64/airootfs.sfs" sourcefs: "squashfs" destination: "" - - source: "/run/archiso/bootmnt/arch/boot/x86_64/vmlinuz-linux" + - source: "/boot/vmlinuz-linux" sourcefs: "file" destination: "/boot/vmlinuz-linux" diff --git a/airootfs/usr/share/calamares/modules/unpackfsc.conf b/airootfs/usr/share/calamares/modules/unpackfsc.conf index b8780ac..419dac2 100644 --- a/airootfs/usr/share/calamares/modules/unpackfsc.conf +++ b/airootfs/usr/share/calamares/modules/unpackfsc.conf @@ -68,7 +68,10 @@ # A condition is used in e.g. stacked squashfses, where the user can select # a specific install type. The default value of *condition* is true. -source: /data/rootfs.fsa -sourcefs: fsarchiver -destination: "/" -# condition: true +unpack: + - source: "/data/rootfs.fsa" + sourcefs: "fsarchiver" + destination: "/" + - source: "/boot/vmlinuz-linux" + sourcefs: "file" + destination: "/boot/vmlinuz-linux" diff --git a/grub/grub.cfg b/grub/grub.cfg index b879a67..1d9db44 100644 --- a/grub/grub.cfg +++ b/grub/grub.cfg @@ -44,13 +44,13 @@ timeout_style=menu # Menu entries -menuentry "Arch Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' { +menuentry "HyprArch Linux install medium (%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 } -menuentry "Arch Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' { +menuentry "HyprArch Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' { set gfxpayload=keep linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img diff --git a/pacman.conf b/pacman.conf index 2684a95..eb84006 100644 --- a/pacman.conf +++ b/pacman.conf @@ -106,3 +106,8 @@ Server = https://arcolinux.github.io/$repo/$arch [localrepo] SigLevel = Optional TrustAll Server = file:///home/stuartdrew/archdisto/local_repo + +[hyprarch-repo] +SigLevel = Optional TrustAll +# Use $arch so it automatically looks in the x86_64 folder +Server = https://hyprarch-repo.stuple.net/$arch diff --git a/profiledef.sh b/profiledef.sh index 7278906..169ed08 100644 --- a/profiledef.sh +++ b/profiledef.sh @@ -26,4 +26,6 @@ file_permissions=( ["/etc/sddm.conf.d/autologin.conf"]="0:0:644" ["/root/install-arch.desktop"]="0:0:755" ["/usr/bin/calamares"]="0:0:755" + ["/etc/mkinitcpio.d"]="0:0:755" + ["/etc/mkinitcpio.conf"]="0:0:644" )