Linux学习之路-Linux自动化系统安装【12】---20171230
2018-01-14 20:39
411 查看
安装程序
CentOS系统安装系统启动流程:
bootloader-->kernel(initramfs)-->rootfs-->/sbin/init
anaconda: 系统安装程序
>gui:图形窗口
>tui: 基于图形库curses的文本窗口
安装程序启动过程
MBR:isolinux/boot.cat
stage2: isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg
>每个对应的菜单选项:
>加载内核:isolinuz/vmlinuz
>向内核传递参数:append initrd=initrd.img ...
装载根文件系统,并启动anaconda
>默认启动GUI接口
>若是显式指定使用TUI接口:向内核传递text参数即可
>(1)按tab键,在后面增加text
>(2)按ESC键:boot: linux text
[root@Centos7/misc/cd]#cd isolinux/ [root@Centos7/misc/cd/isolinux]#ls boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz boot.msg initrd.img isolinux.cfg splash.png vesamenu.c32 [root@Centos7/misc/cd/isolinux]#hexdump -C boot.cat 00000000 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 aa 55 55 aa |.............UU.| ---->也有55 aa 标记位 00000020 88 00 00 00 00 00 04 00 e1 16 00 00 00 00 00 00 |................| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 91 ef 01 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000060 88 00 00 00 00 00 38 46 53 05 00 00 00 00 00 00 |......8FS.......| 00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000800 [root@Centos7/misc/cd/isolinux]#hexdump -C isolinux.bin ---->相当于启动阶段第2 阶段 00000000 fa ea 6c 7c 00 00 90 90 10 00 00 00 e1 16 00 00 |..l|............| 00000010 00 60 00 00 2e 8e 6c cf 00 00 00 00 00 00 00 00 |.`....l.........| 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000040 fb c0 78 70 59 2e 8f 06 28 30 2e 8f 06 2a 30 5a |..xpY...(0...*0Z| 00000050 5f 07 66 31 c0 66 31 db 81 fc 00 7c 73 04 66 58 |_.f1.f1....|s.fX| 00000060 66 5b be 7c 83 e3 0e be 80 83 eb 09 be 78 83 66 |f[.|.........x.f| 00000070 31 c0 66 31 db 2e 89 26 08 30 2e 8c 16 0a 30 31 |1.f1...&.0....01| 00000080 c9 8e d1 bc d4 7b 06 57 8e d9 8e c1 8e e1 8e e9 |.....{.W........| 00000090 fb fc 66 a3 20 30 66 89 1e 24 30 89 36 14 30 66 |..f. 0f..$0.6.0f| 000000a0 8b 04 66 a3 10 30 be 25 81 e8 27 04 8b 36 12 30 |..f..0.%..'..6.0| 000000b0 e8 20 04 66 31 ff be 40 7c b9 f0 01 66 ad 66 01 |. .f1..@|...f.f.| 000000c0 c7 e2 f9 66 89 3e 00 30 88 16 17 30 bf 30 30 b9 |...f.>.0...0.00.| 000000d0 21 00 66 31 c0 f3 66 ab c6 06 30 30 13 c6 06 48 |!.f1..f...00...H| 000000e0 30 1e c6 06 90 30 10 c6 06 a0 30 13 ff 06 ae 30 |0....0....0....0| 000000f0 81 3e 14 30 78 83 75 1d b8 01 4b 8a 16 17 30 be |.>.0x.u...K...0.| 00000100 30 30 e8 d7 01 0f 82 f1 00 8a 16 17 30 38 16 32 |00..........08.2| 00000110 30 0f 85 3d 01 66 83 3e 0c 7c 00 75 27 66 a1 34 |0..=.f.>.|.u'f.4| 00000120 30 66 21 c0 74 1a 66 b8 11 00 00 00 bb 00 10 e8 |0f!.t.f.........| ....
anaconda工作过程
Anaconda安装系统分成三个阶段:
安装前配置阶段
>安装过程使用的语言
>键盘类型
>安装目标存储设备
>>Basic Storage:本地磁盘
>>特殊设备:iSCSI
>设定主机名
>配置网络接口
>时区
>管理员密码
>设定分区方式及MBR的安装位置
>创建一个普通用户
>选定要安装的程序包
安装阶段
>在目标磁盘创建分区,执行格式化操作等
>将选定的程序包安装至目标位置
>安装bootloader和initramfs
图形模式首次启动
>iptables
>selinux
>core dump
系统安装
启动安装过程一般应位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式:本地光盘
本地硬盘
NFS
URL:
>ftp server: yum repository
>http server: yum repostory
如果想手动指定安装源:
>boot: linux askmethod
anaconda的配置方式
(1) 交互式配置方式
(2) 通过读取事先给定的配置文件自动完成配置
>按特定语法给出的配置选项
>kickstart文件
安装boot引导选项:boot:
text: 文本安装方式
askmethod: 手动指定使用的安装方法
与网络相关的引导选项:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
与远程访问功能相关的引导选项:
vnc
vncpassword='PASSWORD'
指明kickstart文件的位置: ks=
DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
Hard drive: ks=hd:device:/directory/KICKSTART_FILE
HTTP server: ks=http://host:port/path/to/KICKSTART_FILE
FTP server: ks=ftp://host:port/path/to/KICKSTART_FILE HTTPS server: ks=https://host:port/path/to/KICKSTART_FILE
NFS server:ks=nfs:host:/path/to/KICKSTART_FILE
启动紧急救援模式: rescue
官方文档:《Installation Guide》
kickstart文件的格式
命令段:指明各种安装前配置,如键盘类型等程序包段:指明要安装的程序包组或程序包,不安装的程序包等
%packages
@group_name (包组)
package
-package (排除不装的包)
%end
脚本段:
%pre: 安装前脚本
>运行环境:运行于安装介质上的微型Linux环境
%post: 安装后脚本
>运行环境:安装完成的系统
命令段中的命令:
必备命令
authconfig: 认证方式配置
>authconfig --useshadow --passalgo=sha512
bootloader:bootloader的安装位置及相关配置
>bootloader --location=mbr --driveorder=sda –append="crashkernel=auto rhgb quiet"
keyboard: 设定键盘类型
lang: 语言类型
part: 创建分区
rootpw: 指明root的密码
timezone: 时区
可选命令
install OR upgrade
text: 文本安装界面 network
firewall
selinux
halt
poweroff
reboot
repo user:安装完成后为系统创建新用户
url: 指明安装源
key –skip 跳过安装号码,适用于rhel版本
创建kickstart文件的方式
直接手动编辑
>依据某模板修改
可使用创建工具:system-config-kickstart
>依据某模板修改并生成新配置
>/root/anaconda-ks.cfg
检查ks文件的语法错误
>ksvalidator
>ksvalidator /PATH/TO/KICKSTART_FILE
注意:Centos7 的 system-config-kickstart 工具生成ks-cfg文件时候,yum配置文件 base必须改成development,否则无法读取目录列表
系统光盘中isolinux目录列表
solinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目isolinux.cfg:isolinux.bin的配置文件,当光盘启动后(即运 行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32:是光盘启动后的安装图形界面,也属于 SYSLINUX项目,menu.c32版本是纯文本的菜单
Memtest:内存检测,这是一个独立的程序
splash.jgp:光盘启动界面的背景图
vmlinuz是内核映像
initrd.img是ramfs (先cpio,再gzip压缩)
[root@Centos6bootiso]#cp -r /misc/cd/isolinux/ /app/bootiso/ [root@Centos6bootiso]#tree . └── isolinux ├── boot.cat ├── boot.msg ├── grub.conf ├── initrd.img ├── isolinux.bin ├── isolinux.cfg ├── memtest ├── splash.jpg ├── TRANS.TBL ├── vesamenu.c32 └── vmlinuz 1 directory, 11 files
制作引导光盘和U盘
创建引导光盘:mkdir –pv /app/myiso
cp -r /misc/cd/isolinux/ /app/myiso/
vim /app/myiso/isolinux/isolinux.cfg
>initrd=initrd.img text ks=cdrom:/myks.cfg
cp /root/myks.cfg /app/myiso/
mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /app/myiso/
注意:以上相对路径都是相对于光盘的根,和工作目录无关
创建U盘启动盘
dd if=/dev/sr0 of=/dev/sdb
mkisofs选项
-o 指定映像文件的名称。
-b 指定在制作可开机光盘时所需的开机映像文件。
-c 制作可开机光盘时,会将开机映像文件中的 no-eltorito- catalog 全部内容作成一个文件。
-no-emul-boot 非模拟模式启动。
-boot-load-size 4 设置载入部分的数量
-boot-info-table 在启动的图像中现实信息
-R 或 -rock 使用 Rock RidgeExtensions
-J 或 -joliet 使用 Joliet 格式的目录与文件名称
-v 或 -verbose 执行时显示详细的信息
-T 或 -translation-table 建立文件名的转换表,适用于 不支持 Rock Ridge Extensions 的系统上
[root@Centos6bootiso]#yum install syslinux 已加载插件:fastestmirror, refresh-packagekit, security 设置安装进程 Loading mirror speeds from cached hostfile 包 syslinux-4.04-3.el6.x86_64 已安装并且是最新版本 无须任何处理 [root@Centos6bootiso]#find /app/centos6 -name TRANS.TBL -exec rm {} \; [root@Centos6bootiso]#find /app/centos6 -name TRANS.TBL [root@Centos6bootiso]#rm /app/centos6/repodata/* rm:是否删除普通文件 "/app/centos6/repodata/1cde788f77b08a7eb3dfdba12fa384a5f0214147a717a1e2d4504368037fba90-c6-x86_64-comps.xml.gz"?y rm:是否删除普通文件 "/app/centos6/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml"? rm:是否删除普通文件 "/app/centos6/repodata/594889376c2452dc8178bbaed982deba4dff38a42716ac03fc84576c17b1d79b-filelists.sqlite.bz2"?y rm:是否删除普通文件 "/app/centos6/repodata/92299bd89d0ef9e4030e78d31399a96b41712239f032d0092f2345ba5cb01404-other.xml.gz"?y rm:是否删除普通文件 "/app/centos6/repodata/9f2ef5087547b18bdccc798b0cad7456047fc69ca17db69d3159b6dd84ed1c11-primary.xml.gz"?y rm:是否删除普通文件 "/app/centos6/repodata/ad73b7fa76bb45feea7e4cdb2d896279524039545e8764ceaa515665f897a0c5-primary.sqlite.bz2"?y rm:是否删除普通文件 "/app/centos6/repodata/dc8a406c3cc1c5103ff2e22a1b9d3d0d09a13a6fda831ffecebdd55484bf5146-filelists.xml.gz"?y rm:是否删除普通文件 "/app/centos6/repodata/f18d3f35ab887f27a5acc563138bd58a0c9b668e8cd79dbb32c4fc610c88e320-other.sqlite.bz2"?y rm:是否删除普通文件 "/app/centos6/repodata/repomd.xml"?y [root@Centos6bootiso]#ls /app/centos6/repodata 43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml [root@Centos6centos6]#createrepo -g /app/centos6/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml ./ Spawning worker 0 with 3240 pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
[root@Centos7~]#find /app/centos7 -name TRANS.TBL /app/centos7/EFI/BOOT/fonts/TRANS.TBL /app/centos7/EFI/BOOT/TRANS.TBL /app/centos7/EFI/TRANS.TBL /app/centos7/images/pxeboot/TRANS.TBL /app/centos7/images/TRANS.TBL /app/centos7/isolinux/TRANS.TBL /app/centos7/LiveOS/TRANS.TBL /app/centos7/Packages/TRANS.TBL /app/centos7/repodata/TRANS.TBL /app/centos7/TRANS.TBL [root@Centos7~]#find /app/centos7 -name TRANS.TBL -exec rm {} \; [root@Centos7~]#find /app/centos7 -name TRANS.TBL [root@Centos7~]#rm /app/centos7/repodata/* -f [root@Centos7~]#ls /misc/cd/repodata/ 0c34273ad0292747ee5e15c047d3e51c67ca59861a446972db45d71abacc7ad7-primary.sqlite.bz2 38b60f66d52704cffb8696750b2b6552438c1ace283bc2cf22408b0ba0e4cbfa-c7-x86_64-comps.xml 6cd606547d4f569538d4090e9accdc3c69964de1116b9ab1e0a7864bb1f3ec98-filelists.sqlite.bz2 9346184be1deb727caf4b1ecf4a7949155da5da74af9b92c172687b290a773df-c7-x86_64-comps.xml.gz a0af68e1057f6b03a36894d3a4f267bbe0590327423d0005d95566fb58cd7a29-other.xml.gz b686d3a0f337323e656d9387b9a76ce6808b26255fc3a138b1a87d3b1cb95ed5-primary.xml.gz c1561546c684bd06b3a499c2babc35c761b37b2fc331677eca12f0c769b1bb37-filelists.xml.gz cf0cc856d46b3095106da78256fb28f9d8defea4118d0e75eab07dc53b7d3f0d-other.sqlite.bz2 repomd.xml repomd.xml.asc TRANS.TBL [root@Centos7~]#cp /misc/cd/repodata/38b60f66d52704cffb8696750b2b6552438c1ace283bc2cf22408b0ba0e4cbfa-c7-x86_64-comps.xml /app/centos7/repodata/ [root@Centos7~]#cd /app/centos7/ [root@Centos7/app/centos7]#createrepo -g repodata/38b60f66d52704cffb8696750b2b6552438c1ace283bc2cf22408b0ba0e4cbfa-c7-x86_64-comps.xml ./ Spawning worker 0 with 4796 pkgs Spawning worker 1 with 4795 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
装载图形化界面 [root@Centos6~]#yum groupinstall "kde desktop" [root@Centos6~]#yum install xorg-x11-server-Xorg [root@Centos6~]#yum install vim-enhanced
相关文章推荐
- 我的LINUX学习之路之十一之安装LINUX和XP及win7三系统
- Linux学习pxe自动化安装系统
- linux学习之路1 Linux系统安装
- linux 系统相关学习:软件安装
- 我的LINUX学习之路之十三之用脚本通过PXE安装LINUX
- 菜鸟学习Linux 之一 系统安装(XP+Linux or Vista+Linux)
- linux系统管理学习笔记之三----软件的安装
- 我的LINUX学习之路之十九之oracle安装及排错
- 尚观学习-ule-Linux系统安装相关及基本操作
- windows系统下安装linux系统(fedora12)
- 【Linux学习笔记④】Linux系统安装
- 运维自动化01-批量安装linux系统
- linux学习使用总结-linux系统的安装和与windows双系统共享,linux常用的基本命令,今天贴在这里和大家分享
- linux查看系统信息软件安装信息命令学习笔记
- 我的LINUX学习之路之十二之批量网络安装不同版本Linux之基础篇
- SystemImager自动化安装Linux系统(下)
- 推荐一个不错的在线Linux学习平台(免安装系统)
- 轻松学习Linux之本地安装系统
- ORACLE学习之路--oracle在linux下的安装
- 我的LINUX学习之路之十九之安装LINUX 虚拟工具vmware tools