Hi Henning On 13/08/2019 16.36, Henning Schild wrote: > Well it looks like the problem is the missing fstab > line. /usr/share/initramfs-tools/hooks/fsck is looking for that to > decide which fsck to include. > > There also seems to be /etc/fstab.d/*.fstab that can be used if we do > not like touching the original fstab. I think Claudius once removed / > from fstab claiming that it was not required. No, i have not touched the /etc/fstab generation code. That code goes all the way back, when multistrap was used and the fstab was generated in the config scripts. I thought about refactoring that and put the idea out, but I never did. regards, Claudius > > The package you get from that changes content based on an image > variable. That must not be done. The fstypes would have to become part > of PN or PV ... > > I think we should get that fstab line back. > > Henning > > Am Wed, 7 Aug 2019 09:59:08 +0200 > schrieb "[ext] Q. Gylstorff" : > >> From: Quirin Gylstorff >> >> During system start it shall be possible to check all available file >> systems. As debootstrap has no knowledge of the existing file system >> it will not add all fsck.* application necessary to the initramfs. >> This patch adds all file system types given by IMAGE_FILESYSTEM_TYPES >> to the initramfs. >> >> File system types in IMAGE_FILESYSTEM_TYPES are separated with spaces. >> >> Signed-off-by: Quirin Gylstorff >> --- >> meta/classes/image.bbclass | 1 + >> .../files/initramfs.fsck.hook.tmpl | 45 >> +++++++++++++++++++ .../initramfs-fsck-hook/files/postinst | >> 6 +++ .../initramfs-fsck-hook_0.1.bb | 20 +++++++++ >> 4 files changed, 72 insertions(+) >> create mode 100644 >> meta/recipes-support/initramfs-fsck-hook/files/initramfs.fsck.hook.tmpl >> create mode 100644 >> meta/recipes-support/initramfs-fsck-hook/files/postinst create mode >> 100644 >> meta/recipes-support/initramfs-fsck-hook/initramfs-fsck-hook_0.1.bb >> >> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass >> index ec6bd39..4d1feac 100644 >> --- a/meta/classes/image.bbclass >> +++ b/meta/classes/image.bbclass >> @@ -4,6 +4,7 @@ >> PF = "${PN}-${DISTRO}-${MACHINE}" >> >> IMAGE_INSTALL ?= "" >> +IMAGE_FILESYSTEM_TYPES ?= "ext4" >> IMAGE_TYPE ?= "ext4-img" >> IMAGE_ROOTFS ?= "${WORKDIR}/rootfs" >> >> diff --git >> a/meta/recipes-support/initramfs-fsck-hook/files/initramfs.fsck.hook.tmpl >> b/meta/recipes-support/initramfs-fsck-hook/files/initramfs.fsck.hook.tmpl >> new file mode 100644 index 0000000..366160a --- /dev/null >> +++ >> b/meta/recipes-support/initramfs-fsck-hook/files/initramfs.fsck.hook.tmpl >> @@ -0,0 +1,45 @@ +# This software is a part of ISAR. >> +# Copyright (C) Siemens AG, 2019 >> +# >> +# SPDX-License-Identifier: MIT >> + >> +#!/bin/sh >> +PREREQ="" >> + >> +prereqs() >> +{ >> + echo "$PREREQ" >> +} >> + >> +case $1 in >> +prereqs) >> + prereqs >> + exit 0 >> + ;; >> +esac >> + >> +. /usr/share/initramfs-tools/scripts/functions >> +. /usr/share/initramfs-tools/hook-functions >> + >> +if [ ! -x /sbin/fsck ]; then >> + echo "Warning: couldn't find /sbin/fsck!" >> + exit 0 >> +fi >> + >> +fsck_types="${IMAGE_FILESYSTEM_TYPES}" >> + >> +copy_exec /sbin/fsck >> +copy_exec /sbin/logsave >> + >> +for type in $fsck_types; do >> + if [ "$type" = "unknown" ] ; then >> + echo "Warning: couldn't identify filesystem type for >> fsck hook, ignoring." >> + continue >> + fi >> + >> + if prog="$(command -v fsck.${type})"; then >> + copy_exec "$prog" >> + else >> + echo "Warning: /sbin/fsck.${type} doesn't exist, >> can't install to initramfs, ignoring." >> + fi >> +done >> diff --git a/meta/recipes-support/initramfs-fsck-hook/files/postinst >> b/meta/recipes-support/initramfs-fsck-hook/files/postinst new file >> mode 100644 index 0000000..07bc3d9 >> --- /dev/null >> +++ b/meta/recipes-support/initramfs-fsck-hook/files/postinst >> @@ -0,0 +1,6 @@ >> +#!/bin/sh >> +# This software is a part of ISAR. >> +# Copyright (C) Siemens AG, 2019 >> +# >> +# SPDX-License-Identifier: MIT >> +update-initramfs -u >> diff --git >> a/meta/recipes-support/initramfs-fsck-hook/initramfs-fsck-hook_0.1.bb >> b/meta/recipes-support/initramfs-fsck-hook/initramfs-fsck-hook_0.1.bb >> new file mode 100644 index 0000000..e0da551 --- /dev/null >> +++ >> b/meta/recipes-support/initramfs-fsck-hook/initramfs-fsck-hook_0.1.bb >> @@ -0,0 +1,20 @@ +# This software is a part of ISAR. >> +# Copyright (C) Siemens AG, 2019 >> +# >> +# SPDX-License-Identifier: MIT >> + >> + >> +DESCRIPTION = "Recipe to add fsck hook to the initramfs" >> + >> +inherit dpkg-raw >> +SRC_URI = "file://postinst \ >> + file://initramfs.fsck.hook.tmpl \ >> + " >> + >> +TEMPLATE_VARS += "IMAGE_FILESYSTEM_TYPES" >> +TEMPLATE_FILES += "initramfs.fsck.hook.tmpl" >> + >> +do_install() { >> + install -m 0755 -d ${D}/etc/initramfs-tools/hooks >> + install -m 0740 ${WORKDIR}/initramfs.fsck.hook >> ${D}/etc/initramfs-tools/hooks/fsck.hook +} > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de PGP key: 6FF2 E59F 00C6 BC28 31D8 64C1 1173 CB19 9808 B153 Keyserver: hkp://pool.sks-keyservers.net