在工作中,我们经常需要在离线状态下安装 Ubuntu Server 和一些额外的软件包。为了加快速度,我通过预置创建了一个自定义 Ubuntu Server 安装(遵循以下文档:https://help.ubuntu.com/community/InstallCDCustomization)。安装额外的软件包很容易,而且效果很好。
除了添加一些软件包之外,我还想将另一个存储库添加到默认设置中。这似乎有点棘手。请记住,在安装时,这些计算机处于离线状态。但是,我需要将在线存储库添加到列表中,并添加其密钥。使用
d-i apt-setup/local0/repository string <repo url>
但是密钥需要离线添加。因此我下载了密钥并将其添加到 ISO(我创建了一个新的“keys”目录),认为我应该能够像 isolinux/txt.cfg 文件一样访问它(具体来说,“append file=/cdrom/preseed...”位),但我似乎无法从 preseed 文件访问 /cdrom。最简单的测试是 late_command:
d-i preseed/late_command string df > /target/home/df.txt; ls -Rl /cdrom > /target/home/cdrom.txt; ls -Rl /target/media/cdrom > /target/home/target_cdrom.txt[/CODE]
服务器安装告诉我上述命令以错误代码 -1 退出,并且这三个文件中唯一包含任何内容的文件是 df,它如下所示:
Filesystem 1K-blocks Used Available Use% Mounted on
none 205182 180 204992 0% /run
devtmpfs 1020212 8 1020204 0% /dev
/dev/sr0 1408470 1408470 0 100% /cdrom
/dev/mapper/ubuntu-root 18540428 3541660 14068568 20% /target
/dev/sda1 233191 24991 195759 11% /target/boot
/dev/mapper/ubuntu-root 18540428 3541660 14068568 20% /dev/.static/dev
devtmpfs 1020212 8 1020204 0% /target/dev
/dev/sr0 1408470 1408470 0 100% /target/media/cdrom
因此显然 /cdrom 和 /target/media/cdrom 都存在。为什么我无法从预置文件中读取它们?ISO 是否真的像 isolinux/txt.cfg 中那样挂载在那里?有没有其他方法可以添加此密钥而不需要像下面这样下载它?
d-i apt-setup/local0/key string <remote repo key url>
感谢您的帮助。
答案1
似乎当您从 iso 文件(在虚拟机中)安装时,cdrom 内容在预置中不可见,就像您上面描述的一样。只有当您实际将 iso 写入 usb 棒(首先制作 iso 混合)并从那里安装时,它才能正常工作。不知道为什么,但我认为答案隐藏在 debian-installer 的某个地方。
编辑:我还应该提到你必须安装到真正的电脑上从该 USB 记忆棒,因为如果您尝试安装到虚拟机,安装过程将因某些未知原因而中断。答案可以在 di 中找到...
凯尔,请详细说明您的安装方法是什么(在虚拟机中,从 cdrom,从 usb,......?)
也看看这个:http://www.wallix.org/2011/11/02/automatic-installation-of-debian-squeeze-from-a-usb-flash-drive/