An init system (what a surprise!) for Arch Linux
Build the initsystem package in the archlinux directory (using makepkg script).
Build all the packages in the packages/initsystem and packages/core directories.
mkinitcpio has to be configured with parameter COMPRESSION="cat"
or COMPRESSION="gzip"
in /etc/mkinitcpio.conf. The initramfs and related tools in this repo only support gzip or uncompressed format.
Install the initsystem and busybox packages.
Configure your hostname, keymap, font and services in /etc/rc.conf.
Configure your bootloader to use init=/sbin/init-og.
Reboot into your new initsystem.
Install eudev, systemd (minimal) and systemd-tmpfiles (standalone) packages. This will replace the official systemd and systemd-libs packages. Then install all the packages in the packages/core directory.
If needed, build and install the packages in the packages/extra directory (carefully follow the build dependencies!).
Additionally, you should add 'initsystem' to the IgnoreGroup entry of /etc/pacman.conf to avoid unneeded upgrade of the initsystem packages. All packages in the packages directories should be added to the IgnorePkg entry for the same reason.
Finally, review and adapt your configuration to remove the systemd specific parameters, files, ... (there are just too many to list them all).
Initsystem is a very simple init system for Arch Linux.
It is based on busybox and shell scripts.
The init process is a small C program responsible to:
- run the startup script /etc/rc and shutdown script /etc/rc.shutdown
- run the /etc/rc.respawn script to (re)spawn getty's and invoke the login commands
- reap the zombie processes
The initsystem and services are configured in /etc/rc.conf.
Extra commands can be configured in /etc/rc.local and /etc/rc.shutdown.local.
The system can be stopped/restarted using one of the commands: halt, poweroff or reboot.
Alternative commands are shutdown -h, shutdown -p or shutdown -r respectively.
The initramfs is also based on busybox and shell scripts.
It is generated by a pacman hook script.
It includes the modules and firmwares discovered by the Arch Linux initramfs.
- Statically compiled busybox with almost all commands included.
- The device manager is eudev from Gentoo Linux.
- A minimal systemd package is created to:
- provide fake but necessary dependencies on systemd, systemd-libs, libsystemd, systemd-sysvcompat
- provide standard directories (modules-load.d, sysctl.d, tmpfiles.d, systemd unit directories)
- provide standard systemd tmpfiles files
- provide a compare tool run as pacman pre & post hook scripts allowing follow-up of additions, changes, deletions of systemd unit files
- The tmpfiles utility is a standalone build of systemd-tmpfiles.
- Users and groups are managed manually. There is no replacement for systemd-sysusers.