在 Debian 安装完成之前使用 preseed 运行脚本

Shi*_*ran 6 linux debian initrd

我试图在 Debian Wheezy 安装完成之前运行一个脚本。我知道“di preseed/late-command”,即。在安装完成之前使用运行命令。但我面临一个问题。我不知道将我的脚本复制到 iso 文件中的何处。我尝试了以下两种方法:

  1. 我尝试将脚本复制到 initrd.gz (/install.386/initrd.gz) 文件的根目录中,并在 preseed.cfg 中进行了以下更改: d-i preseed/late-command in-target sh /my_script.sh
  2. 我还尝试将我的脚本复制到 iso 文件的根目录中,并在 preseed.cfg 中进行了以下更改: d-i preseed/late-command in-target sh /media/cdrom/my_script.sh

那么,在哪里复制文件(在我的脚本中)以便我可以在后期命令中使用它?

小智 1

该解决方案基于以下事实:您使用 USB 来安装操作系统,并且 USB 根目录中将有一个名为 的文件夹,您files将在其中包含文件preseed.cfg和名为 的可执行文件run.sh

该命令会将文件复制run.sh到用户root的根目录,并在那里执行脚本。

d-i preseed/late_command string cp /cdrom/files/run.sh /target/root/; chmod +x /target/root/run.sh; in-target /bin/bash /root/run.sh

之后您可以使用rm删除该文件。您也可以直接从 USB 运行脚本(无需复制),但经过一些测试,我已经验证它会导致人为错误