如何将 early_command 与 ubiquity 结合使用

如何将 early_command 与 ubiquity 结合使用

我正在尝试进行一些自动安装,并且需要尽早运行一些命令。因此,我修改了我的 USB 安装介质(Ubuntu 16.04)并添加了:

menuentry "Install automatically" {
    set gfxpayload=keep
    linux   /casper/vmlinuz.efi file=/cdrom/auto.seed preseed/early_command=/cdrom/early.sh boot=casper auto=true automatic-ubiquity debug-ubiquity  quiet splash ---
    initrd  /casper/initrd.lz
}

解释如下: https://wiki.ubuntu.com/UbiquityAutomation 和这里https://wiki.ubuntu.com/DesktopCDOptions

我的 USB 上有一个文件 early.sh,作为我的 auto.seed 文件(加载得很好)。但似乎我的 early.sh 脚本从未运行过。

我只想将文件复制到实时系统:

#!/bin/bash
cp /cdrom/wlan /root/etc/NetworkManager/system-connections/wlan;
chmod 0600 /root/etc/NetworkManager/system-connections/wlan;

我已按照上述链接中的说明在其前面添加了 /root。我甚至尝试过:

#!/bin/bash
touch /root/test

当我在 partman 运行之前停止安装时,我得到了通常的 Live Desktop,并且我期望打开控制台并查看/root/test。但我没有。

我查看了 /var/log/syslog,可以看到启动参数,但没有关于 early_command 的更多日志行

我的预置文件包含如下行:

d-i preseed/early_command string in-target touch /root/test

我该如何调试这种情况?一遍又一遍地重新开始很烦人。

答案1

我认为无处不在的 early_command 和 late_command 根本不起作用。所以现在我使用类似

ubiquity  ubiquity/success_command string \
  cp /cdrom/script /target/root/; \
  chmod 0700 /target/root/script; \
  in-target /root/script; \

这些命令工作正常,我在重启之前设置了我的 wifi 并对我的安装进行了其他修复。

相关内容