我需要在完全自动化的服务器上远程安装debian系统。
如果我可以访问这台服务器上的debian操作系统镜像(通过DVD驱动器或带有Debian操作系统镜像的U盘),这将非常简单:我只需要input“boot / install”提示符PreSeed文件的URL。 但我没有访问服务器上的DVD驱动器或USB棒。
在我的情况下,我只能通过救援系统访问服务器(运行一个最小的debian)。 我知道我可以使用debootstrap 。 但问题是,使用debootstrap不是自动的,我必须先格式化光盘,挂载它们,执行debootstrap等等。
我想要做的是,login到救援系统,并调用一个“程序”像debootstrap或debian安装程序与预置文件,一切都应该自动完成。 但是debootstrap不支持预定义的文件。 而且我不知道如何在这样的救援系统环境中调用安装程序。
我怎样才能做到这一点? 是否有可能在救援系统下载一个完整的Debian ISO映像,将其解压缩到内存中,然后以某种方式调用此CD的安装程序? 但是,如何? 我必须在那里执行什么命令?
或者是有一些小工具,正是这样做,我需要调用与图像的URL和预先信息,然后安装? 如上所述,debootstrap是可以的,但我想从debian安装程序使用预先定义的文件,而无需任何手动干预。 debootstrap涉及到很多手工工作。
非常感谢您的帮助! 延
如果可能的话,我build议你自己制作一张新CD,然后邮寄或者上传给可以放在托盘上的人。 使用虚拟机来创build和testing图像,直到你可以100%非交互。 记住,你只需要最基本的function。 一个运行SSH和一个用户的系统就足够了。 其余的你可以做(仔细)远程。
我还没有用挤压做这个,但我认为这个过程是相似的。 最糟糕的情况是,你可以自动安装Lenny并升级到Squeeze。
您将需要作为预先准备的文件。 使用debconf-get-selections来产生这个。 从该命令的输出开始,并根据需要进行编辑。 请参阅Debian的官方文档,以便为安装程序提供有关预置内容的任何信息。
1) 从Debian下载ISO。
2)安装并复制CD内容
mount -o loop debian-508-amd64-netinst.iso /mnt mkdir ~/autoinstall rsync -a -H --exclude=TRANS.TBL /mnt/ ~/autoinstall/
3)编辑isolinux/isolinux.cfg并用下面的内容replace整个内容 :
default install LABEL install kernel /install.amd/vmlinuz append vga=normal initrd=/install.amd/initrd.gz preseed/file=/cdrom/preseed.txt debian-installer/locale=en_US console-keymaps-at/keymap=us -- LABEL linux kernel /install.amd/vmlinuz append vga=normal initrd=/install.amd/initrd.gz preseed/file=/cdrom/preseed.txt debian-installer/locale=en_US console-keymaps-at/keymap=us -- prompt 0 timeout 0
4)将预置的数据放在名为preseed.txt的CD映像的根目录(在本例中为~/autoinstall )。
5)build立图像。
cd ~/autoinstall/ mkisofs -o ~/autoinstall.iso -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ~/autoinstall/
您现在可以使用映像从VM启动。 在安装程序询问你的问题的任何地方,将该答案添加到pressed pressed的.txt文件,并重复步骤4和5。
继续这样做,直到你有一个可行的安装程序。 你可能会build立20-30的图像,同时调整你的预置文件,直到你做对了。 确保在pkgsel/include包含openssh-server ,并且应该能够远程login。