From 71e2c6d6dd4c8b9fd0a9c8de9c757930727278b7 Mon Sep 17 00:00:00 2001 From: sose Date: Fri, 4 Sep 2020 21:32:29 -0700 Subject: [PATCH] added more necessary installer config files --- .../etc/calamares/modules/bootloader.conf | 57 ++++++++ .../etc/calamares/modules/fstab.conf | 49 +++++++ .../etc/calamares/modules/initramfs.conf | 39 ++++++ .../etc/calamares/modules/keyboard.conf | 19 +++ .../etc/calamares/modules/locale.conf | 131 ++++++++++++++++++ .../etc/calamares/modules/machineid.conf | 25 ++++ .../calamares/modules/services-systemd.conf | 73 ++++++++++ .../etc/calamares/modules/unpackfs.conf | 87 ++++++++++++ 8 files changed, 480 insertions(+) create mode 100644 includes.chroot/etc/calamares/modules/bootloader.conf create mode 100644 includes.chroot/etc/calamares/modules/fstab.conf create mode 100644 includes.chroot/etc/calamares/modules/initramfs.conf create mode 100644 includes.chroot/etc/calamares/modules/keyboard.conf create mode 100644 includes.chroot/etc/calamares/modules/locale.conf create mode 100644 includes.chroot/etc/calamares/modules/machineid.conf create mode 100644 includes.chroot/etc/calamares/modules/services-systemd.conf create mode 100644 includes.chroot/etc/calamares/modules/unpackfs.conf diff --git a/includes.chroot/etc/calamares/modules/bootloader.conf b/includes.chroot/etc/calamares/modules/bootloader.conf new file mode 100644 index 0000000..f471c2e --- /dev/null +++ b/includes.chroot/etc/calamares/modules/bootloader.conf @@ -0,0 +1,57 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Bootloader configuration. The bootloader is installed to allow +# the system to start (and pick one of the installed operating +# systems to run). +--- +# Define which bootloader you want to use for EFI installations +# Possible options are 'grub', 'sb-shim' and 'systemd-boot'. +efiBootLoader: "grub" + +# systemd-boot configuration files settings, set kernel and initramfs file names +# and amount of time before default selection boots +kernel: "/vmlinuz-linux" +img: "/initramfs-linux.img" +fallback: "/initramfs-linux-fallback.img" +timeout: "10" + +# Optionally set the menu entry name and kernel name to use in systemd-boot. +# If not specified here, these settings will be taken from branding.desc. +# +# bootloaderEntryName: "Generic GNU/Linux" +# kernelLine: ", with Stable-Kernel" +# fallbackKernelLine: ", with Stable-Kernel (fallback initramfs)" + +# GRUB 2 binary names and boot directory +# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names. +# These names are also used when using sb-shim, since that needs some +# GRUB functionality (notably grub-probe) to work. As needed, you may use +# complete paths like `/usr/bin/efibootmgr` for the executables. +# +grubInstall: "grub-install" +grubMkconfig: "grub-mkconfig" +grubCfg: "/boot/grub/grub.cfg" +grubProbe: "grub-probe" +efiBootMgr: "efibootmgr" + +# Optionally set the bootloader ID to use for EFI. This is passed to +# grub-install --bootloader-id. +# +# If not set here, the value from bootloaderEntryName from branding.desc +# is used, with problematic characters (space and slash) replaced. +# +# The ID is also used as a directory name within the EFI environment, +# and the bootloader is copied from /boot/efi/EFI// . When +# setting the option here, keep in mind that the name is sanitized +# (problematic characters, see above, are replaced). +# +# efiBootloaderId: "dirname" + +# Optionally install a copy of the GRUB EFI bootloader as the EFI +# fallback loader (either bootia32.efi or bootx64.efi depending on +# the system). This may be needed on certain systems (Intel DH87MC +# seems to be the only one). If you set this to false, take care +# to add another module to optionally install the fallback on those +# boards that need it. +installEFIFallback: true diff --git a/includes.chroot/etc/calamares/modules/fstab.conf b/includes.chroot/etc/calamares/modules/fstab.conf new file mode 100644 index 0000000..21f6ffc --- /dev/null +++ b/includes.chroot/etc/calamares/modules/fstab.conf @@ -0,0 +1,49 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Creates /etc/fstab and /etc/crypttab in the target system. +# Also creates mount points for all the filesystems. +# +# When creating fstab entries for a filesystem, this module +# uses the options for the filesystem type to write to the +# options field of the file. +--- +# Mount options to use for all filesystems. If a specific filesystem +# is listed here, use those options, otherwise use the *default* +# options from this mapping. +mountOptions: + default: defaults,noatime + btrfs: defaults,noatime,space_cache,autodefrag + +# Mount options to use for the EFI System Partition. If not defined, the +# *mountOptions* for *vfat* are used, or if that is not set either, +# *default* from *mountOptions*. +efiMountOptions: umask=0077 + +# If a filesystem is on an SSD, add the following options. If a specific +# filesystem is listed here, use those options, otherwise no additional +# options are set (i.e. there is no *default* like in *mountOptions*). +# +# This example configuration applies the *discard* option to most +# common filesystems on an SSD. This may not be the right option +# for your distribution. If you use a systemd timer to trim the +# SSD, it may interfere with the *discard* option. Opinions vary +# as to whether *discard* is worth the effort -- it depends on +# the usage pattern of the disk as well. +# +# ssdExtraMountOptions: +# ext4: discard +# jfs: discard +# xfs: discard +# swap: discard +# btrfs: discard,compress=lzo +# +# The standard configuration applies only lzo compression to btrfs +# and does nothing for other filesystems. +ssdExtraMountOptions: + btrfs: compress=lzo + +# Additional options added to each line in /etc/crypttab +crypttabOptions: luks +# For Debian and Debian-based distributions, change the above line to: +# crypttabOptions: luks,keyscript=/bin/cat diff --git a/includes.chroot/etc/calamares/modules/initramfs.conf b/includes.chroot/etc/calamares/modules/initramfs.conf new file mode 100644 index 0000000..c9dcf16 --- /dev/null +++ b/includes.chroot/etc/calamares/modules/initramfs.conf @@ -0,0 +1,39 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +## initramfs module +# +# This module is specific to Debian based distros. Post installation on Debian +# the initramfs needs to be updated so as to not interrupt the boot process +# with a error about fsck.ext4 not being found. +# +## Debian specific notes +# +# If you're using live-build to build your ISO and setup the runtime env +# make sure that you purge the live-\* packages on the target system +# before running this module, since live-config dpkg-diverts update-initramfs +# and can cause all sorts of fun issues. +--- +# There is only one configuration item for this module, +# the kernel to be loaded. This can have the following +# values: +# - empty or unset, interpreted as "all" +# - the literal string "$uname" (without quotes, with dollar), +# which will use the output of `uname -r` to determine the +# running kernel, and use that. +# - any other string. +# +# Whatever is set, that string is passed as *version* argument to the +# `-k` option of *update-initramfs*. Take care that both "$uname" operates +# in the host system, and might not be correct if the target system is +# updated (to a newer kernel) as part of the installation. +# +# The default is empty/unset, leading to the behavior from Calamares +# 3.2.9 and earlier which passed "all" as version. + +kernel: "all" + +# Set this to true to turn off mitigations for lax file +# permissions on initramfs (which, in turn, can compromise +# your LUKS encryption keys, CVS-2019-13179). +be_unsafe: false diff --git a/includes.chroot/etc/calamares/modules/keyboard.conf b/includes.chroot/etc/calamares/modules/keyboard.conf new file mode 100644 index 0000000..d122f30 --- /dev/null +++ b/includes.chroot/etc/calamares/modules/keyboard.conf @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# NOTE: you must have ckbcomp installed and runnable +# on the live system, for keyboard layout previews. +--- +# The name of the file to write X11 keyboard settings to +# The default value is the name used by upstream systemd-localed. +# Relative paths are assumed to be relative to /etc/X11/xorg.conf.d +xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf" + +# The path to search for keymaps converted from X11 to kbd format +# Leave this empty if the setting does not make sense on your distribution. +convertedKeymapPath: "/lib/kbd/keymaps/xkb" + +# Write keymap configuration to /etc/default/keyboard, usually +# found on Debian-related systems. +# Defaults to true if nothing is set. +#writeEtcDefaultKeyboard: true diff --git a/includes.chroot/etc/calamares/modules/locale.conf b/includes.chroot/etc/calamares/modules/locale.conf new file mode 100644 index 0000000..4463f7a --- /dev/null +++ b/includes.chroot/etc/calamares/modules/locale.conf @@ -0,0 +1,131 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +--- +# These settings are used to set your default system time zone. +# Time zones are usually located under /usr/share/zoneinfo and +# provided by the 'tzdata' package of your Distribution. +# +# Distributions using systemd can list available +# time zones by using the timedatectl command. +# timedatectl list-timezones +# +# The starting timezone (e.g. the pin-on-the-map) when entering +# the locale page can be set through keys *region* and *zone*. +# If either is not set, defaults to America/New_York. +# +# Note that useSystemTimezone and GeoIP settings can change the +# starting time zone. +# +region: "America" +zone: "New_York" + +# Instead of using *region* and *zone* specified above, +# you can use the system's notion of the timezone, instead. +# This can help if your system is automatically configured with +# a sensible TZ rather than chasing a fixed default. +# +# The default is false. +# +# useSystemTimezone: true + +# Should changing the system location (e.g. clicking around on the timezone +# map) immediately reflect the changed timezone in the live system? +# By default, installers (with a target system) do, and setup (e.g. OEM +# configuration) does not, but you can switch it on here (or off, if +# you think it's annoying in the installer). +# +# Note that not all systems support live adjustment. +# +# adjustLiveTimezone: true + +# System locales are detected in the following order: +# +# - /usr/share/i18n/SUPPORTED +# - localeGenPath (defaults to /etc/locale.gen if not set) +# - `locale -a` output +# +# Enable only when your Distribution is using a +# custom path for locale.gen +# +#localeGenPath: "/etc/locale.gen" + +# GeoIP based Language settings: Leave commented out to disable GeoIP. +# +# GeoIP needs a working Internet connection. +# This can be managed from `welcome.conf` by adding +# internet to the list of required conditions. (The welcome +# module can also do its own GeoIP lookups, independently +# of the lookup done here. The lookup in the welcome module +# is used to establish language; this one is for timezone). +# +# The configuration is in three parts: +# - a *style*, which can be "json" or "xml" depending on the +# kind of data returned by the service, and +# - a *url* where the data is retrieved, and +# - an optional *selector* +# to pick the right field out of the returned data (e.g. field +# name in JSON or element name in XML). +# +# The default selector (when the setting is blank) is picked to +# work with existing JSON providers (which use "time_zone") and +# Ubiquity's XML providers (which use "TimeZone"). +# +# If the service configured via *url* uses +# a different attribute name (e.g. "timezone") in JSON or a +# different element tag (e.g. "") in XML, set the +# selector to the name or tag to be used. +# +# In JSON: +# - if the string contains "." characters, this is used as a +# multi-level selector, e.g. "a.b" will select the timezone +# from data "{a: {b: "Europe/Amsterdam" } }". +# - each part of the string split by "." characters is used as +# a key into the JSON data. +# In XML: +# - all elements with the named tag (e.g. all TimeZone) elements +# from the document are checked; the first one with non-empty +# text value is used. +# Special case: +# - the *style* "fixed" is also supported. This ignores the data +# returned from the URL (but the URL must still be valid!) +# and just returns the value of the *selector*. +# +# An HTTP(S) request is made to *url*. The request should return +# valid data in a suitable format, depending on *style*; +# generally this includes a string value with the timezone +# in / format. For services that return data which +# does not follow the conventions of "suitable data" described +# below, *selector* may be used to pick different data. +# +# Suitable JSON data looks like +# ``` +# {"time_zone":"America/New_York"} +# ``` +# Suitable XML data looks like +# ``` +# Europe/Brussels +# ``` +# +# To accommodate providers of GeoIP timezone data with peculiar timezone +# naming conventions, the following cleanups are performed automatically: +# - backslashes are removed +# - spaces are replaced with _ +# +# To disable GeoIP checking, either comment-out the entire geoip section, +# or set the *style* key to an unsupported format (e.g. `none`). +# Also, note the analogous feature in src/modules/welcome/welcome.conf. +# +geoip: + style: "json" + url: "https://geoip.kde.org/v1/calamares" + selector: "" # leave blank for the default + +# For testing purposes, you could use *fixed* style, to see how Calamares +# behaves in a particular zone: +# +# geoip: +# style: "fixed" +# url: "https://geoip.kde.org/v1/calamares" # Still needs to be valid! +# selector: "America/Vancouver" # this is the selected zone +# diff --git a/includes.chroot/etc/calamares/modules/machineid.conf b/includes.chroot/etc/calamares/modules/machineid.conf new file mode 100644 index 0000000..19e2173 --- /dev/null +++ b/includes.chroot/etc/calamares/modules/machineid.conf @@ -0,0 +1,25 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Machine-ID and other random data on the target system. +# +# This module can create a number of "random" things on the target: +# - a systemd machine-id file (hence the name of the Calamares module) +# with a random UUID. +# - a dbus machine-id file (or, optionally, link to the one from systemd) +# - an entropy file +# +--- +# Whether to create /etc/machine-id for systemd. +systemd: true + +# Whether to create /var/lib/dbus/machine-id for D-Bus. +dbus: true +# Whether /var/lib/dbus/machine-id should be a symlink to /etc/machine-id +# (ignored if dbus is false, or if there is no /etc/machine-id to point to). +symlink: true + +# Whether to create an entropy file +entropy: false +# Whether to copy entropy from the host +entropy-copy: false diff --git a/includes.chroot/etc/calamares/modules/services-systemd.conf b/includes.chroot/etc/calamares/modules/services-systemd.conf new file mode 100644 index 0000000..77224b0 --- /dev/null +++ b/includes.chroot/etc/calamares/modules/services-systemd.conf @@ -0,0 +1,73 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Systemd services manipulation. +# +# This module can enable services and targets for systemd +# (if packaging doesn't already do that). It can calso +# disable services (but not targets). +# +# First, services are enabled; then targets; then services +# are disabled -- this order of operations is fixed. +--- + +# There are three configuration keys for this module: +# *services*, *targets* and *disable*. The value of each +# key is a list of entries. Each entry has two keys: +# - *name* is the (string) name of the service or target that is being +# changed. Use quotes. Don't include ".target" or ".service" +# in the name. +# - *mandatory* is a boolean option, which states whether the change +# must be done successfully. If systemd reports an error while changing +# a mandatory entry, the installation will fail. When mandatory is false, +# errors for that entry (service or target) are ignored. If mandatory +# is not specified, the default is false. +# +# An entry may also be given as a single string, which is then +# interpreted as the name of the service. In this case, mandatory +# is also set to the default of false. +# +# Use [] to express an empty list. + +# # This example enables NetworkManager (and fails if it can't), +# # disables cups (and ignores failure). Then it enables the +# # graphical target (e.g. so that SDDM runs for login), and +# # finally disables pacman-init (an ArchLinux-only service). +# # +# # Enables .service +# services: +# - name: "NetworkManager" +# mandatory: true +# - name: "cups" +# mandatory: false +# +# # Enables .target +# targets: +# - name: "graphical" +# mandatory: true +# +# # Disables .service +# disable: +# - name: "pacman-init" +# mandatory: false +# +# # Disables .target +# # .. this shows how to use just the name +# disable-targets: +# - graphical +# +# # Masks (stronger version of disable). This section +# # is unusual because you **must** include the suffix +# # (e.g. ".service") as part of the name, so, e.g. to mask +# # NetworkManager (rather than just disable it) you must +# # specify "NetworkManager.service" as name. +# mask: +# - name: "NetworkManager.service" +# - mandatory: true + +# By default, no changes are made. +services: [] +targets: [] +disable: [] +disable-targets: [] +mask: [] diff --git a/includes.chroot/etc/calamares/modules/unpackfs.conf b/includes.chroot/etc/calamares/modules/unpackfs.conf new file mode 100644 index 0000000..a1ffa05 --- /dev/null +++ b/includes.chroot/etc/calamares/modules/unpackfs.conf @@ -0,0 +1,87 @@ +# 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. +# +# 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. + +unpack: + - source: "/dev/loop0" + sourcefs: squashfs + destination: ""