我在用预播种自动安装 Debian。
我希望能够在 Debian 安装结束时运行一个名为“run.sh”的脚本:
#!/bin/bash
touch /root/example.txt
我尝试了通过谷歌找到的几种模型(我将这些命令添加到preseed.cfg中):
d-i late_command string cp -a /cdrom/preseed/run.sh /target/root; chmod 777 /root/run.sh; /root/run.sh;
d-i preseed/late_command string \
in-target cp run.sh /root/ && in-target chmod 755 /root/run.sh \
cd /target; \
chmod +x ./run.sh; \
chroot ./ ./run.sh;
我尝试了所有我见过的方法,但我发现,没有一次我成功了。我得到的最多结果是一个红屏,上面显示“run.sh”文件已损坏的错误
答案1
该解决方案基于以下事实:您使用 USB 安装操作系统,并且 USB 的根目录中有一个名为 的文件夹,files
其中有文件preseed.cfg
和一个名为 的可执行文件run.sh
。
此命令会将文件复制run.sh
到用户的根目录根然后它将执行脚本。
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 运行脚本(无需复制),但经过一些测试,我已验证它可能会导致人为错误