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

[经验分享] 博客14:CentOS的安装规划

[复制链接]

尚未签到

发表于 2018-4-28 10:43:56 | 显示全部楼层 |阅读模式
  1.一般系统的启动流程:
    bootloader --> kernel(initramfs) --> rootfs --> /sbin/init
2.anaconda:安装程序
    tui:基于curses的文本窗口
    gui:图形窗口
3.CentOS的安装程序准备过程(即anaconda执行之前的程序运行)
    首先我们先将光盘连接至虚拟机上,然后挂载到/mnt/cdrom/目录下,继而可以查看详细的内容

  # mkdir /mnt/cdrom
    # mount /dev/cdrom1 /mnt/cdrom/
    # cd /mnt/cdrom/
    # ls
    CentOS_BuildTag  EULA  images    Packages                  repodata              RPM-GPG-KEY-CentOS-Debug-6     RPM-GPG-KEY-CentOS-Testing-6
    EFI              GPL   isolinux  RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-6  RPM-GPG-KEY-CentOS-Security-6  TRANS.TBL  可以看到光盘中有如下的文件,我们进入isolinux目录下,在其中保存有完整的安装系统时的开机启动程序

    # cd isolinux/
    # ls
    boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  isolinux.cfg  memtest  splash.jpg  TRANS.TBL  vesamenu.c32  接下来我们分别介绍一下这些文件的意义
    (1)光盘中的MBR:boot.cat
         stage2: isolinux.bin    (这个程序会读取isolinux.cfg显示一个菜单,而读取vesamenu.c32则会显示一个图形窗口,并取用splash.jpg作为背景图片)
                配置文件:isolinux.cfg  
                        这个配置文件对应的内容如下
                            每个对应的菜单选项:
                                加载内核:isolinux/vmlinuz
                                向内核传递参数:append initrd=initrd.img


       # cat isolinux.cfg
        default vesamenu.c32
        #prompt 1
        timeout 600
        display boot.msg
        menu background splash.jpg
        menu title Welcome to CentOS 6.6!
        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 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 -  
    (2)装载根文件系统并启动anaconda
        默认启动gui窗口
        若是显式指定tui接口
                1)向内核传递“text”参数
                    例:boot:linux text
                2)在选定的菜单下敲tab键,即可键入文本提示符
                   或是直接敲ESC键,在boot:提示符下键入 text即可
4.anaconda程序运行时的工作过程
    (1)安装前的配置阶段
            安装过程使用的语言
            键盘类型
            安装目标存储设备
                Basic Storage:本地磁盘
                特种设备:iSCSI
            设定主机名
            配置网络接口
            时区
            管理员密码
            设定分区方式及MBR的安装位置                    
            创建一个普通用户            
            选定要安装的程序包
    (2)安装阶段
            在目标磁盘创建分区,执行格式化操作等
            将选定的程序包安装至目标位置
            安装bootloader
    (3)首次启动
            iptables
            selinux
            core dump
注意:CentOS系统安装准备阶段的相关内容一般位于引导设备上,而后续的anaconda以及安装用到的程序包等有几种方式可用
        本地光盘
        本地硬盘
        ftp server:yum repository
        http server:yum repository
        nfs server
    如果想手动指定安装源
        boot:linux method
5.anaconda的配置方式
    (1)交互式配置方式,即在图形化的窗口下实现的人工配置
    (2)通过读取实现给定的配置文件自动完成配置
            按特定语法给出的配置选项
               kickstart文件
6.安装引导选项(即在boot:提示符下我们可以传递给内核的参数选项)
        boot:text 文本格式的安装方式
        boot:method 手动指定使用的安装方法
        与网络相关的安装选项:
                ip=IPADDR
                netmask=MASK
                gateway=GW
                dns=DNS_SERVER_IP
                ifname=NAME:MAC_ADDR 指明网络接口的具体名称
        与远程访问功能相关的引导选项
                vnc(使用此命令,可以利用vnc服务打开本机vnc server服务让远程主机连入,帮助配置启动
                vncpassword='PASSWD' 远程连接本地时需要键入密码
        指明kickstart文件的位置

                ks=
                    DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
                    Hard drive: ks=hd:/device/drectory/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  启动紧急救援模式:
                rescue
    注意:在完成安装后,在本地家目录下有一个anaconda.cfg文件,其中保存了本次安装的相关配置选项,同时这也是一个安装模板
7.kickstart文件的格式:
    命令段:指明各种安装前配置,如键盘类型等;
    程序包段:指明要安装的程序包组或程序包,不安装的程序包等;
            %packages 开始的标志
            @group_name  装一个包组
            package 装特定的一个程序包
            -package 不安装特定的一个程序包
            %end 结束标志
    脚本段:
            %pre: 安装前脚本
                运行环境:运行于安装介质上的微型Linux环境
            %post: 安装后脚本
                运行环境:安装完成的系统;
    (1)命令段中的命令:
            必备命令

                authconfig: 认证方式配置
                    authconfig --useshadow  --passalgo=sha512
                bootloader:bootloader的安装位置及相关配置
                    bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet"
                keyboard: 设定键盘类型
                lang: 语言类型
                part: 创建分区
                rootpw: 指明root的密码
                timezone: 时区
            可选命令
                install OR upgrade
                text: 文本安装界面
                network
                firewall
                selinux
                halt
                poweroff
                reboot
                repo:安装过程中额外用到yum源的指明
                user:安装完成后为系统创建新用户
                url: 指明安装源  (2)在root家目录下的anaconda-ks.cfg配置文件,其中的内容大体对应上述的介绍

            # cat anaconda-ks.cfg
            # Kickstart file automatically generated by anaconda.
            #version=DEVEL
            install
            cdrom
            lang en_US.UTF-8
            keyboard us
            network --onboot yes --device eth0 --bootproto dhcp
            rootpw  --iscrypted $1$vr9VWqou$ds1.AIZMTpPHpgZy4ZOG9.
            # Reboot after installation
            reboot
            firewall --service=ssh
            authconfig --useshadow --enablemd5
            selinux --enforcing
            timezone --utc America/Los_Angeles
            bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
            # 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
            #clearpart --all --initlabel
            #part /boot --fstype=ext4 --size=300
            #part / --fstype=ext4 --grow --size=3000
            #part swap --grow --maxsize=1984 --size=1984
            repo --name="CentOS"  --baseurl=cdrom:sr1 --cost=100
            %packages
            @Base
            @Core
            @Desktop
            @Fonts
            @General Purpose Desktop
            @Internet Browser
            @Printing client
            @X Window System
            binutils
            gcc
            kernel-devel
            make
            patch
            python
            %end
            %post
            if [ -f /boot/grub/menu.lst -a ! -h /boot/grub/menu.lst ]; then cp /boot/grub/menu.lst /boot/grub/menu.lst.bak && sed -i 's/ rhgb//' /boot/grub/menu.lst; fi
            if [ -f /boot/grub/grub.conf -a ! -h /boot/grub/grub.conf ]; then cp /boot/grub/grub.conf /boot/grub/grub.conf.bak && sed -i 's/ rhgb//' /boot/grub/grub.conf; fi
            if [ -f /boot/grub2/grub.conf -a ! -h /boot/grub2/grub.conf ]; then cp /boot/grub2/grub.conf /boot/grub2/grub.conf.bak && sed -i 's/ rhgb//' /boot/grub2/grub.conf; fi
            if [ -f /etc/rc.d/rc.local ]; then cp /etc/rc.d/rc.local /etc/rc.d/rc.local.backup; fi
            cat >>/etc/rc.d/rc.local <<EOF
            #!/bin/bash
            echo
            echo "Installing VMware Tools, please wait..."
            if [ -x /usr/sbin/getenforce ]; then oldenforce=\$(/usr/sbin/getenforce); /usr/sbin/setenforce permissive || true; fi
            mkdir -p /tmp/vmware-toolsmnt0
            for i in hda sr0 scd0; do mount -t iso9660 /dev/\$i /tmp/vmware-toolsmnt0 && break; done
            cp -a /tmp/vmware-toolsmnt0 /opt/vmware-tools-installer
            chmod 755 /opt/vmware-tools-installer
            cd /opt/vmware-tools-installer
            mv upgra32 vmware-tools-upgrader-32
            mv upgra64 vmware-tools-upgrader-64
            mv upgrade.sh run_upgrader.sh
            chmod +x /opt/vmware-tools-installer/*upgr*
            umount /tmp/vmware-toolsmnt0
            rmdir /tmp/vmware-toolsmnt0
            if [ -x /usr/bin/rhgb-client ]; then /usr/bin/rhgb-client --quit; fi
            cd /opt/vmware-tools-installer
            for s in sr0 sr1; do eject -s /dev/\$s; done
            ./run_upgrader.sh
            if [ -f /etc/rc.d/rc.local.backup ]; then mv /etc/rc.d/rc.local.backup /etc/rc.d/rc.local; else rm -f /etc/rc.d/rc.local; fi
            rm -rf /opt/vmware-tools-installer
            sed -i 's/3:initdefault/5:initdefault/' /etc/inittab
            if [ -f /boot/grub/menu.lst.bak ]; then mv /boot/grub/menu.lst.bak /boot/grub/menu.lst; fi
            if [ -f /boot/grub/grub.conf.bak ]; then mv /boot/grub/grub.conf.bak /boot/grub/grub.conf; fi
            if [ -f /boot/grub2/grub.conf.bak ]; then mv /boot/grub2/grub.conf.bak /boot/grub2/grub.conf; fi
            if [ -x /usr/sbin/getenforce ]; then /usr/sbin/setenforce \$oldenforce || true; fi
            if [ -x /bin/systemd ]; then systemctl restart prefdm.service; else telinit 5; fi
            EOF
            chmod 755 /etc/rc.d/rc.local
            if [ -x /bin/systemd ]; then systemctl enable rc-local.service; fi
            /usr/sbin/adduser ahui
            /usr/sbin/usermod -p '$1$vr9VWqou$ds1.AIZMTpPHpgZy4ZOG9.' ahui
            /usr/bin/chfn -f "CentOS 6" ahui
            %end  8.创建kickstart文件的方式
    (1)直接手动编辑;
            依据某模板修改;
     (2) 可使用创建工具:system-config-kickstart (注意这是一个命令,运行后可以生成一个图形化的窗口,让我们手动配置生成kickstart文件)(CentOS 6)
            依据某模板修改并生成新配置;
            http://172.16.0.1/centos6.x86_64.cfg
  检查ks文件的语法错误:ksvalidator

        # ksvalidator /PATH/TO/KICKSTART_FILE  
  创建引导光盘:

        # mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/  
        这个命令的意思是:把myiso/这个目录创建为光盘镜像,保存至/root/boot.iso文件中,并指明相关选项
        实质上这个引导光盘可以最简到仅包括如下的文件
            myiso目录下有
                  isolinux目录和myks.cfg配置文件就可以了

运维网声明 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-453062-1-1.html 上篇帖子: centos7的ssl 下篇帖子: CentOS 7更改网卡名称
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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