Compare commits

...

3 commits

Author SHA1 Message Date
f86008079d
update systemd-firstboot 2024-12-23 14:46:40 +01:00
f4ba4007ac
update 2024-12-23 11:25:13 +01:00
bb16b3fceb
update 2024-12-23 11:08:19 +01:00
17 changed files with 185 additions and 11 deletions

View file

@ -2,6 +2,8 @@
obj: application
---
#refactor
# NetworkManager
[NetworkManager](https://networkmanager.dev/) is a program for providing detection and configuration for systems to automatically connect to networks. NetworkManager's functionality can be useful for both wireless and wired networks. For wireless networks, NetworkManager prefers known wireless networks and has the ability to switch to the most reliable network. NetworkManager-aware applications can switch from online and offline mode. NetworkManager also prefers wired connections over wireless ones, has support for modem connections and certain types of VPN. NetworkManager was originally developed by Red Hat and now is hosted by the GNOME project.

View file

@ -14,7 +14,7 @@ Fields inside the mount section:
- `Options` : Mount options to use when mounting. This takes a comma-separated list of options. This setting is optional.
## Example
```
```ini
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
@ -24,4 +24,4 @@ What=/dev/sda1
Where=/mnt
Type=btrfs
Options=nosuid,nodev,nofail,compress=zstd,ro
```
```

View file

@ -18,11 +18,11 @@ systemctl list-timers
## Examples
### Monotonic timer
A timer which will start 15 minutes after boot and again every week while the system is running.
`/etc/systemd/system/foo.timer`
```
```ini
# /etc/systemd/system/foo.timer
[Unit]
Description=Run foo weekly and on boot
@ -35,11 +35,11 @@ WantedBy=timers.target
```
### Realtime timer
A timer which starts once a week (at 12:00am on Monday). When activated, it triggers the service immediately if it missed the last start time (option `Persistent=true`), for example due to the system being powered off:
`/etc/systemd/system/foo.timer`
```
```ini
# /etc/systemd/system/foo.timer
[Unit]
Description=Run foo weekly
@ -59,4 +59,4 @@ An asterisk may be used to specify any value and commas may be used to list poss
In the below example the service is run the first four days of each month at 12:00 PM, but _only_ if that day is a Monday or a Tuesday.
`OnCalendar=Mon,Tue *-*-01..04 12:00:00`
`OnCalendar=Mon,Tue *-*-01..04 12:00:00`

View file

@ -65,6 +65,11 @@ systemctl mask unit
systemctl unmask unit
```
Get a list of overridden unit files:
```shell
systemd-delta
```
## Power Management
Shut down and reboot the system
`systemctl reboot`
@ -98,7 +103,7 @@ There are several different start-up types to consider when writing a custom ser
- `Type=idle`: _systemd_ will delay execution of the service binary until all jobs are dispatched. Other than that behavior is very similar to `Type=simple`.
#### Example
```
```ini
[Unit]
Description=Description
After=network.target
@ -149,4 +154,4 @@ Below are the fields the Install section has:
Systemd supports other unit types than `.service`.
Some include:
- [Systemd-Timers](Systemd-Timers.md)
- [Systemd-Mounts](Systemd-Mounts.md)
- [Systemd-Mounts](Systemd-Mounts.md)

View file

@ -0,0 +1,6 @@
---
obj: application
---
# hostnamectl
#wip

View file

@ -0,0 +1,6 @@
---
obj: application
---
# journalctl
#wip

View file

@ -0,0 +1,7 @@
---
obj: application
---
# localectl
#wip
https://man.archlinux.org/man/localectl.1

View file

@ -0,0 +1,6 @@
---
obj: application
---
# loginctl
#wip

View file

@ -0,0 +1,6 @@
---
obj: application
---
# networkctl
#wip

View file

@ -0,0 +1,6 @@
---
obj: application
---
# systemd-analyze
#wip

View file

@ -0,0 +1,6 @@
---
obj: application
---
# systemd-ask-pass
#wip

View file

@ -0,0 +1,52 @@
---
obj: application
rev: 2024-12-23
---
# systemd-detect-virt
systemd-detect-virt detects execution in a virtualized environment. It identifies the virtualization technology and can distinguish full machine virtualization from container virtualization. systemd-detect-virt exits with a return value of 0 (success) if a virtualization technology is detected, and non-zero (error) otherwise. By default, any type of virtualization is detected, and the options `--container` and `--vm` can be used to limit what types of virtualization are detected.
When executed without `--quiet` will print a short identifier for the detected virtualization technology. The following technologies are currently identified:
| **Type** | **ID** | **Product** |
| --------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| vm | `qemu` | QEMU software virtualization, without KVM |
| vm | `kvm` | Linux KVM kernel virtual machine, in combination with QEMU. Not used for other virtualizers using the KVM interfaces, such as Oracle VirtualBox or Amazon EC2 Nitro, see below. |
| vm | `amazon` | Amazon EC2 Nitro using Linux KVM |
| vm | `zvm` | s390 z/VM |
| vm | `vmware` | VMware Workstation or Server, and related products |
| vm | `microsoft` | Hyper-V, also known as Viridian or Windows Server Virtualization |
| vm | `oracle` | Oracle VM VirtualBox (historically marketed by innotek and Sun Microsystems), for legacy and KVM hypervisor |
| vm | `powervm` | IBM PowerVM hypervisor — comes as firmware with some IBM POWER servers |
| vm | `xen` | Xen hypervisor (only domU, not dom0) |
| vm | `bochs` | Bochs Emulator |
| vm | `uml` | User-mode Linux |
| vm | `parallels` | Parallels Desktop, Parallels Server |
| vm | `bhyve` | bhyve, FreeBSD hypervisor |
| vm | `qnx` | QNX hypervisor |
| vm | `acrn` | ACRN hypervisor |
| vm | `apple` | Apple virtualization framework |
| vm | `sre` | LMHS SRE hypervisor |
| vm | `google` | Google Compute Engine |
| container | `openvz` | OpenVZ/Virtuozzo |
| container | `lxc` | Linux container implementation by LXC |
| container | `lxc-libvirt` | Linux container implementation by libvirt |
| container | `systemd-nspawn` | systemd's minimal container implementation, see systemd-nspawn(1) manual page |
| container | `docker` | Docker container manager |
| container | `podman` | Podman container manager |
| container | `rkt` | rkt app container runtime |
| container | `wsl` | Windows Subsystem for Linux |
| container | `proot` | proot userspace chroot/bind mount emulation |
| container | `pouch` | Pouch Container Engine |
If multiple virtualization solutions are used, only the "innermost" is detected and identified. That means if both machine and container virtualization are used in conjunction, only the latter will be identified (unless `--vm` is passed).
## Options
| Option | Description |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `-c, --container` | Only detects container virtualization (i.e. shared kernel virtualization). |
| `-v, --vm` | Only detects hardware virtualization. |
| `-r, --chroot` | Detect whether invoked in a chroot environment. In this mode, no output is written, but the return value indicates whether the process was invoked in a chroot() environment or not. |
| `-q, --quiet` | Suppress output of the virtualization technology identifier. |
| `--list` | Output all currently known and detectable container and VM environments. |

View file

@ -0,0 +1,45 @@
---
obj: application
---
# systemd-firstboot
systemd-firstboot allows for setting of basic system settings before or during the first boot of a newly created system. The tool is able of initialize the following system settings: timezone, locale, hostname, the root password, as well as automated generation of a machine ID.
As systemd-firstboot interacts with the filesystem directly and does not make use of the related systemd services (such as timedatectl, hostnamectl or localectl), it should not be executed on an already running system.
Settings can be specified non-interactively when externally used on filesystem images, or interactively if executed during the early boot process.
Usage: `systemd-firstboot [OPTIONS...]`
## Options
| Option | Description |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--root=root` | Takes a directory path as an argument. All paths will be prefixed with the given alternate root path, including config search paths. This is useful to operate on a system image mounted to the specified directory instead of the host system itself. |
| `--image=path` | Takes a path to a disk image file or block device node. If specified all operations are applied to file system in the indicated disk image. This is similar to `--root=` but operates on file systems stored in disk images or block devices. The disk image should either contain just a file system or a set of file systems within a GPT partition table. |
| `--locale=LOCALE`, `--locale-messages=LOCALE` | Sets the system locale, more specifically the `LANG=` and `LC_MESSAGES` settings. The argument should be a valid locale identifier, such as `de_DE.UTF-8`. This controls the `locale.conf` configuration file. |
| `--keymap=KEYMAP` | Sets the system keyboard layout. The argument should be a valid keyboard map, such as `de-latin1`. This controls the `KEYMAP` entry in the `vconsole.conf` configuration file. |
| `--timezone=TIMEZONE` | Sets the system time zone. The argument should be a valid time zone identifier, such as `Europe/Berlin`. This controls the `localtime` symlink. |
| `--hostname=HOSTNAME` | Sets the system hostname. The argument should be a hostname, compatible with DNS. This controls the `hostname` configuration file. |
| `--setup-machine-id` | Initialize the system's machine ID to a random ID. This controls the `machine-id` file. This option only works in combination with `--root=` or `--image=`. On a running system, machine-id is written by the manager with help from `systemd-machine-id-commit.service`. |
| `--machine-id=ID` | Set the system's machine ID to the specified value. The same restrictions apply as to `--setup-machine-id`. |
| `--root-password=PASSWORD`, `--root-password-file=PATH`, `--root-password-hashed=HASHED_PASSWORD` | Sets the password of the system's root user. This creates/modifies the `passwd` and `shadow` files. This setting exists in three forms: `--root-password=` accepts the password to set directly on the command line, `--root-password-file=` reads it from a file and `--root-password-hashed=` accepts an already hashed password on the command line. |
| `--root-shell=SHELL` | Sets the shell of the system's root user. This creates/modifies the `passwd` file. |
| `--kernel-command-line=CMDLINE` | Sets the system's kernel command line. This controls the `/etc/kernel/cmdline` file which is used by kernel-install. |
| `--prompt-locale`, `--prompt-keymap`, `--prompt-timezone`, `--prompt-hostname`, `--prompt-root-password`, `--prompt-root-shell` | Prompt the user interactively for a specific basic setting. Note that any explicit configuration settings specified on the command line take precedence, and the user is not prompted for it. |
| `--prompt` | Query the user for locale, keymap, timezone, hostname, root's password, and root's shell. |
| `--copy-locale`, `--copy-keymap`, `--copy-timezone`, `--copy-root-password`, `--copy-root-shell` | Copy a specific basic setting from the host. This only works in combination with `--root=` or `--image=`. |
| `--copy` | Copy locale, keymap, time zone, root password and shell from the host. |
| `--force` | Write configuration even if the relevant files already exist. Without this option, systemd-firstboot doesn't modify or replace existing files. Note that when configuring the root account, even with this option, systemd-firstboot only modifies the entry of the "root" user, leaving other entries in `/etc/passwd` and `/etc/shadow` intact. |
| `--reset` | If specified, all existing files that are configured by systemd-firstboot are removed. Note that the files are removed regardless of whether they'll be configured with a new value or not. This operation ensures that the next boot of the image will be considered a first boot, and systemd-firstboot will prompt again to configure each of the removed files. |
| `--delete-root-password` | Removes the password of the system's root user, enabling login as root without a password unless the root account is locked. Note that this is extremely insecure and hence this option should not be used lightly. |
| `--welcome=` | Takes a boolean argument. By default when prompting the user for configuration options a brief welcome text is shown before the first question is asked. Pass false to this option to turn off the welcome text. |
## Delete existing settings
If the following files are present, systemd-firstboot will not prompt for the setting they relate to.
```sh
rm /etc/{machine-id,localtime,hostname,shadow,locale.conf}
```
Edit `/etc/passwd` and remove the root account from it, otherwise the root will be treating as configured and systemd-firstboot will not prompt for the root password.

View file

@ -0,0 +1,6 @@
---
obj: application
---
# systemd-inhibit
#wip

View file

@ -0,0 +1,6 @@
---
obj: application
---
# systemd-resolve
#wip

View file

@ -0,0 +1,9 @@
---
obj: application
arch-wiki: https://wiki.archlinux.org/title/Systemd-timesyncd
---
# systemd-timesyncd
#wip
timedatectl

View file

@ -0,0 +1,6 @@
---
obj: application
---
# userdbctl
#wip