FS#42399 - [systemd] Add busybox applets to the mkinitcpio hook

Attached to Project: Arch Linux
Opened by Jean-Philippe Garcia Ballester (giga) - Thursday, 16 October 2014, 06:34 GMT
Last edited by Dave Reisner (falconindy) - Saturday, 18 June 2016, 13:02 GMT
Task Type Feature Request
Category Packages: Core
Status Closed
Assigned To Thomas Bächler (brain0)
Dave Reisner (falconindy)
Tom Gundersen (tomegun)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No


The systemd mkinitcpio hook has the following lines:

# from base
add_binary /bin/mount
add_binary /usr/bin/kmod /usr/bin/modprobe

So this means the base hook is supposed not be required when using the systemd hook.

However, the busybox applets are not installed, including /bin/sh. The utilities can be useful for units launched in the initrd, and in case the emergency target is launched (it requires /bin/sh to run, and other utilities can be useful to repair the boot).

I suggest adding the following lines, just after the above lines:

add_binary /usr/lib/initcpio/busybox /bin/busybox
for applet in $(/usr/lib/initcpio/busybox --list); do
add_symlink "/usr/bin/$applet" busybox

If the base hook is still supposed to be necessary when using the systemd hook, then the lines adding mount and kmod should be removed.
This task depends upon

Closed by  Dave Reisner (falconindy)
Saturday, 18 June 2016, 13:02 GMT
Reason for closing:  Won't fix
Additional comments about closing:  A future "sd-base" hook might offer this, but the status quo is documented.
Comment by Dave Reisner (falconindy) - Saturday, 18 June 2016, 13:02 GMT
The help for the systemd hook currently says that you can include the 'base' hook if you want a rescue shell and whatnot. If we want to make some sort of 'sd-base' hook, then that's a different story. The overlap is fine -- mkinitcpio handles this.