Am 23.11.2016 um 14:30 schrieb Michael Biebl: > I'm going to reassign this to initramfs-tools as it uses mount > implementations from either klibc-utils or busybox which are both > incomplete and as a result, fail to mount /usr. > > I decided against reassigning this to busybox and klibc-utils. > I think it's preferable, if initramfs-tools simply uses the mount > implementation from the real systemd, i.e. util-linux. This guarantees > that we won't run into such problems again in the future. > > The mount utility is tiny, all its library dependencies are already in > the initramfs. Rebuilding the initramfs with mount from u-l increases > the size by 17K. > > We would also have to make sure to use mount --move in > /usr/share/initramfs-tools/init for /run, /sys and /proc > > Ben, what's your take on this? Something like the attached patch should do the trick. I wonder though, if we should use the other tools from mount as well, like umount, swapon/off Feedback welcome. -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth?
From dd370d9b7242624f67e6263177997446e01705ba Mon Sep 17 00:00:00 2001 From: Michael Biebl <biebl@debian.org> Date: Wed, 23 Nov 2016 15:54:38 +0100 Subject: [PATCH] Use mount implementation from util-linux It's also used on the real system and seems to be the only complete implementation. Closes: #845302 --- debian/control | 2 +- hooks/mount | 23 +++++++++++++++++++++++ init | 6 +++--- 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100755 hooks/mount diff --git a/debian/control b/debian/control index fc9cb7b..813fde5 100644 --- a/debian/control +++ b/debian/control @@ -25,7 +25,7 @@ Package: initramfs-tools-core Architecture: all Multi-Arch: foreign Recommends: ${busybox:Recommends} -Depends: klibc-utils (>= 2.0.4-8~), cpio, kmod | module-init-tools, udev, ${misc:Depends} +Depends: klibc-utils (>= 2.0.4-8~), mount, cpio, kmod | module-init-tools, udev, ${misc:Depends} Suggests: bash-completion Breaks: initramfs-tools (<< 0.121~) Replaces: initramfs-tools (<< 0.121~) diff --git a/hooks/mount b/hooks/mount new file mode 100755 index 0000000..1464533 --- /dev/null +++ b/hooks/mount @@ -0,0 +1,23 @@ +#!/bin/sh + +PREREQ="klibc-utils" + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +prereqs) + prereqs + exit 0 + ;; +esac + +. /usr/share/initramfs-tools/hook-functions + +# We pulled in klibc-utils, to make sure we run after it, +# so we can replace the symlink +rm -f ${DESTDIR}/bin/mount +copy_exec /bin/mount + diff --git a/init b/init index 9552e5c..886a55e 100755 --- a/init +++ b/init @@ -248,7 +248,7 @@ run_scripts /scripts/init-bottom [ "$quiet" != "y" ] && log_end_msg # Move /run to the root -mount -n -o move /run ${rootmnt}/run +mount -n --move /run ${rootmnt}/run validate_init() { run-init -n "${rootmnt}" "${1}" @@ -299,8 +299,8 @@ unset forcefsck unset fsckfix # Move virtual filesystems over to the real filesystem -mount -n -o move /sys ${rootmnt}/sys -mount -n -o move /proc ${rootmnt}/proc +mount -n --move /sys ${rootmnt}/sys +mount -n --move /proc ${rootmnt}/proc # Chain to real filesystem exec run-init ${drop_caps} ${rootmnt} ${init} "$@" <${rootmnt}/dev/console >${rootmnt}/dev/console 2>&1 -- 2.10.2
Attachment:
signature.asc
Description: OpenPGP digital signature