Liunx之Centos系统无人值守全自动化安装

摘要:
作者:邓聪聪将centos6.8自动安装ISO CD安装系统定制为centos6.8(baseserver,其余为根分区安装步骤

  作者:邓聪聪

定制centos6.8自动安装ISO光盘

  1. 安装系统为centos6.8 (base server),安装方式为全新安装
  2. 使用ext4分区格式
  3. 安装前可以交互输入root密码,主机名,分区大小,然后安装过程自动化
  4. 关闭防火墙,selinux
  5. 网络为dhcp方式获取
  6. 时区为Asia/Shanghai
  7. 分区表类型为mbr
  8. 默认设置三个分区,boot分区200M,swap分区200M,其余为根分区

安装步骤

安装制作系统镜像所需要的工具

yum -y install  mkisofs createrepo

创建光盘挂载目录、资源重构目录、自定义数据库目录

mkdir /mnt/iso (挂载光盘)
mkdir /data/iso (ISO目录)

挂载CentOS系统光盘,并复制光盘目录下的内容到其他路径下,由于光盘内容权限为“只读”,可赋予权限直接修改或者cp新文件给权限修改。

mount -o loop /data/iso/CentOS-6.8-x86_64-minimal.iso /mnt/iso

创建自响应文件 ks.cfg ,把此文件放在/data/iso/isolinux/ks.cfg

#version=DEVEL
# Firewall configuration
firewall  --disabled
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
#interactive
# Root password
rootpw --plaintext 123456
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
#text
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
network --onboot=yes --device=eth0 --bootproto=dhcp --noipv6
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part swap --fstype="swap" --size=200
part / --fstype="ext4" --grow --size=1

repo --name="CactiEZ"  --baseurl=file:///mnt/source --cost=100
%packages --nobase @core

  %post --nochroot
  mkdir -p /mnt/sysimage/tmp/cactiez >> /tmp/ins.log 2>&1
  cp /mnt/source/Packages/cactiez-x86_64.tgz /mnt/sysimage/tmp/cactiez >> /tmp/ins.log 2>&1

%post

  cd /tmp/cactiez >> /tmp/ins.log 2>&1
  tar zxvf cactiez-x86_64.tgz >> /tmp/ins.log 2>&1

  cp -rf /tmp/cactiez/var/www/html/* /var/www/html >> /tmp/ins.log 2>&1
  cp -rf /tmp/cactiez/usr/* /usr >> /tmp/ins.log 2>&1
  cp -rf /tmp/cactiez/etc/* /etc >> /tmp/ins.log 2>&1

sed -i "s/GSSAPIAuthentication no/GSSAPIAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/#UseDNS yes/UseDNS no/g" /etc/ssh/sshd_config
echo "nameserver 219.141.140.10" >> /etc/resolv.conf
/sbin/chkconfig iptables off
%end

 修改启动安装导向文件/data/iso/isolinux/isolinux.cfg,下面为修改后内容

default vesamenu.c32 
#prompt 1 
timeout 50
menu background splash.jpg 
menu title Welcome to use 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 PowerSoft OS
menu default 
kernel vmlinuz 
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img
label vesa 
menu label Install system with ^basic video driver 
kernel vmlinuz 
append initrd=initrd.img xdriver=vesa 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 -

定制ISO光盘所需的数据

.discinfo文件 一定要复制过来,建议复制完之后检查该文件是否存在!!!
rm -fr /data/iso/repodata
declare -x discinfo=$(head -1 .discinfo)
cp /mnt/iso/repodata/*-c6-minimal-x86_64.xml ./c6-minimal-x86_64.xml cd .. createrepo -g repodata/c6-x86_64-comps.xml ./

重构系统,生成ISO镜像 --用于CentOS6.此步骤需要在iso的配置文件主目录中我这里是(/data/iso/

mkisofs -o CentOS-6.5_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /data/iso/

 重构系统,生成ISO镜像 --用于CentOS 7 

genisoimage -v -cache-inodes -joliet-long -R -J -T -V CENTOS7 -o /root/centos7.iso -c isolinux/boot.cat  -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -b images/efiboot.img -no-emul-boot .

在CentOS7 中无法使用%post的参数ks.cfg配置文件如下:

#version=DEVEL
install
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
#graphical
text
# Run the Setup Agent on first boot
firstboot --disabled
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network --bootproto=dhcp --device=ens33 --onboot=yes --ipv6=auto --no-activate
network --hostname=begon

# Root password
rootpw 12345678
firewall --disabled
selinux --disabled
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
#autopart --encrypted --type=lvm
bootloader location=mbr
clearpart --all --initlabel
part swap --asprimary --fstype="swap" --size=1024
part /boot --fstype xfs --size=300
part / --fstype xfs --size=1 --grow
#Reboot after installation
reboot --eject

%packages
@^minimal
@core
kexec-tools

%end

%post
systemctl stop firewalld
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

在CentOS7 中isolinux.cfg配置文件如下:

[root@bogon isolinux]# cat isolinux.cfg 
default vesamenu.c32
timeout 30

display boot.msg

# Clear the screen when exiting the menu, instead of leaving the menu displayed.
# For vesamenu, this means the graphical background is still displayed without
# the menu itself for as long as the screen remains in graphics mode.
menu clear
menu background splash.png
menu title CentOS 7
menu vshift 8
menu rows 18
menu margin 8
#menu hidden
menu helpmsgrow 15
menu tabmsgrow 13

# Border Area
menu color border * #00000000 #00000000 none

# Selected item
menu color sel 0 #ffffffff #00000000 none

# Title bar
menu color title 0 #ff7ba3d0 #00000000 none

# Press [Tab] message
menu color tabmsg 0 #ff3a6496 #00000000 none

# Unselected menu item
menu color unsel 0 #84b8ffff #00000000 none

# Selected hotkey
menu color hotsel 0 #84b8ffff #00000000 none

# Unselected hotkey
menu color hotkey 0 #ffffffff #00000000 none

# Help text
menu color help 0 #ffffffff #00000000 none

# A scrollbar of some type? Not sure.
menu color scrollbar 0 #ffffffff #ff355594 none

# Timeout msg
menu color timeout 0 #ffffffff #00000000 none
menu color timeout_msg 0 #ffffffff #00000000 none

# Command prompt text
menu color cmdmark 0 #84b8ffff #00000000 none
menu color cmdline 0 #ffffffff #00000000 none

# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.

menu tabmsg Press Tab for full configuration options on menu items.

menu separator # insert an empty line
menu separator # insert an empty line

label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet


label check
  menu label Test this ^media & install CentOS 7
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet

label linux
  menu label ^Install CentOS7 CentOS7.4
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg

menu separator # insert an empty line

# utilities submenu
menu begin ^Troubleshooting
  menu title Troubleshooting


label vesa
  menu indent count 5
  menu label Install CentOS 7 in ^basic graphics mode
  text help
        Try this option out if you're having trouble installing
        CentOS 7.
  endtext
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 xdriver=vesa nomodeset quiet

label rescue
  menu indent count 5
  menu label ^Rescue a CentOS system
  text help
        If the system will not boot, this lets you access files
        and edit config files to try to get it booting again.
  endtext
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet

label memtest
  menu label Run a ^memory test
  text help
        If your system is having issues, a problem with your
        system's memory may be the cause. Use this utility to
        see if the memory is working correctly.
  endtext
  kernel memtest

menu separator # insert an empty line

label local
  menu label Boot from ^local drive
  localboot 0xffff

menu separator # insert an empty line
menu separator # insert an empty line

label returntomain
  menu label Return to ^main menu
  menu exit

menu end

免责声明:文章转载自《Liunx之Centos系统无人值守全自动化安装》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用chrome浏览器爬取数据CSS中使用borderradius创建圆形和胶囊形状(长圆形)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

centos7 yum快速安装php7.1

1. 安装nginx yum install nginx ##开启nginx service nginx start 2.安装MYSQLyum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm yum install mysql-commun...

Gitea安装笔记

什么是gitea Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证. 官网:https://gitea.io/zh-cn/ 为什么要用gitea 开源免费 系统要求低,节约资源 gitea的安装(centos 7源码安装) 相关环境安装 yum install -y wget yum install -...

Linux下安装Nginx并实现socket代理

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。 ububtu平台编译环境可以使用以下指令 1 2 apt-get install build-essential apt-get install libtool cen...

使用element-ui二次封装一个可复用编辑表单组件

源码:编辑表单组件 组件源码(待优化)editForm.vue: <!-- 搜索表单 --> <template> <el-form ref='editForm' :size="size" inline :label- :model="editData" :rules="editRules">...

centos使用yum安装mysql

参考:http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 1.增加yum数据源 (1.1)从http://dev.mysql.com/downloads/repo/yum/ 获取合适的数据源 (1.2)安装数据源包 shell> sudo rpm -Uvh platform-and-vers...

linux安装mysql(unrecognized service错误)

今天在Linux在安装MySQL,安装完成后却无法打开,百度找原因,试了很多方法终于解决了。 MySQL安装: [root@centos usr]# yum install mysql 无法正常启动: 查询确实已安装: 按照百度的方法启动,还是无法开启:找不到此文件 换个命令重新安装: [root@centos ~]# yum install mys...