Commit Graph

106 Commits

Author SHA1 Message Date
nl6720
cb61daf8ea
configs/*/airootfs/etc/systemd/network/: add RequiredForOnline=routable
By default systemd-networkd-wait-online.service considers a network
connection to be "online" when it has reached the "degraded" state
(see networkctl(1) for the definitions).
Since "degraded" does not ensure there's a routable address, let's
change the connection's requirement to "routable" instead.

This gives a better chance that the network really is online when
network-online.target is reached.
2023-12-09 12:40:59 +02:00
nl6720
4b489cd8bc
Add configs/baseline/airootfs/etc/localtime
Make sure the ISO can be booted successfully without triggering questions from systemd-firstboot.

Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/205
Fixes: 6e1be91961 ("archiso/mkarchiso: write "uninitialized" to /etc/machine-id")
2023-09-29 13:00:56 +03:00
nl6720
4280af7474
Add configs/*/grub/loopback.cfg
See https://www.supergrubdisk.org/wiki/Loopback.cfg for details.

Only `${iso_path}` is guaranteed, so we need to search for the volume,
on which the ISO file resides, ourselves.

Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/165
2023-09-28 10:09:10 +03:00
nl6720
0cd0cc0c3b
configs/*/grub/grub.cfg: do not hardcode the architecture and platform
Construct a human readable platform identifier from GRUB's built-in
variables and use it in menu item descriptions.

Only add the menu entries for the additional tools (UEFI shell,
Memtest86+) if the files exist.

Modify baseline's `grub.cfg` to closer match releng.
2023-09-28 10:08:36 +03:00
nl6720
0a3a57a88b
configs/*/grub/grub.cfg: rearrange module loading
* Do not manually load modules that will get loaded by invoking a command.
* Explicitly load serial modules.
* Move `insmod all_video` after the font is loaded.
2023-09-28 10:08:36 +03:00
nl6720
174f818581
/etc/ssh/sshd_config.d/10-archiso.conf: keep only the modified options
The only changes we make to the default are to enable root login via a
password.

While `PasswordAuthentication yes` is the default, let's set it
explicitly to avoid potential issues in the future.
2023-08-26 10:54:26 +03:00
nl6720
d501e235bb
Move custom sshd_config to /etc/ssh/sshd_config.d/
openssh 9.4p1-2 changed /etc/ssh/sshd_config to add support for
drop-in files in /etc/ssh/sshd_config.d/.

Using drop-in files avoids needing to keep up with changes to the
default /etc/ssh/sshd_config.
2023-08-26 10:54:26 +03:00
nl6720
2e6db24f23
Set IPv6PrivacyExtensions=yes in global systemd-netorkd configuration
Since systemd 245, IPv6PrivacyExtensions can be set not just per
connection, but also globally for all connection with a configuration
file in /etc/systemd/network.conf.d/.
2023-08-11 11:40:14 +03:00
nl6720
17a71ade2e
configs/*/airootfs/etc/mkinitcpio.conf.d/archiso.conf: remove comments and unused options
Set only the custom values for HOOKS and COMPRESSION.
2023-06-21 16:20:16 +03:00
nl6720
eb5720331b
configs/: move custom mkinitcpio.conf files to /etc/mkinitcpio.conf.d/
This allows to retain a pristine /etc/mkinitcpio.conf in the rootfs.
2023-06-21 16:20:16 +03:00
nl6720
1637dc3590
Update configs/{baseline,releng}/pacman.conf
Update pacman.conf to match the one shipped with pacman 6.0.2-7.

The community repository is gone. See
https://archlinux.org/news/git-migration-completed/
2023-05-25 16:35:56 +03:00
Sorin Pânca
32b32bd615 Add support for mDNS. 2023-05-22 15:58:50 +03:00
nl6720
ce8fdedbf7
Use UUIDs in all boot loader configuration files
Relying on the volume UUID instead of its LABEL avoids collisions of
multiple ISOs created in the same month.

Fixes #202
2023-05-17 15:23:18 +03:00
nl6720
20fc8030a3
configs/baseline/profiledef.sh: compress more
* Use LZMA extreme compression level,
* enable experimental compressed fragments feature to create a smaller image,
* enable experimental data deduplication.

This decreases the baseline profile's `airootfs.erofs` size by about ~16 MiB.
2023-03-17 19:35:59 +02:00
David Runge
8535d695ff
Use console as grub's terminal_output
configs/{baseline,releng}/grub/grub.cfg:
Use `console` as grub's `terminal_output`, as with `gfxterm` only a blank screen is shown on some hardware.

Fixes #212
2023-02-27 19:31:45 +01:00
nl6720
cedb3d142c
configs/*/grub/grub.cfg: replace /dev/disk/by-uuid/ with UUID=
Use the shorter and more nicer looking `UUID=` *tags* instead of the
`/dev/disk/by-uuid/` paths.

This requires mkinitcpio-archiso v68.

Related to #202
2023-02-24 11:41:14 +02:00
nl6720
c8474f8dbe
Move the .uuid file to /boot/grub/YYYY-mm-dd-HH-MM-SS-00.uuid
To prevent the file from being accidentally missed when someone copies
the ISO's contents, let's not place it in a directory that starts with a
dot. Since all GRUB related files are in /boot/grub/, put it there too.

Instead of using a more unique UUID for the file name, use
`YYYY-mm-dd-HH-MM-SS-00.uuid` which matches the ISO's modification date
in UTC,i.e. its "UUID". If multiple ISOs would be generated in the exact
same second, the ISO 9660 modification date (i.e. its "UUID") would be
the same, so there would be not way to distinguish between the volumes
anyway. This also makes the file look less suspicious to the casual
glance.
2023-02-24 10:22:41 +02:00
nl6720
f7502001b0
configs/*/grub/grub.cfg: reuse ARCHISO_HINT and ARCHISO_UUID passed from the embedded grub.cfg
The `grub.cfg` embedded in the GRUB binaries already sets `ARCHISO_HINT`
and `ARCHISO_UUID` in most cases. To avoid performing the same searches
multiple times, use the existing variables.
2023-02-22 18:28:28 +02:00
nl6720
7c6f266ec9
configs/*/profiledef.sh: honor SOURCE_DATE_EPOCH
Ensure the **correct** date is used in `iso_label` and `iso_version`.
2023-02-22 18:03:13 +02:00
nl6720
0f34e4429a
configs/*/airootfs/etc/ssh/sshd_config: update to match 9.2p1-1
Update /etc/ssh/sshd_config to match changes made in
42aa04744e
and 7166713c55

The only modification remains `PermitRootLogin yes`.
2023-02-07 17:38:11 +02:00
nl6720
5587e031f3
Preload GRUB's NTFS, exFAT and UDF modules
There are claims that some UEFI allegedly natively support NTFS.
Preload the required GRUB modules to support booting from NTFS on such
systems.

Additionally preload the exFAT and UEF modules, because, why not?
2023-02-02 11:49:16 +02:00
nl6720
3f95d391ef
configs/*/grub/grub.cfg: search for a .uuid file in /.disk/ and use the volume it's on
Search for `/.disk/%UUID_SEARCH_FILENAME%.uuid` and pass the UUID of the
volume it's on as `archisodevice`. mkarchiso will replace
`%UUID_SEARCH_FILENAME%` with a hardcoded value generated using
`SOURCE_DATE_EPOCH` durring ISO build.

This allows to prepare an UEFI bootable installation medium by simply
copying the directory structure without having to touch `grub.cfg`.

Relying on the volume UUID instead of its LABEL also avoids collisions
of multiple ISOs created in the same month.

Fixes #202
2023-02-02 11:49:16 +02:00
nl6720
55a1b132a0
configs/baseline/profiledef.sh: use LZMA compression for the EROFS image
Now that xz 5.4 is out and erofs-utils is built with LZMA support, it is
possible to compress the EROFS image with LZMA for higher compression.
`mkfs.erofs` trows a few warnings about using experimental features, but
they should not be an issue.

Nothing changes for the releng profile, for now at least.
2022-12-17 20:11:09 +02:00
nl6720
2f9cfdf42f
configs/: remove "Copy to RAM" boot entries since it is automatic now
The default is now copytoram=auto which enables copying to RAM when the rootfs image size is less than 4 GiB and free RAM exceeds the rootfs image size + 2 GiB.

See https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/-/issues/13 and https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/-/merge_requests/26.

Implements #177.
2022-10-22 17:31:46 +03:00
nl6720
f4f0a3a5ec
configs/: Do not explicitly enable qemu-guest-agent.service
qemu-guest-agent.service will be started by the /usr/lib/udev/rules.d/99-qemu-guest-agent.rules udev rule.

Fixes #199
2022-10-06 15:56:18 +03:00
nl6720
86540647db
configs/*/grub/grub.cfg: enable serial input and output
Try to initialize a serial device and use it for input and output.

Add more comments to grub.cfg to explain what is done.

Related to #75
2022-06-26 13:16:29 +03:00
nl6720
e654106ecf
configs/*/grub/grub.cfg: auto-boot after 15 seconds
* Set the default boot entry and its timeout.
* Add classes to menu entries to allow theming them.

Fixes #179
2022-06-23 08:27:44 +03:00
nl6720
b72523e389
configs/baseline/profiledef.sh: add -E ztailpacking to airootfs_image_tool_options for mkfs.erofs
As the man page says, it saves more space, although the feature is experimental.
2022-06-18 08:47:25 +03:00
plainlinen
e51b6f6199 Use grub for uefi x64 boot modes in profiledef.sh 2022-06-09 22:39:43 -07:00
plainlinen
98de411847 Add useful grub menu entries to grub.cfg 2022-06-09 22:36:03 -07:00
nl6720
ba11c40e49
configs/: use the C.UTF-8 locale
The glibc 2.35-6 package ships with the C.UTF-8 locale included.
This means there is now a UTF-8 locale available by default and en_US.UTF-8, which requires editing /etc/locale.gen and running locale-gen, is not needed anymore.

Implements #175.
2022-06-09 08:27:50 +03:00
Pellegrino Prevete
c335d5d392
Update baseline and releng profiledef.sh to support ia32 uefi mode. 2022-05-25 14:52:22 +00:00
Pellegrino Prevete
4e20b30faf
Add GRUB configuration files to baseline and releng profiles. 2022-05-25 14:50:49 +00:00
nl6720
8c837ca23b
configs/*: add VMware and Hyper-V guest packages and enable their services
* open-vm-tools package, vmtoolsd.service and vmware-vmblock-fuse.service for VMware.
* hyperv package, hv_fcopy_daemon.service, hv_kvp_daemon.service and hv_vss_daemon.service for Hyper-V.

Related to #118.
2022-04-30 12:07:36 +03:00
nl6720
e5bdf0c6ab
configs/{baseline,releng}/: disable systemd-gpt-auto-generator
When booting the ISO, you can observe a message that systemd-gpt-auto-generator has failed:

    systemd-gpt-auto-generator[197]: Reading EFI variable /sys/firmware/efi/efivars/LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
    systemd-gpt-auto-generator[197]: open("/sys/firmware/efi/efivars/LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f") failed: No such file or directory
    systemd-gpt-auto-generator[197]: EFI loader partition unknown, exiting.
    systemd-gpt-auto-generator[197]: (The boot loader did not set EFI variable LoaderDevicePartUUID.)
    systemd-gpt-auto-generator[197]: Failed to open device: No such device

Seeing as it started to appear relatively recently, it may be a systemd bug.
Since we do not want any GPT partition automounting in the live environment anyway, systemd-gpt-auto-generator can simply be disabled.

Fixes #164.
2022-03-25 17:38:10 +02:00
nl6720
18bb8c2b45
configs/*/airootfs/etc/systemd/network/20-ethernet.network: add a comment to document why an interface name glob is used
This documents the changes made in !177 inside the .network files themselves.

Related to #142.
2022-01-22 19:17:34 +02:00
nl6720
56dc96ee12
configs/*/airootfs/etc/ssh/sshd_config: update to openssh 8.7p1-1
Update /etc/ssh/sshd_config to match upstream changes.
The only modification remains "PermitRootLogin yes".
2021-08-25 00:24:17 +03:00
David Runge
f4324e2f81
Remove SPDX license identifier from releng configs
configs/baseline/*:
Remove the SPDX license identifier comment from the configuration files in the profile, as they are not eligible for
copyright.
2021-07-29 20:45:08 +02:00
nl6720
8fa110e9d7
configs/*/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf: document why the drop-in file exists
Related to #142.

Add missing `ExecStart=` to baseline's /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf.
2021-07-27 13:06:59 +03:00
nl6720
c6a1ccca4f
configs/releng/airootfs/etc/systemd/network/: move RouteMetric= from [DHCPv6] to [IPv6AcceptRA]
systemd moved the option. See 8ebafba9f9 .
Implements #123.

Document in comments why the route metrics need to be set (because of https://github.com/systemd/systemd/issues/17698 ) and use the same metric values as NetworkManager. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c

Additionally remove RouteMetric from configs/baseline/airootfs/etc/systemd/network/20-ethernet.network.
There is only one networkd configuration file in baseline, meaning, there are no other routes.
2021-07-27 13:06:59 +03:00
Giancarlo Razzolini
d75689b5f7
baseline/pacman.conf: Enable parallel downloads
Now that pacman 6 is around, enable parallel downloads to speed up the installation
process. Added to the baseline configuration to also improve the pipeline.
2021-06-29 15:20:39 -03:00
nl6720
6f671e1174
configs/*/pacman.conf: update configuration file for pacman 6
Based on accc1d2101/trunk/pacman.conf

Implements #136
2021-06-05 18:19:00 +03:00
nl6720
0b94b049e9
configs/baseline: use EROFS based image
Showcase #59.
2021-05-29 18:04:15 +03:00
Simon Wilper
31427eca7a Apply copytoram Boot Option Menu Entries also to releng 2021-05-14 19:47:25 +02:00
Simon Wilper
9c783a8e71 Reorder UEFI boot menu entries 2021-05-14 19:47:25 +02:00
Simon Wilper
bb503b9030 add optional pv tool
use pv to give feedback on copying the airootfs to RAM when copytoram
kernel parameter is given
2021-05-14 19:46:23 +02:00
nl6720
bd2b861aa3
configs/*: add VM guest packages and enable their services
* virtualbox-guest-utils-nox package and vboxservice.service for VirtualBox.
* qemu-guest-agent package and qemu-guest-agent.service for QEMU & libvirt.

Implements #118.
2021-05-11 21:47:12 +03:00
David Runge
535bc3c0da
baseline: Add bootstrap packages file
configs/baseline/bootstrap_packages.x86_64:
Add a packages file for bootstrap images using the baseline profile and add arch-install-scripts and base to it.
2021-05-09 11:38:03 +02:00
David Runge
b7fd696e1e
baseline: Add buildmodes to profiledef.sh
configs/baseline/profiledef.sh:
Add `buildmodes` array with default entry for the 'iso' buildmode.
2021-05-09 11:38:00 +02:00
nl6720
06c3218786
configs/releng/syslinux/: increase serial baud rate to 115200
Additionally enable serial in baseline profile.

Related to #75.
2021-04-30 20:50:34 +03:00