systemd-less installation

For those of you who would like to try MintPPC without the usual default systemd, read on. In this instruction we are going to install Debian with sysvinit.

On systems based on SysVinit, init is the first process that is executed once the Linux kernel loads. The default init program used by the kernel is /sbin/init provided by systemd-sysvcompat (by default on new installs, see systemd) or sysvinit (the one we are going to install). The word init will always refer to sysvinit in this tutorial.
inittab is the startup configuration file for init located in /etc. It contains directions for init on what programs and scripts to run when entering a specific runlevel.

First we download the installer image debian-12.0.0-powerpc-NETINST-1.iso or debian-12.0.0-ppc64-NETINST-1.iso here.

If you want to do this installation in qemu, do the following, otherwise boot normally via USB or CDROM:
We first create a 10G qcow2 image:
qemu-img create -f qcow2 debian12.qcow2 10g

You will see something like this:
Formatting ‘debian12ppc.qcow2’, fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=10737418240 lazy_refcounts=off refcount_bits=16

We are now going to boot the iso in qemu (for 32 bits powerpc emulation:)
qemu-system-ppc \
-L pc-bios \
-boot d \
-M mac99 \
-m 2048 \
-prom-env 'auto-boot?=true' \
-prom-env 'boot-args=-v' \
-drive file=debian-12.0.0-powerpc-NETINST-1.iso,format=raw,media=cdrom \
-drive file=debian12ppc.qcow2,format=qcow2,media=disk \
-net nic,model=sungem \
-net user

For 64-bits, or G5 emulation installation, replace qemu-system-ppc by qemu-system-ppc64 and use the correct iso name.

Install a base system with Expert Install because grub installation fails now (28 November 2023). If installation of Grub works again in the future one might choose Default installation, but I like to know what is going on, so expert is the best.

Choose participate in the popularity contest yes, as we want the Debian people to know that we are using sysvinit instead of systemd.

In the Software selection step, comment out everything, we want a naked base installation.

As long as the installer is not able to install Grub correctly, we have to do the following hack,
otherwise skip the following step.

Just before installation of Grub, execute a shell from the menu.
chroot /target
apt-get install hfsutils

Back in the menu choose ‘Install the Grub boot loader’.
Then finish the installation.

Now boot into the new system. With qemu it is done like this:
qemu-system-ppc \
-L pc=bios \
-boot order=cd,menu=off \
-M mac99,via=pmu \
-m 2048 \
-drive file=debian-12.0.0-powerpc-NETINST-1.iso,media=cdrom \
-drive file=debian12ppc.qcow2,if=ide,media=disk \
-net nic,model=sungem \
-net user

We boot into a console. Log in as root.

We are now going to going to perform the switch from systemd to sysvinit.

Note that systemd-sysv will be REMOVED! Also note that initsripts and insserv are going to be installed.
apt install sysvinit-core sysv-rc orphan-sysvinit-scripts sysv-rc-conf
reboot (and cross fingers)

You will see that the booting now involves init scripts instead of systemd services.

Now perform the following:

apt install elogind libpam-elogind

Note that systemd will be REMOVED!


We now have a simple Debian base system, without systemd but with sysvinit running. Some people don’t want elogind, but you should definitely install it. For one, it allows running X rootless with xinit/startx, and two, it’ll actually prevent systemd and all from being reinstalled, since it satisfies the logind dependency.

The following is not necessary, but highly recommended.

Because rsyslog and bootlogd are not installed by default, you should probably install them for system and boot logging.

apt install rsyslog bootlogd

Now issue a
to see all the daemons running in all runlevels. It should look like this:

You’ll have a much better experience (and might not even encounter any problem, but don’t quote me on that) if you use apt pinning to prevent systemd from getting reinstalled. As root, create the /etc/apt/preferences.d/systemd file, and fill it with:

Package: systemd
Pin: release *
Pin-Priority: -1

Package: *systemd*
Pin: release *
Pin-Priority: -1

Package: systemd:powerpc
Pin: release *
Pin-Priority: -1

Replace powerpc by ppc64 if you are doing it in 64-bits.

Install some important system packages

apt install sudo gpg wget

Add your username to the sudoers group
usermod -aG sudo your_user_name

When the switch is done and you have rebooted, you can start installing MintPPC as set out in the manual installation page, carefully examining the output of apt install to make sure it doesn’t try to reinstall systemd.

After you performed the instructions of the manual installation page, you can deselect some unnecessary daemons in the boot with
sudo sysv-rc-conf
I deselected saned and lightdm, to make the boot faster.