Preseed Ubiquity 成功命令执行不完整

Preseed Ubiquity 成功命令执行不完整

我目前正在构建 Ubuntu 16.04 桌面的自动安装。作为预置文件中的自定义命令,我使用此命令

# Custom Commands
ubiquity ubiquity/success_command \
     string mkdir /target/install/; \
     cp -R /cdrom/scripts/* /target/install/; \
     chroot /target chmod +x /install/postinstall.sh; \
     chroot /target bash /install/postinstall.sh;

postinstall.sh有此内容

# Install Chrome
cd /install
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
dpkg -i google-chrome-stable_current_amd64.deb
# Delete Chrome install
rm google-chrome-stable_current_amd64.deb

但 Chrome 并未安装。脚本本身已成功复制到/install并标记为可执行文件

希望有人知道我的错误出在哪里。

答案1

或许 :

chroot /target bash /install/postinstall.sh;

反而 :

chroot /target bash -c "/install/postinstall.sh";

以下对我有好处(xubuntu 18.04):

bash -c "/cdrom/tools/run.sh";

我使用 isocreator(cubic),如果我想为我的安装程序添加其他 deb 文件,我会使用 preseed 来自动安装系统。

答案2

Chrome 安装程序可能会询问问题,也许在安装命令中添加“是”?

是 | dpkg -i google-chrome-stable_current_amd64.deb

或者

apt-get -y 安装 google-chrome-stable_current_amd64.deb

答案3

它不会自动启动,您应该将其放在 rc.local 中,以便在后台第一次登录后启动。

如果您想将其作为安装过程的一部分,那么您需要将 dep 文件添加到 cdrom/pool/extras。

一个快速的解决方案是:

压力:
ubiquity ubiquity/success_command 字符串 \
cp -a /cdrom/preseed/install.sh /target/root/install.sh; \
sed -i 's_exit 0_sh /root/install.sh_' /target/etc/rc.local

并且在脚本中完成后只需将其从 rc.local 中删除:

脚本:
sed -i 's_sh /root/install.sh_exit 0_' /etc/rc.local

我希望这是有意义的:)

相关内容