Skip to content

valr/initsystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Initsystem

An init system (what a surprise!) for Arch Linux

Installation

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).

Documentation

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:

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.

Initramfs

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.

Packages

  • 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.

About

An init system for Arch Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published