update-initramfs 在 init-premount 中运行脚本?

update-initramfs 在 init-premount 中运行脚本?

所以,我有一台奇怪的笔记本电脑,无法从我的 USB3.0 棒正确启动。蛴螬initramfs加载,但奇迹般地,该棒未安装。如果我只是等待,机器就会进入 busybox shell。blkid没有列出我的棒。但如果我在发生这种情况之前,在正确的时间重新插入该棒,Ubuntu 就会正确启动。

所以我想,让我们自动化一下。我给自己找了一个 restart_usb shell 脚本,把它放进去/etc/initramfs-tools/scripts/init-premount,然后运行update-initramfs -u

现在到了有趣的部分:在生成新文件时执行脚本initramfs,从而重置 usb,从而使正在运行的 linux 无法访问其任何分区。只有硬重置才有用。

所以我的问题是:我怎样才能把在我们尝试挂载之前运行的脚本/放入其中initramfs而不让它被执行update-initramfs

干杯。

编辑:我正在运行 Ubuntu 14.04 的全新安装(未更新)。

答案1

我遇到了类似的问题,所以我查看了包含在 中的其他脚本initramfs。显然,“技巧”在脚本头中,它应该如下所示:

 #!/bin/sh

 set -e

 case $1 in
 prereqs)
     prereqs
     exit 0
     ;;
 esac

声明case是重要的部分。

本文档,但并未明确指出即使您不需要精确排序也必须包含此标题。

答案2

这对我有用

 sudo update-initramfs -u 

相关内容