§·Centos系统光盘安装的流程
大概的了解下Centos的光盘系统安装流程:
1.插入光盘,出现菜单选择界面;通常情况下我们选择第一项:
第一项 : Install or upgrade an existing system
2.默认进入图形界面安装并且进行一些必要的环境设置(安装前的配置阶段)
需要我们手工设置的项目
比如:
安装过程使用的语言
键盘类型
安装目标存储设备
Basic Storage:本地磁盘
特殊设备:iSCSI
设定主机名
配置网络接口
时区
管理员密码
设定分区方式及MBR的安装位置
创建一个普通用户
选定要安装的程序包
3.点击开始安装后,系统就自动安装系统(安装阶段)
在目标磁盘上创建分区并执行格式化
将选定的程序包安装至目标目录
安装 bootloader;(可以在安装前设置安装脚本,还可以在安装后设置安装脚本)
4.首次启动,系统需要的工作。
iptables 防火墙是否启用
selinux 是否启用
coer dump 核心转存功能(在内核崩溃的那一刻,把内存中所有的数据生成一个镜像文件)
§·Centos光盘流程问题分析
※·光盘是如何启动的?光盘启动的大概流程是如何的?
回顾Centos启动流程,POST加电自检,启动设备为光盘启动,读取光盘的bootloader程序,加载相应的驱动识别光盘,光盘上使用相应的 grub.conf文件生成菜单界面,通过grub程序找到光盘的kernel 与 initrd文件,启动相应的系统。
[root@centos68 isolinux]# pwd /mnt/cdrom/isolinux [root@centos68 isolinux]# ll total 44418 -r--r--r--. 1 root root 2048 May 23 07:51 boot.cat #提供MBR功能 -r--r--r--. 2 root root 84 May 22 14:06 boot.msg #某个程序 -r--r--r--. 2 root root 321 May 22 14:06 grub.conf #配置文件 -r--r--r--. 4 root root 40688737 May 22 14:06 initrd.img #initrd文件系统 -r--r--r--. 2 root root 24576 May 23 05:21 isolinux.bin #提供stage2功能 -r--r--r--. 2 root root 923 May 22 14:06 isolinux.cfg #提供菜单功能 -r--r--r--. 2 root root 183012 May 22 14:06 memtest #内存测试程序 -r--r--r--. 2 root root 151230 May 22 14:06 splash.jpg #背景图片 -r--r--r--. 1 root root 2215 May 23 07:51 TRANS.TBL -r--r--r--. 2 root root 163728 May 22 14:06 vesamenu.c32 -r-xr-xr-x. 4 root root 4264528 May 22 14:06 vmlinuz #内核文件
光盘上引导加载器(MBR bootloader): /mnt/cdrom/isolinux/iboot.cat
光盘上 stage2 : /mnt/cdrom/isolinux/isolinux.bin
光盘上 kernel文件为: /mnt/cdrom/isolinux/ivmlinuz
光盘上 initrd文件为: /mnt/cdrom/isolinux/iinitrd.img
※·菜单界面是如何实现与配置的?
既然光盘上提供了相应的引导程序,内核文件,initrd文件,光盘就相当于一个系统。
对应的菜单两个文件: grub.cfg isolinux.cfg
◎·cat grub.conf文件内容查看
#文件内容一句没有看懂
[root@centos68 isolinux]# cat grub.conf #debug --graphics default=0 splashimage=@SPLASHPATH@ timeout 5 hiddenmenu title @PRODUCT@ @VERSION@ kernel @KERNELPATH@ initrd @INITRDPATH@ title Install system with basic video driver kernel @KERNELPATH@ nomodeset askmethod initrd @INITRDPATH@ title rescue kernel @KERNELPATH@ rescue askmethod initrd @INITRDPATH@
◎·cat isolinux.cfg文件内容查看
#可以大概看出一点东西
[root@centos68 isolinux]# cat isolinux.cfg default vesamenu.c32 #prompt 1 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 #内核的文件的(cdrom:/isolinux/ivmlinuz) append initrd=initrd.img #内核的文件的(cdrom:/isolinux/initrd.img ) #append 关键字后面跟的是kenerl的参数选项 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 - [root@centos68 isolinux]#
※·系统安装配置阶段是如何提供的?
选择对应的操作菜单后,启动第一个程序,程序名称为 anaconda程序,anaconda程序提供系统安装的全套安装界面的和选项,也是我们重点需要了解一下。
anaconda程序默认情况使用图形界面,并且以交互式的方式安装系统。
anaconda程序可实现通过配置文件自动化的安装系统,不需要人为的参与,以下了解下 anaconda程序。
§·小结光盘安装系统流程
※·Centos的安装过程启动流程:光盘为例:
1 . MBR : boot.cat(光盘上的引导加载器) /isolinux/boot.cat
2. stage2 : /isolinux/isolinux.bin
3. 配置文件: /isolinux/isolinux.cfg 提供菜单列表
每个对应的菜单选项:
kernel vmlinuz
append initrd=initrd.img
加载内核: isolinux/vmlinuz
向内核传递参数:append initrd=initrd.img
4. 装载根文件系统,并启动 anaconda
默认界面的图形界面: 512M+内存空间
若需要显示指定TUI接口:向启动内核传递一个参数: text 即可;
通过label来指定需要哪个, 来调用传递内核参数:
ESC,
boot : linux text
※·注意:
·上述内容一般位于引导设备,例如可通过光盘,U盘或网络等,后续的anacona及其安装用的程序可以来至于程序包仓库,此仓库的位置可以为:
本地磁盘 本地硬盘 ftp server http server nfs server
如果想手动的指定安装仓库:
ESC
boot: linux method
·在此配置界面我们还可以指更多的配置:
#anacona配置文件的的文件路径 ks=cdrom:/ks.cfg
#启动网卡功能配置固定的IP地址 ip=172.16.200.91 netmask=255.255.0.0
boot: text 文本安装方式
method : 手动指定使用的安装方法
与网络相关的引导选项: ip=IPADDR netmask=MASK gateway=GW dns=DNS_SERVER_IP
与远程访问功能相关的引导选项:vnc vncpassword=“PASSWORD”
启动紧急救援模式: rescue
额外装载驱动:dd
安装引导选项:ks : 指明klckstart文件的位置:
ks=
DVD drive : ks=cdron:/PATH/TO/klckstart_FILE
Hard drive : ks=hd:/device/path/klckstart_FILE
http service : ks=http://host:port/path/to/klckstart_FILE
ftp service : ks=ftp://host:port/path/to/klckstart_FILE
查看帮助文件 红帽官方帮助文档(installtion guide)
系统安装完成后:会在家目录下生产 anaconda-ks.cfg 配置文件
§·anacona程序的介绍和相关命令
※·anaconda :安装的界面有两种
tui : 文本窗口,基于cureses的文本编辑窗口;(方法为: ESC boot: linux text )
gui : 图形界面 (默认安装界面)
※·anaconda 工作过程
·安装前配置阶段:
安装过程中使用的语言;
键盘类型;
安装目标的存储设备:
basic storage : 本地磁盘
sperclal storage : ISCSI
设定主机名
设置网络接口
时区
管理员密码
设定分区及其Mbr的安装位置
创建一个普通用户
选定要安装的程序包
·安装阶段:
在目标磁盘上创建分区并执行格式化
将选定的程序包安装至目标目录
安装 bootloader;
(可以在安装前设置安装脚本,还可以在安装后设置安装脚本)
※·anaconda配置方式
(1)交互式配置方式;
图形界面下一步,下一步即可。
(系统安装完成在 /boot目录下自动生成一个文件名为 )
[root@centos68 ~]# ll -h /root/anaconda-ks.cfg -rw-------. 1 root root 1.5K Jul 19 18:21 /root/anaconda-ks.cfg [root@centos68 ~]#
(2)可支持通过配置文件中事先定义好的配置项目自动完成配置;
遵循特性的语法特性,此文件即为klckstatr文件;
※·anaconda-ks.cfg 配置文件的结构
◎·命令段:
指定各种安装前配置选项,如键盘类型等;
必备命令:
可选命令
*·必备命令:
1. 认证方式配置 :authconfig –enableshadow –passalgo=sha512
2. 定义bootloader的安装位置及其相关配置:
bootloader –location=mbr –driveorder=sda –append="crashkernel=auto rhgb quiet"
3. 设定键盘类型: keyboard us
4. 语言类型:lang en_US.UTF-8
5 分区布局(默认单位为M):part /boot –fstype=ext4 –size=200
part pv.008002 –size=51200 (启用逻辑卷)
6. 管理员密码:
rootpw –iscrypted $6$E8EbPn1qzCb.2X3c$w8zyZZf.cDBsJkcRTr22Z2wCqtlA4Ae.OE7RfKvGZJSmN4/
生成加密密码的命令: openssl passed -1 -salt `openssl rand -hex 4 `
7. 指定时区 :timezone Asia/Shanghai
8. 分区相关的命令:
clearpart –none –drives=sda :(清空磁盘分区)
vlgroup mvvg –pesize=4096 pv.008002 (创建卷组)
logvol /home –fstype=ext4 –name=lv_home –vgname=myvg –size=5120 (创建逻辑卷)
*·可选命令:
repo :指明安装时使用的reposltory
repo –name="CentOS" –baseurl=cdrom:sr0 –cost=100
url :指明安装时使用的reposltory ,但为url格式:
url –url=http://172.16.0.1/cobbler/ks_mirror/Centos-6.7-x86_64/
halt,poweroff或reboot :安装完成之后的行为:
install OR upagade (安装或升级,默认为 install)
text :文本接口 (默认为图形接口)
network :网络配置接口
network –onboot no –device eth0 –bootproto dhcp –noipv6
firewall :防火墙功能
firewall –disabled (关闭防火墙)
firewall –service=ssh (启用防火墙,放行ssh)
selinux :
selinux –disabled (禁用防火墙)
#系统安装后关闭iptables #Centos 6 : # service iptables stop # chkconfig iptables off #Centos 7 # systemctl stop firewalld.service # systemctl disable firewalld.service #系统安装后关闭 selinux # 编辑配置文件 /etc/sysconfig/selinux或/etc/selinux/config,修改SELINUX参数的值为下面其中之一: # perrissicve # disabled # 立即生效: # getenforce # setenforce 0
◎·程序包段:
指明要安装程序包,以及包组,也包括不安装的程序包;
%packages (定义程序包安装开始标志)
@group_name (安装的包组)
package (需要安装的包)
-package(不需要安装的包)
%end (定义程序包安装开始标志)
◎·脚本段:
%pre :安装前脚本
运行环境,运行安装介质上的微型linux系统环境
%post:安装后脚本
运行环境:安装完成的系统
※·定制 anaconda-ks.cfg 文件方法
·安装system-config-kickstart 软件,通过该软件生成文件。
#yum install system-config-kickstart
# system-config-kickstart
(在图形界面下使用该命令,可以打开一个图形的字符界面配置anaconda-ks.cfg文件)
·检测语法错误:
#ksvalidator anaconda-ks.cfg
使用Xshell 5的ssh可以使用图形界面的方法:记得在隧道那一行勾上转发 X11连接到即可
◎·启动system-config-kickstart软件并使用模板生成配置文件
在Xshell中直接运行 system-config-kickstart ,自动启动图形界面
[root@centos68 ~]# system-config-kickstart Xlib: extension "RANDR" missing on display "localhost:10.0". /usr/share/system-config-kickstart/kickstartGui.py:103: GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecated xml = gtk.glade.XML ("/usr/share/system-config-kickstart/system-config-kickstart.glade", domain="system-config-kickstart") Loaded plugins: fastestmirror, refresh-packagekit Loading mirror speeds from cached hostfile Failed to add groups file for repository: cdrom-tools - None Warning: Group client-mgmt-tools does not have any packages.
#system-config-kickstart启动后
只需要在对应的项目中填写事先设置好的内容,此文件为随意找的一个配置文件,使用system-config-kickstart打开后,修改下,保存文件,文件内容为:
[root@centos68 ~]# cat isolinux/ks.cfg platform=x86, AMD64, or Intel EM64T #关于CPU类型设置 #version=DEVEL # Firewall configuration #关于防火墙设置 firewall --disabled # Install OS instead of upgrade #关于系统是安装 还是升级 install # Use network installation url --url="http://10.1.0.1/cobbler/ks_mirror/CentOS-6-x86_64" repo --name="CentOS" --baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-6-x86_64 --cost=100 # Root password rootpw --iscrypted $1$kmQOkOWg$MMg7IybCJOEu0UrOv0pJd. #设置root的用户名和密码 # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --disabled # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=static --device=eth0 --ip=10.1.16.250 --netmask=255.255.0.0 --onboot=on # System bootloader configuration bootloader --append="crashkernel=auto crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda" # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all # Disk partitioning information part /boot --fstype="ext4" --size=500 part / --fstype="ext4" --size=10000 part /home --fstype="ext4" --size=1000 %post echo -e 'Mage Education Learning Services\nhttp://www.magedu.com\n' >> /etc/issue #sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab [ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod og=--- /root/.ssh cat >> /root/.ssh/authorized_keys << EOF ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlmq1z0G/7wbGuSUewfXlFnwzqCg/myqTi/AwP8LP+JJ49xzIKMzpeWXHD8RWIf5RlDzo+6N7uPK5O22x/QtMosi0egz4shavEJeUkO0EH+KygXXgBIGuMWmAsL+yzbgWXT9H3zdzXi/qWcrBeBv2nYB5mpYSf7o0xqdhCst1MTfcYLD8qxvkwC8RiqBA/1u9N6jeDFbHO+UzZYYCr9zgk9uz4Rrhb9BU7c1GhjUCgRwBDAuo47IHw/OT6KS9lb8lT2R/ujVoDARy/eOhw8cAFXo+QcvzNSW2qKf/Qo21uR/wz2u9SRV0lvUDNSvC2PYtR+iPlDwHY81md430yiNf9w== root@server.magelinux.com EOF #ClientName=`ifconfig eth0 | awk '/inet addr:/{print $2}' | awk -F. '{print $NF}'` #sed -i "s@HOSTNAME=.*@HOSTNAME=client$ClientName.magelinux.com@g" /etc/sysconfig/networks # set hosts echo '10.1.0.1 server.magelinux.com server' >> /etc/hosts # yum repo %end %packages @base @basic-desktop @chinese-support @client-mgmt-tools @core @desktop-platform @fonts @general-desktop @graphical-admin-tools @legacy-x @network-file-system-client @perl-runtime @x11 %end
§·anaconda使用网络中yum仓库自动安装系统
※·步骤一:准备简版的ISO光盘文件和ks文件
1 把光盘中 isolinux目录拷贝到/root/isolinux
[root@centos68 ~]# ll i solinux/ total 8 drwxr-xr-x. 2 root root 4096 Sep 11 20:37 isolinux #拷贝光盘上isolinux目录到/root/isolinux -rw-r--r--. 1 root root 1249 Sep 11 22:19 ks.cfg #把制作好的ks文件放在/root/isolinux 2 修改启动菜单选项
[root@centos68 isolinux]# cat grub.conf #修改grub.conf文件的部分内容 好像没有需要修改的 #debug --graphics default=0 splashimage=@SPLASHPATH@ timeout 5 hiddenmenu title @PRODUCT@ @VERSION@ kernel @KERNELPATH@ initrd @INITRDPATH@ title Install system with basic video driver kernel @KERNELPATH@ nomodeset askmethod initrd @INITRDPATH@ title rescue kernel @KERNELPATH@ rescue askmethod initrd @INITRDPATH@
3 修改菜单文件 isolinux.cfg
[root@centos68 isolinux]# cat isolinux.cfg default vesamenu.c32 #prompt 1 timeout 10 #设置菜单等待时间,600为60秒,设置的10是不是太快了,1秒不到 display boot.msg menu background splash.jpg menu title www.megedu.com #设置菜单的标题栏显示字符 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(install linux chenchenchen) #修改菜单显示的内容 menu default kernel vmlinuz append initrd=initrd.img ks=cdrom:/ks.cfg #设置KS文件的路径,注意路径不要填写有问题的 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 - [root@centos68 isolinux]#
4 查看ks.cfg文件内容
[root@centos68 ~]# cat isolinux/ks.cfg #安装前环境配置阶段 #platform=x86, AMD64, or Intel EM64T #CPU类型 #version=DEVEL # Firewall configuration firewall --disabled #关闭防火墙 # Install OS instead of upgrade install #是升级还是安装系统(默认为安装系统) # Use network installation url --url="http://10.1.0.1/cobbler/ks_mirror/CentOS-6-x86_64" #设置网络仓库 # Root password rootpw --iscrypted $1$63jPqtg3$bLyM53ziQtTP/Vu8IC.uD/ #管理员密码加密 # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # System keyboard keyboard us #键盘设置 # System language lang en_US #语言设置 # SELinux configuration selinux --disabled #selinux关闭(只是关闭该功能,并不是不安装此软件,该功能在内核中) # Installation logging level logging --level=info #日志级别 # Reboot after installation reboot #安装后重启 # System timezone timezone Africa/Abidjan #时区设置 # Network information network --bootproto=static --device=eth0 --ip=10.1.16.250 --netmask=255.255.0.0 --onboot=on #配置网卡信息 # System bootloader configuration bootloader --location=mbr #安装bootloader到MBR(可以选择安装到分区头部) # Clear the Master Boot Record zerombr #分区前清空MBR信息 # Partition clearing information clearpart --all --initlabel #分区前删除所有分区 # Disk partitioning information part /boot --asprimary --fstype="ext4" --size=500 #创建boot分区为 500M大小 part swap --fstype="swap" --size=512 #创建swap分区大小为 512M part / --fstype="ext4" --size=10000 #创建 / 分区为10G #程序包安装阶段 %packages @backup-client @base @compat-libraries @console-internet @debugging @dial-up @directory-client @hardware-monitoring @infiniband @storage-client-fcoe %end
小结:配置ks文件的时候一定要注意各项的配置,由于第一次没有设置 SWAP的分区,系统无法启动的。当系统无法启动时,好好检查是不是KS文件出了问题。
※·步骤二:通过命令mkisofs生成iso镜像文件
[root@centos68 ~]# pwd /root [root@centos68 ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos 6 x86_64 boot " -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso isolinux/ [root@centos68 ~]# ll boot.iso -rw-r--r--. 1 root root 45873152 Sep 11 22:20 boot.iso [root@centos68 ~]# 不要命令的具体的内容,记下来就好,关键的几个参数介绍下: --boot-info-table -V "Centos 6 x86_64 boot " : 设置光盘的标签 -c isolinux/boot.cat :MBR程序的文件路径 -b isolinux/isolinux.bin : stage2 程序的文件路径 -o /root/boot.iso : 生成的iso文路径和名称 isolinux/ :需要把那个目录制作成iso文件 #注意:光盘的 isolinux里面的文件拷贝出来是只读的,记得自己修改下目录权限和下面的文件权限 chmod +w isolinux/*
※·步骤三:是用生成的 boot.iso文件做为启动光盘启动系统
1.查看下开机菜单画面
2.配置IP地址
C:\Users\hasee>ping 10.1.16.250 -t 正在 Ping 10.1.16.250 具有 32 字节的数据: 来自 10.1.16.1 的回复: 无法访问目标主机。 请求超时。 请求超时。 请求超时。 请求超时。 请求超时。 请求超时。 请求超时。 请求超时。 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间=2ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64 来自 10.1.16.250 的回复: 字节=32 时间<1ms TTL=64
3.自动分区
4.自动安装包组
小结:
以上就是一个从简装光盘启动,系统安装的软件包通过网络yum仓库获取的的简单实例。
案例要点:
1.自己简版的光盘启动文件,在菜单配置文件中需要指明ks文件的的存放路径(本地和网络都可以,如果需要使用网络传送ks文件,记得需要在传递内核参数的时候把IP地址配置好),由于自己是本地的光盘提供的ks文件,所以配置网络地址这边设置的是在anaconda 启动以后。
2.KS文件的内容:
IP地址配置,网络仓库的位置,分区的规划,等等一定要注意。
3.启动后系统问题检测:
系统自动安装完成后,貌似么没有自动挂载swap,得好好检查下
原创文章,作者:linux_root,如若转载,请注明出处:http://www.178linux.com/46381
评论列表(1条)
总结的很完整,赞一个