zoukankan      html  css  js  c++  java
  • 使用光盘iso实现Linux操作系统的自动安装部署

    前边写了一篇使用 PXE 的方式批量安装操作系统,不是任何时候任何地方都有环境来通过 PXE 方式来进行安装。如果此时需要通过光盘安装,默认的情况下是通过交互式方式进行安装,其实也可以通过 kickstart 的方式来实现自动化安装部署。光盘通过 ks.cfg 进行安装的实现方式比较简单,下边简单的进行总结。

    一、实现原理

    光盘通过读取 ks.cfg 文件来实现安装操作系统,ks.cfg 配置文件放在光盘的根目录即可,然后修改 isolinux/isolinux.cfg 文件,设置内核参数,指定 ks.cfg 文件的位置即可。由于原始 iso 镜像文件是只读的,不能直接在 iso 光盘目录文件内进行修改,需要拷贝到一个临时目录,修改完后在封装为 iso 镜像文件。

    二、拷贝镜像临时目录

    mkdir /mnt/cdrom
    mount -o loop CentOS-6.8-x86_64-minimal.iso /mnt/cdrom
    cp -ar /mnt/cdrom/ /root/iso    # 原来root下没有iso目录,拷贝过来重命名为iso

    三、生成 ks.cfg 文件

    生成 ks.cfg 文件的方式大概有2种,一是可以通过图形工具 system-config-kickstart 来定制生成指定的 ks.cfg 文件,二是对于熟悉 kickstart 语法的可以直接编写 ks.cfg 配置文件。本次实验用的 ks.cfg 配置比较简单,是通过工具生成的,下边给出本次的 ks.cfg 文件。

    #platform=x86, AMD64, or Intel EM64T
    #version=DEVEL
    # Firewall configuration
    firewall --disabled
    # Install OS instead of upgrade
    install
    # Use CDROM installation media
    cdrom
    # Root password
    rootpw --iscrypted $1$p6oEoqGo$UDHZdzw56Rl6Rt5oi1A0Q1
    # System authorization information
    auth  --useshadow  --passalgo=sha512
    # Use graphical install
    graphical
    # System keyboard
    keyboard us
    # System language
    lang en_US
    # SELinux configuration
    selinux --disabled
    # Do not configure the X Window System
    skipx
    # Installation logging level
    logging --level=info
    # Reboot after installation
    #reboot
    # System timezone
    timezone --isUtc Asia/Shanghai
    # Network information
    network  --bootproto=dhcp --device=eth0 --onboot=on
    # System bootloader configuration
    bootloader --location=mbr
    # Clear the Master Boot Record
    zerombr
    # Partition clearing information
    clearpart --all --initlabel 
    # Disk partitioning information
    part /boot --asprimary --fstype="ext4" --ondisk=sda --size=200
    part swap --asprimary --fstype="swap" --ondisk=sda --size=4096
    part / --asprimary --fstype="ext4" --grow --ondisk=sda --size=1

    拷贝到光盘镜像根目录:

    /bin/cp ks.cfg /root/iso/

    四、修改启动项菜单内核参数

    修改菜单项配置文件 isolinux/isolinux.cfg:

    default vesamenu.c32
    #prompt 1
    timeout 1    # 超时自动选择菜单时间设置,设置为1时,即一闪而过,设置3秒为好。

    修改内核参数,指定 ks.cfg 位置:

    label linux
      menu label ^Install CentOS 6.8 x64 System.    # 自定义了菜单
      menu default
      kernel vmlinuz
      append initrd=initrd.img ks=cdrom:/ks.cfg     # 添加了ks文件的位置:光盘的根目录

    五、封装iso镜像文件

    cd /root/iso/    # 进入镜像制作目录

    如果没有 mkisofs 命令,执行安装:

    yum install mkisofs -y

    执行封装镜像的命令:

    mkisofs -o /root/CentOS6.8_x64.iso 
        -V centos6 -b isolinux/isolinux.bin 
        -c isolinux/boot.cat 
        -no-emul-boot -boot-load-size 4 
        -boot-info-table -R -J -T -v .

    校验并写入 md5 值(可选):

    implantisomd5 /root/CentOS6.8_x64.iso

    通过光盘实现自动化安装已经完成制作,接下来测试可以通过虚拟机,导入 iso 镜像来做测试。

     

  • 相关阅读:
    Relativity 01: Physical Meaning of Geometrical Propositions
    Algo 2: Asymptotic Order of Growth
    CShop Project : BeanUtils工具的使用
    137 __getattribute__
    134 isinstance和issubclass
    135 反射(hasattr和getattr和setattr和delattr)
    133 面向对象进阶实战之选课系统
    132 面向对象进阶小结
    131 类和对象的绑定方法及非绑定方法
    130 类的property特性
  • 原文地址:https://www.cnblogs.com/liwei0526vip/p/6416225.html
Copyright © 2011-2022 走看看