[PATCH compass-ci] container/dracut-initrd: add basename into openeuler's 21xx+ kernel

[why] It seems openeuler 21xx+ kernel not support cmd basename, our overlay need this cmd, so add basename into dracut module to enable initrd. [errlog] //lib/dracut/hooks/pre-pivot/10-overlay-mount.sh: line 50: basename: command not found //lib/dracut/hooks/pre-pivot/10-overlay-mount.sh: line 65: basename: command not found Signed-off-by: Xu Xijian <hdxuxijian@163.com> --- container/dracut-initrd/bin/setup-dracut.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/container/dracut-initrd/bin/setup-dracut.sh b/container/dracut-initrd/bin/setup-dracut.sh index 45e895c..494588a 100755 --- a/container/dracut-initrd/bin/setup-dracut.sh +++ b/container/dracut-initrd/bin/setup-dracut.sh @@ -17,7 +17,7 @@ cp -a /usr/local/bin/cifs-lib.sh /usr/lib/dracut/modules.d/95cifs/ cat overlay-lkp.sh >> /usr/lib/dracut/modules.d/90overlay-root/overlay-mount.sh sed -i "/install() {/a\ inst /usr/bin/awk" /usr/lib/dracut/modules.d/40network/module-setup.sh -sed -i "/install() {/a\ inst /sbin/mke2fs" /usr/lib/dracut/modules.d/98dracut-systemd/module-setup.sh +sed -i "/install() {/a\ inst /sbin/mke2fs /usr/bin/basename" /usr/lib/dracut/modules.d/98dracut-systemd/module-setup.sh pre_mount_file="/usr/lib/dracut/modules.d/98dracut-systemd/dracut-pre-mount.sh" [ "$(sed -n '$p' $pre_mount_file)" = "exit 0" ] && sed -i '$d' "$pre_mount_file" cat set-local-sysroot.sh >> "$pre_mount_file" -- 2.23.0

can we install the pkg which contains basename in bin/setup-dracut.sh? just like cifs-utils? yuchuan@crystal ~% yum provides basename Last metadata expiration check: 0:00:04 ago on Thu 11 Mar 2021 05:10:46 PM CST. coreutils-8.31-4.oe1.aarch64 : A set of basic GNU tools commonly used in shell scripts Repo : @System Matched from: Filename : /usr/bin/basename Provide : /bin/basename coreutils-8.31-4.oe1.aarch64 : A set of basic GNU tools commonly used in shell scripts Repo : OS Matched from: Filename : /usr/bin/basename Provide : /bin/basename coreutils-8.31-4.oe1.aarch64 : A set of basic GNU tools commonly used in shell scripts Repo : everything Matched from: Filename : /usr/bin/basename Provide : /bin/basename -------- Thanks Yu Chuan On Thu, Mar 11, 2021 at 03:57:02PM +0800, Xu Xijian wrote:
[why] It seems openeuler 21xx+ kernel not support cmd basename, our overlay need this cmd, so add basename into dracut module to enable initrd.
[errlog] //lib/dracut/hooks/pre-pivot/10-overlay-mount.sh: line 50: basename: command not found //lib/dracut/hooks/pre-pivot/10-overlay-mount.sh: line 65: basename: command not found
Signed-off-by: Xu Xijian <hdxuxijian@163.com> --- container/dracut-initrd/bin/setup-dracut.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/container/dracut-initrd/bin/setup-dracut.sh b/container/dracut-initrd/bin/setup-dracut.sh index 45e895c..494588a 100755 --- a/container/dracut-initrd/bin/setup-dracut.sh +++ b/container/dracut-initrd/bin/setup-dracut.sh @@ -17,7 +17,7 @@ cp -a /usr/local/bin/cifs-lib.sh /usr/lib/dracut/modules.d/95cifs/
cat overlay-lkp.sh >> /usr/lib/dracut/modules.d/90overlay-root/overlay-mount.sh sed -i "/install() {/a\ inst /usr/bin/awk" /usr/lib/dracut/modules.d/40network/module-setup.sh -sed -i "/install() {/a\ inst /sbin/mke2fs" /usr/lib/dracut/modules.d/98dracut-systemd/module-setup.sh +sed -i "/install() {/a\ inst /sbin/mke2fs /usr/bin/basename" /usr/lib/dracut/modules.d/98dracut-systemd/module-setup.sh pre_mount_file="/usr/lib/dracut/modules.d/98dracut-systemd/dracut-pre-mount.sh" [ "$(sed -n '$p' $pre_mount_file)" = "exit 0" ] && sed -i '$d' "$pre_mount_file" cat set-local-sysroot.sh >> "$pre_mount_file" -- 2.23.0

On Thu, Mar 11, 2021 at 05:11:41PM +0800, Yu Chuan wrote:
can we install the pkg which contains basename in bin/setup-dracut.sh? just like cifs-utils?
yuchuan@crystal ~% yum provides basename Last metadata expiration check: 0:00:04 ago on Thu 11 Mar 2021 05:10:46 PM CST. coreutils-8.31-4.oe1.aarch64 : A set of basic GNU tools commonly used in shell scripts Repo : @System Matched from: Filename : /usr/bin/basename Provide : /bin/basename
coreutils-8.31-4.oe1.aarch64 : A set of basic GNU tools commonly used in shell scripts Repo : OS Matched from: Filename : /usr/bin/basename Provide : /bin/basename
coreutils-8.31-4.oe1.aarch64 : A set of basic GNU tools commonly used in shell scripts Repo : everything Matched from: Filename : /usr/bin/basename Provide : /bin/basename
-------- Thanks Yu Chuan
There are 2 concepts: install into debian:dracut docker and into initrd. I think what you want to express is to install into debian:dracut docker, actually /usr/bin/basename exists in this docker, however nobody before installed /usr/bin/basename into initrd, so initrd lack of basename. Btw, when we install a tool into initrd, minimal is expected, so just add /usr/bin/basename is better. Thanks, Xijian
On Thu, Mar 11, 2021 at 03:57:02PM +0800, Xu Xijian wrote:
[why] It seems openeuler 21xx+ kernel not support cmd basename, our overlay need this cmd, so add basename into dracut module to enable initrd.
[errlog] //lib/dracut/hooks/pre-pivot/10-overlay-mount.sh: line 50: basename: command not found //lib/dracut/hooks/pre-pivot/10-overlay-mount.sh: line 65: basename: command not found
Signed-off-by: Xu Xijian <hdxuxijian@163.com> --- container/dracut-initrd/bin/setup-dracut.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/container/dracut-initrd/bin/setup-dracut.sh b/container/dracut-initrd/bin/setup-dracut.sh index 45e895c..494588a 100755 --- a/container/dracut-initrd/bin/setup-dracut.sh +++ b/container/dracut-initrd/bin/setup-dracut.sh @@ -17,7 +17,7 @@ cp -a /usr/local/bin/cifs-lib.sh /usr/lib/dracut/modules.d/95cifs/
cat overlay-lkp.sh >> /usr/lib/dracut/modules.d/90overlay-root/overlay-mount.sh sed -i "/install() {/a\ inst /usr/bin/awk" /usr/lib/dracut/modules.d/40network/module-setup.sh -sed -i "/install() {/a\ inst /sbin/mke2fs" /usr/lib/dracut/modules.d/98dracut-systemd/module-setup.sh +sed -i "/install() {/a\ inst /sbin/mke2fs /usr/bin/basename" /usr/lib/dracut/modules.d/98dracut-systemd/module-setup.sh pre_mount_file="/usr/lib/dracut/modules.d/98dracut-systemd/dracut-pre-mount.sh" [ "$(sed -n '$p' $pre_mount_file)" = "exit 0" ] && sed -i '$d' "$pre_mount_file" cat set-local-sysroot.sh >> "$pre_mount_file" -- 2.23.0
participants (2)
-
Xu Xijian
-
Yu Chuan