用U盘装系统的方案有很多,比如用UltraISO往U盘写入系统镜像、比如用U盘的工厂工具把linux的iso镜像量产进U盘、比如用isohybrid把原版iso镜像做成混合镜像后再用dd命令把linux镜像写入U盘。具体可以看这篇文章。今天讲一种添加自动应答文件后,无人值守安装的方法。
制作无人值守安装linux系统U盘步骤如下。
创建要用到的挂载点
挂载安装镜像ISO
mount -o loop CentOS-6.8-x86_64-bin-DVD1.iso /mnt/iso/
给U盘分区(这里,我的U盘被识别为/dev/sdb)
图中是一个8GU盘分区的步骤,我实际使用的是一个4G U盘。我给U盘分了两个主分区,一个122M用来存放启动文件(实际64M已经完全够用),剩下的空间全部分配给了/dev/sdb2,用来存放ISO文件。最后记得按W键保存并应用分区动作。
格式化第一个分区为DOS分区
格式化第二个分区为ext2
mkfs.ext2 /dev/sdb2
分别挂载
mount /dev/sdb1 /mnt/usb1
mount /dev/sdb2 /mnt/usb2
复制isolinux目录到DOS分区并重命名
cp -a /mnt/iso/isolinux /mnt/usb1/syslinux
复制自动应答文件到DOS分区
cp -a /root/anaconda-ks.cfg /mnt/usb1
复制安装镜像到U盘第二分区
cp -a CentOS-6.8-x86_64-bin-DVD1.iso /mnt/usb2
查看usb分区情况
此时发现/mnt/usb2已经挤得塞不下一个逗号了,所以我得校验一下iso镜像是否完整的拷贝进来了。
md5sum的值和http://mirrors.aliyun.com/centos/6.8/isos/x86_64/md5sum.txt 对比一致。
进入DOS分区修改启动文件
cd /mnt/usb1/syslinux
mv isolinux.cfg syslinux.cfg
chmod +w syslinux.cfg
vim syslinux.cfg
default ks #默认菜单 #prompt 0 #为1时显示'boot: '提示符。为0时则不显示,将直接启动default参数中指定的内容。 timeout 600 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.8! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img label ks #主要是添加这一段 kernel vmlinuz append ks=hd:sdb1:/anaconda-ks.cfg initrd=initrd.img label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -
修改安装过程中的自动应答文件
cd /mnt/usb1
vim anaconda-ks.cfg
# Kickstart file automatically generated by anaconda. #version=DEVEL install harddrive --parttion=sdb2 --dir= lang en_US.UTF-8 keyboard us network --onboot yes --device eth0 --bootproto static --ip 192.168.2.247 --netmask 255.255.255.0 --gateway 192.168.2.1 --noipv6 --nameserver 202.96.209.5 rootpw 123456 firewall --service=ssh authconfig --enableshadow --passalgo=sha512 selinux --disabled timezone Asia/Shanghai bootloader --location=mbr --driveorder=sda # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work zerombr clearpart --all --drives=sda part /boot --fstype=ext4 --size=100 part swap --size=500 part / --fstype=ext4 --grow --size=1 reboot %packages @core @scalable-file-systems @server-policy @workstation-policy vim-common vim-enhanced vim-minimal wget lrzsz %post
写入U盘引导
把U盘插到windows机器上,这里被识别为E盘。
点击这里下载syslinux。
下载后解压,以管理员身份运行CMD,进入刚刚解压的目录。执行syslinux命令往U盘写入引导,如图
执行syslinux64 -a -m E:后,在cmd里输入diskmgmt.msc,能看到U盘的第一分区已经变为活动分区,如图
此时U盘自动安装盘制作完毕。如果要同时安装多台服务器的话,可以用dd克隆这个U盘,dd if=/dev/sdb of=/dev/sdc
最后提醒一句,做好的U盘不要拿到生产服务器上实验,因为从U盘启动后,会自动格式化第一块硬盘。
原创文章,转载请注明: 转载自笛声
本文链接地址: U盘自动安装linux系统
6 条评论
ksvalidator /mnt/usb1/anaconda-ks.cfg
检查配置文件语法。
可以专门做一个ubuntu 18.04lts server自动安装的专题吗
现在已经很少安装系统了,都是云环境,直接用镜像拉起机器。
主要还是用来安装nas系统,由于是自己组装的系统,就安装常规的发行版。普通安装还得弄个屏幕使用,可我没有屏幕,要安装系统就得要去找屏幕借。为难啊
您还是借个屏幕安装吧,我这文章也是测试了很多次才能正常自动安装的,对Ubuntu不是很熟,而且 不知道当安装程序没检测到显示器的时候 会不会继续安装。
也是,我这边多试试弄个个例。弄个脚本后,以后自动打包。