下载
从此位置下载Ubuntu服务器ISO文件。您可以选择32位或64位版本。服务器版的文件名将类似于以下内容:
ubuntu-13.10-server-i386.iso
ubuntu-13.10-server-amd64.iso
~/Downloads/
作为我们所有工作的目录。
初始设置
这将在你的Downloads目录下创建两个文件夹"iso"和"isoNew",挂载ISO并将"iso"中的内容复制到"isoNew"以启动一个新项目。# Ubuntu custom server
# rinzwind askubuntu.com
# topic: http://askubuntu.com/questions/409607/how-to-create-a-customized-ubuntu-server-iso/409651#409651
cd ~/Downloads/
mkdir -p iso newIso
sudo mount -o loop ./ubuntu-13.10-server-amd64.iso ./iso
sudo cp -r ./iso/* ./newIso/
sudo cp -r ./iso/.disk/ ./newIso/
sudo umount ./iso/
cd ~/Downloads/newIso/
mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only
这将看起来像以下示例图像:
执行:
结果:
添加启动菜单选项
安装程序的菜单选项存储在isolinux/txt.cfg
中,您可以在default install
和label install
之间创建新的选项。
这将创建一个名为“安装自定义Ubuntu服务器”的新选项,并添加一个kickstart文件(kickstart文件用于更改选项;下面会解释):
label myownoption
menu label ^Install Custom Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/preseed/ks-custom.cfg --
myownoption
只是一个标签,你可以用它来识别你的选项。default install
改为default myownoption
。示例:
Kickstart(图形化设置配置文件)
红帽Kickstart安装方法主要(但不仅限于)用于自动执行未经管制的操作系统安装和配置,适用于红帽企业Linux操作系统。
Ubuntu的预先配置/ Kickstart文档。 Ubuntu对kickstart(和预先配置)的支持有限; 其中缺少的是预先配置的图形界面。 Kickstart 确实有这些选项(参见图像),但这些在Ubuntu上似乎无法正常工作。 您可以手动完成此操作(请参阅下面的预设)。
安装并启动kickstart:
sudo apt-get install system-config-kickstart
ksconfig
** 警告 **
在Ubuntu 13.10中,kickstart存在错误,并且在启动时出现错误。这里有一个修复方法。将补丁放入注释中的文本文件中,保存(我将其命名为“patch”)并提交:
ksconfig
就可以正常工作了,并且它会启动一个配置编辑器,允许您对许多选项进行操作。
ks.cfg
文件中,并将其复制到我们正在更改的ISO中。sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
ks-custom.cfg
在~/Downloads/newIso/preseed/
中。示例,我插入了我的凭据。我从命令行以sudo ksconfig
开始。
sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
myownoption
更改为您使用的选项。现在来更改设置。使用debconf-utils
中的debconf-get-selections
,您可以查看特定软件可用的参数。
设置示例:
离线安装
如果您添加的软件包不在ISO文件中,安装程序将从软件仓库下载这些软件包。如果您没有有效的互联网连接,这可能会成为问题,因此您需要将所有这些软件包(以及其依赖项)添加到您的项目中并刻录到DVD中。幸运的是,普通服务器ISO文件有很多空间,但请注意:CD和/或DVD的大小是有限的。
下载您所需的所有DEB软件包并将它们存储在~/Downloads/
中。新ISO文件中需要这两个目录:
mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386
mkdir -p ~/Downloads/newIso/pool/extras/
sudo cp ~/Downloads/*.deb newIso/pool/extras/
cd ~/Downloads/newIso
sudo apt-ftparchive packages ./pool/extras/ > dists/stable/extras/binary-i386/Packages
sudo gzip -c ./dists/stable/extras/binary-i386/Packages | tee ./dists/stable/extras/binary-i386/Packages.gz > /dev/null
cd ~/Downloads/
创建ISO
cd ~/Downloads/
sudo md5sum `find ! -name “md5sum.txt” ! -path “./isolinux/*” -follow -type f` > md5sum.txt
sudo mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -o ./ubuntu-13.10-myowninstall-amd64.iso -joliet-long newIso/
结果:
漏洞狩猎
在安装过程中遇到了1个问题:默认选项未被选择。
Shadin。来自你的评论中的种子文件
### Package Selection
tasksel tasksel/first multiselect Custom-Ubuntu-Server
d-i pkgsel/include string openssh-server build-essential
%packages openssh-server postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
### Package Selection
tasksel tasksel/first multiselect lamp-server
d-i pkgsel/include string openssh-server build-essential postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3