设为首页 收藏本站
查看: 1040|回复: 0

[经验分享] CentOS 6.x的安装过程及实现自动安装

[复制链接]

尚未签到

发表于 2018-4-28 06:27:54 | 显示全部楼层 |阅读模式
    安装过程这个很多人觉得能安装即可,没必要去理解是怎么安装的,但是本人之前由于吃过这个亏(面试的时候),所以还是写下来,万一大家碰到了,可以有个参考。

    我们首先看一下CentOS安装光盘的目录:
   DSC0000.png
  我们解释一下这些目录的作用(文件没有什么作用,都是一些KEY文件,GPL信息等等)
  
EFI    #关于EFI引导使用的一些文件
images  #安装镜像install.img和一些关于pxe启动的文件
isolinux #引导文件的目录,包括vmlinuz,initrd.img,isolinux.bin等等
Packages #常用的rpm包
repodata #yum的索引源,还有一些说明文件
  我们这里主要关心images和isolinux目录,EFI目录仅仅是作于EFI引导,所以没什么好深究的,其他两目录也都是附加的。

  •   images目录的内容:
DSC0001.png

  

  

  

  

  

  

  

   pxeboot目录:
   DSC0002.png
  
install.img文件,提供更多的命令、更完整的anaconda程序在里面。
vmlinuz是压缩内核,引导程序启动后第一件事就是将内核启动;
initrd.img则是为内核提供了一些额外的驱动程序和一个模拟的文件系统环境。
efi的还是关于efi引导的,忽略即可。
  2.isolinux目录:
DSC0003.png

  这个目录的文件比较多:
  isolinux.bin  #引导程序(可以理解为bootloader),BIOS加电自检后就会启动这个程序
  isolinux.cfg  #引导程序的配置文件
  vmlinuz  #压缩的内核,isolinux.bin启动后就会启动vmlinuz和initrd.img
  initrd.img #提供驱动程序以及为内核提供基本的系统环境,里面就是一个小文件系统,其中有一个init程序供内核调用,用来启动anaconda
  grub.conf  #提供grub的样例配置文件,安装的时候没有启动grub所以用不到
  vesamenu.c32 #选择菜单,由isolinux启动
  bootmsg  #一行文字映射
  splash.jpg #背景图片
  

  大家发现了,pxeboot和isolinux目录中都包含有vmlinuz和initrd.img,这两个目录中的文件其实是一模一样的。
  抛去重复的,我们真正需要关心的其实只有下面这几个:
  
  ①isolinux.bin
  ②isolinux.cfg
  ③vmlinuz
  ④initrd.img
  ⑤install.img
  ⑥vesamenu.c32
  大致的安装流程是这样的:
  插入光盘并开机后,计算机首先会自检(POST),自检没有问题后,就会启动BIOS,BIOS根据启动顺序找到光盘并查找BOOTLoader,此时的BOOTLoader就是isolinux.bin,isolinux.bin根据isolinux.cfg提供一个菜单界面(启动vesamenu.c32这个程序)让用户选择操作,看一下isolinux.cfg文件
  
default vesamenu.c32  #提供菜单程序功能,如果不需要交互模式的话可以略过
#prompt 1 #是否进入交互模式,1是,0否
timeout 600  #超时时长
display boot.msg #显示boot.msg文件,没啥用,可以忽略
menu background splash.jpg   #这个显示一个背景文件,isolinux目录中可以看见splash.jpg
menu title Welcome to CentOS 6.5!  #打出一个Welcome to CentOS 6.5!
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  #启动initrd
label vesa
  menu label Install system with ^basic video driver  #安装基本的设备
  kernel vmlinuz  #启动内核
  append initrd=initrd.img xdriver=vesa nomodeset  #启动initrd并且安装基本设备参数
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 -
  大家可以将上面的menu label行对比一下下面的安装图以及splash.jpg图:
  安装图:
DSC0004.jpg

   背景图(splash.jpg):

   DSC0005.jpg
  

  我们可以看出来,其实isolinux.bin读取isolinux.cfg文件并启动vesamenu.c32,将背景图加载,然后把提供选项菜单。用户选择安装菜单后,isolinux根据选择的信息(我们这里是第一项):
label linux  #是启动标签
  menu label ^Install or upgrade an existing system  #安装或升级系统
  menu default    #默认启动标签
  kernel vmlinuz    #启动内核
  append initrd=initrd.img  #启动initrd  启动内核,内核将initrd(initrd的作用就是在内存中虚拟成为一个基本的文件系统,里面含有一些命令和驱动程序等等)展开并挂载,然后启动其中的一个基本的anaconda程序,并启动/sbin/loader程序加载install.img,install.img提供里面有更完整的anaconda程序、比initrd.img更完整的命令、库文件等等。之后anaconda根据kickstart文件进行安装。
  

  -------------------------------------------------------------------------------------------------------
  

  自动安装:
  上面介绍了,anaconda可以根据kickstart配置文件实现系统自动的安装。接下来我们就来制作一个镜像让其自动安装:

  1、需要准备的文件有:
isolinux.bin引导程序
isolinux.cfg引导程序的配置文件,比如告诉引导程序启动内核、initrd.img的时候传递什么参数
vmlinuz启动的内核
initrd.img提供一个最最基本的文件系统。这个文件系统里面有驱动模块、网络配置指令
kickstart文件安装程序的配置文件
vesamenu.c32负责提供选择安装方法
  需要的大概就是这几个,大家可以发现没有install.img这个文件。因为这个文件完全可以等需要调用的时候再从网络上下载(默认只需要isolinux.bin根据isolinux.cfg引导vmlinuz和initrd.img,之后启动anaconda并根据kickstart文件下载更完整的install.img即可)。
  

  创建一个单独的目录,用来制作iso文件:
mkdir /createiso  将光盘挂载到/mnt目录上:
[root@localhost createiso]# mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost createiso]#  

  开始制作,总体流程为:
  1、提供kickstart文件到createiso目录并命名为ks.cfg:大家使用vim编辑器就可以:
[root@localhost createiso]# pwd
/createiso
[root@localhost createiso]# ls -l ks.cfg
-rw-r--r-- 1 root root 2293 Nov 20 04:10 ks.cfg
[root@localhost createiso]#  文件内容:
#platform=x86, AMD64, or Intel EM64T  #平台为PC平台
#version=DEVEL
# Firewall configuration
firewall --disabled   #关闭防火墙
# Install OS instead of upgrade
install   #执行安装
# Use network installation
url --url=http://mirrors.aliyun.com/centos/6/os/x86_64/ #安装树,我这里指向了阿里的镜像站
repo --name="CentOS" --baseurl=http://mirrors.aliyun.com/centos/6/os/x86_64/ #安装源,我指向了阿里云镜像
# Root password
rootpw --iscrypted $1$Y3XLo9Ff$Efi6bHS1XJgWAblDr/ujP/  #root的密码,这里位加密的
# System authorization information
auth  --useshadow  --passalgo=sha512  #认证  使用shadow文件  使用sha512加密
# Use text mode install
text   #使用文本模式安装
firstboot --disable  #关闭第一次启动配置
# System keyboard
keyboard us   #键盘为us模式
# System language
lang en_US  #系统语言为en_US
# SELinux configuration
selinux --disabled  #关闭selinux
# Installation logging level
logging --level=info  #安装日志级别为info
# Reboot after installation
reboot   #安装后重启
# System timezone
timezone  Asia/Shanghai  #时区为亚洲/上海
# Network information
network  --bootproto=dhcp onboot=on  #启动网络,dhcp协议获取IP
# System bootloader configuration
bootloader --append="crashkernel=auto rhgb rhgb quiet quiet" --location=mbr --driveorder="sda"   #追加给bootloader参数,并且安装在本地sda磁盘的sda中的mbr
# Partition clearing information
zerombr   #清空MBR信息
clearpart --all   #删除所有分区
# Disk partitioning information  #下面的是分区
part /boot --fstype="ext4" --size=200
part pv.008002 --grow --size=61440
volgroup VolGroup --pesize=4096 pv.008002
logvol /home --fstype=ext4 --name=lv_home --vgname=VolGroup --grow --size=10000
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=20000
logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1024 --maxsize=1024
%packages  #下面的都是选择的安装的包
@base
@compat-libraries
@console-internet
@core
@development
@kde-desktop
@office-suite
@server-platform-devel
@server-policy
@workstation-policy
device-mapper-persistent-data
git
xsettings-kde
-aic94xx-firmware
-b43-fwcutter
-bfa-firmware
-biosdevname
-bridge-utils
-cpuspeed
-dmraid
-dosfstools
-fprintd-pam
-hunspell-en
-ipw2100-firmware
-ipw2200-firmware
-ivtv-firmware
-iwl100-firmware
-iwl1000-firmware
-iwl3945-firmware
-iwl4965-firmware
-iwl5000-firmware
-iwl5150-firmware
-iwl6000-firmware
-iwl6000g2a-firmware
-iwl6050-firmware
-kexec-tools
-man-pages
-man-pages-overrides
-mdadm
-microcode_ctl
-pcmciautils
-pinfo
-pm-utils
-ql2100-firmware
-ql2200-firmware
-ql23xx-firmware
-ql2400-firmware
-ql2500-firmware
-rng-tools
-rt61pci-firmware
-rt73usb-firmware
-smartmontools
-sysstat
-system-config-firewall-tui
-system-config-network-tui
-usbutils
-vconfig
-virt-what
-wireless-tools
-words
-zd1211-firmware
%end  2、在createiso目录下创建一个isolinux目录
mkdir /createiso/isolinux  3、提供isolinux.bin及isolinux.cfg配置文件到isolinux目录:

[root@localhost createiso]# cp /mnt/isolinux/isolinux.bin ./isolinux
[root@localhost createiso]# ls isolinux
isolinux.bin
[root@localhost createiso]# echo "default vesamenu.c32
> prompt 1
> timeout 1
> label linux
>   menu label ^Install or upgrade an existing system
>   menu default
>   kernel vmlinuz
>   append initrd=initrd.img ks=cdrom:/ks.cfg" >isolinux/isolinux.cfg
[root@localhost createiso]# ls isolinux/
isolinux.bin  isolinux.cfg  

  isolinux.cfg配置文件:
default vesamenu.c32
prompt 1
timeout 1
label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/ks.cfg  #指定kickstart文件给initrd.img,自动安装必须的文件  4、提供vesamenu.c32、vmlinuz、initrd.img到isolinux目录:
[root@localhost createiso]# cp -f /mnt/isolinux/{vesamenu.c32,vmlinuz,initrd.img} ./isolinux
[root@localhost createiso]# ls isolinux/
initrd.img  isolinux.bin  isolinux.cfg  vesamenu.c32  vmlinuz
[root@localhost createiso]#  

  5.创建光盘镜像文件,各位直接复制我的命令即可,比较长:
  mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos" -b isolinux/isolinux.bin -o /tmp/centos-test.iso /createiso
[root@localhost createiso]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos" -b isolinux/isolinux.bin -o /tmp/centos-test.iso /createiso
I: -input-charset not specified, using utf-8 (detected in locale settings)
genisoimage 1.1.9 (Linux)
Scanning /createiso
Scanning /createiso/isolinux
Writing:   Initial Padblock                        Start Block 0
Done with: Initial Padblock                        Block(s)    16
Writing:   Primary Volume Descriptor               Start Block 16
Done with: Primary Volume Descriptor               Block(s)    1
Writing:   Eltorito Volume Descriptor              Start Block 17
Size of boot image is 4 sectors -> No emulation
Done with: Eltorito Volume Descriptor              Block(s)    1
Writing:   Joliet Volume Descriptor                Start Block 18
Done with: Joliet Volume Descriptor                Block(s)    1
Writing:   End Volume Descriptor                   Start Block 19
Done with: End Volume Descriptor                   Block(s)    1
Writing:   Version block                           Start Block 20
Done with: Version block                           Block(s)    1
Writing:   Path table                              Start Block 21
Done with: Path table                              Block(s)    4
Writing:   Joliet path table                       Start Block 25
Done with: Joliet path table                       Block(s)    4
Writing:   Directory tree                          Start Block 29
Done with: Directory tree                          Block(s)    2
Writing:   Joliet directory tree                   Start Block 31
Done with: Joliet directory tree                   Block(s)    2
Writing:   Directory tree cleanup                  Start Block 33
Done with: Directory tree cleanup                  Block(s)    0
Writing:   Extension record                        Start Block 33
Done with: Extension record                        Block(s)    1
Writing:   The File(s)                             Start Block 34
26.93% done, estimate finish Fri Nov 20 04:24:40 2015
53.76% done, estimate finish Fri Nov 20 04:24:40 2015
80.68% done, estimate finish Fri Nov 20 04:24:40 2015
Total translation table size: 3823
Total rockridge attributes bytes: 1120
Total directory bytes: 2782
Path table size(bytes): 26
Done with: The File(s)                             Block(s)    18420
Writing:   Ending Padblock                         Start Block 18454
Done with: Ending Padblock                         Block(s)    150
Max brk space used 0
18604 extents written (36 MB)
[root@localhost createiso]# ls /tmp/
centos-test.iso  yum.log
[root@localhost createiso]#  

  

  保存到/tmp下了,命名为centos-test.iso,下载来就可以安装了。
DSC0006.png

DSC0007.png

DSC0008.png

DSC0009.png

DSC00010.png

DSC00011.png

DSC00012.jpg

DSC00013.jpg

DSC00014.jpg

DSC00015.png

DSC00016.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-452858-1-1.html 上篇帖子: Centos6.5安装及简单配置nginx 下篇帖子: CentOS Linux 监控安装之Zabbix
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表