本文主要介绍如何制作无人值守Linux安装镜像。
何为无人值守?相信装过系统的小伙伴们肯定有这么个痛楚:每次安装一个系统少则30分钟,多则几个小时,而且这漫长的时间中你就很蠢的坐在屏幕前面为的就是帮助系统选择语言,选择时区等等,而无人值守的意思就是你只需选择从镜像安装系统之后就可以出去喝咖啡了,期间不用你做任何操作。
1.软件环境:
Windows
VirtualBox
Ubuntu 16.04 Server 64bit
2.启动已经安装好的Ubuntu Server(记得在此虚拟机未启动的时候设置该虚拟机的两块网络网卡:host-only和NAT)
3.在Windows环境下下载putty
4.在步骤2启动的虚拟机命令行输入命令
ifconfig -a
查看网卡状态
如果有网卡未启动,可以手动启动并动态获取IP,使用命令
sudo ifconfig enp0s8 up
sudo dhclient enp0s8
然后重新输入命令查看网卡IP
ifconfig -a
这里我得到的IP为:192.168.56.101
5.使用刚才下载的putty连接这台虚拟机
6.我们需要把用于ubuntu16.04.1镜像文件从Windows复制进虚拟机,可以使用psftp
cd /home/cuc
put ubuntu16.04.01
这里有两个要注意的点
(1)我们的镜像文件需要放在psftp目录下
(2)如果无法识别这个镜像文件,可以改名为:1.iso
7.回到putty登录的虚拟机命令行
# 在当前用户目录下(/home/cuc)创建一个用于挂载iso镜像文件的目录
mkdir loopdir
# 挂载iso镜像文件到该目录
mount -o loop ubuntu-16.04.1-server-amd64.iso loopdir
# 创建一个工作目录用于克隆光盘内容
mkdir cd
# 同步光盘内容到目标工作目录
# 一定要注意loopdir后的这个/,cd后面不能有/
rsync -av loopdir/ cd
# 卸载iso镜像
umount loopdir
# 进入目标工作目录
cd cd/
# 编辑Ubuntu安装引导界面增加一个新菜单项入口
vim isolinux/txt.cfg
添加以下内容到该文件后强制保存退出。
label autoinstall
menu label ^Auto Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server-autoinstall.seed debian-installer/locale=en_US console-setup/layoutcode=us keyboard-configuration/layoutcode=us console-setup/ask_detect=false localechooser/translation/warn-light=true localechooser/translation/warn-severe=true initrd=/install/initrd.gz root=/dev/ram rw quiet
提前阅读并编辑定制Ubuntu官方提供的示例preseed.cfg,并将该文件保存到刚才创建的工作目录/home/cuc/cd/preseed/ubuntu-server-autoinstall.seed
修改isolinux/isolinux.cfg,增加内容timeout 10(可选,否则需要手动按下ENTER启动安装界面)
# 重新生成md5sum.txt
sudo su -
cd /home/cuc/cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt
# 封闭改动后的目录到.iso
IMAGE=custom.iso
BUILD=/home/cuc/cd/
mkisofs -r -V "Custom Ubuntu Install CD" \
-cache-inodes \
-J -l -b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table \
-o $IMAGE $BUILD
最后一个命令如果出现错误,照着提示先
apt-get update
然后
apt-get install genisoimage
这样在虚拟机(/home/cuc/cd/)这个目录下就会出现custom.iso这个镜像,使用命令
mv custom.iso ../
然后打开psftp窗口
get custom.iso
从虚拟机中将custom.iso这个镜像文件复制出来,这个文件就是我们需要的无人值Linux文件,打开VirtualBox 从custom.iso镜像中安装系统,一起体会无人值守的力量吧。