Anaconda Kickstart

字体大小: 中小 标准 ->行高大小: 标准
linux安装大致可以分为2个阶段 第一阶段:anaconda 阶段 此阶段是linux的预安装环境,提供linux安装选项的一个接口,可以将它比作是window中的PE环境 第二阶段:install 阶段 该阶段系统会按照anaconda 阶段设定的参数自动安装   anaconda有两种模式: 交互式:和普通安装一样,按照提示选择选项一步步的安装 非交互式:通过读取kickstart文件的配置,进行自动安装 而在安装linux过程中,获取ks.cfg文件的方式有多种,如直接在cdrom中获取,常见的形式还有http,ftp,nfs等方式 cdrom和硬盘: ks=cdrom:/dir/ks.cfg ks=hd:/dir/ks.cfg http和ftp: ks=http://domain.com/dir/ks.cfg ks=ftp://domain.com/dir/ks.cfg NFS: ks=nfs:domain.com:/dir/ks.cfg   在使用ks.cfg之前,需要先引导启动环境,引导方式有cdrom、usb、PXE等。在引导进入anaconda后,即可通过读取ks.cfg来进行系统的自动安装 ks.cfg文件会在安装linux后,根据用户的安装选项自动生成在root家目录,即anaconda_ks.cfg ks.cfg文件组成大致分为3段 1.命令段: 键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项 2.软件包段: %packages @groupname #指定安装的包组 package_name #指定安装的包 -package_name #指定不安装的包 3.脚本段(可选): %pre :预安装脚本 (由于只依赖于启动镜像,支持的命令很少) %post:后安装脚本(基本支持所有命令) 更多关于Anaconda Kickstart的内容请看:http://fedoraproject.org/wiki/Anaconda/Kickstart    
  1. [root@rhel6 ~]# cat /var/ftp/pub/ks.cfg
  2. ###################################################################### ############## 1 Main Begin
  3. ############## 1.1 Text,Key,Keyboard,Lang,Net Begin ######################################################################
  4. # platform=x86, AMD64, 或 Intel EM64T # 通过文本界面进行安装
  5. text
  6. # 安装/升级 install # 如果是RHEL5的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key
  7. key--skip # 安装方式(cdrom/hdisk/http/ftp/nfs),指定安装源的路径 nfs --server=192.168.0.90 --dir=/var/ftp/pub lang en_US.UTF-8
  8. keyboard us # 通过DHCP获取IP地址 network --bootproto dhcp
  9. ###################################################################### ############## 1.1 Text,Key,Keyborad,Lang,Net End
  10. ############## 1.2 Partition Begin ######################################################################
  11. # Partition 10000M
  12. %include /tmp/partitioning
  13. ######################################################################
  14. ############## 1.2 Partition End ############## 1.3 Timezone,X,passwd,security,bootloader Begin
  15. ###################################################################### timezone --utc Asia/Shanghai
  16. graphical # 设置root用户的密码 rootpw RedHat # 禁用防火墙 firewall --disabled
  17. authconfig --useshadow --passalgo=md5 # 激活SELINUX selinux --enforcing # 首次引导时,禁用设置代理 firstboot --disable # 安装Grub到MBR bootloader --location=mbr # 安装完成后重启 reboot
  18. ###################################################################### ############## 1.3 Timezone,X,passwd,security,bootloader End
  19. ############## 1 Main End ############## 2 Packages Begin
  20. ###################################################################### %packages
  21. # 安装软件包组
  22. @Base
  23. @Core @basic-desktop
  24. @desktop-debugging @desktop-platform
  25. @fonts @general-desktop
  26. @graphical-admin-tools @input-methods
  27. @legacy-x @remote-desktop-clients
  28. @x11 # 安装软件包 coreutils elfutils
  29. elfutils-libelf elinks
  30. enscript firefox
  31. gcc gimp
  32. gimp-data-extras gimp-print-plugin
  33. gnome-icon-theme gstreamer
  34. gstreamer-tools libIDL
  35. libcap libgsf
  36. libraw1394 mutt
  37. nautilus-cd-burner ntp
  38. openmotif openssh
  39. openssh-clients openssh-server
  40. pyorbit samba-client
  41. samba-common startup-notification
  42. ttmkfdir vim-enhanced
  43. vnc
  44. %end
  45. ###################################################################### ############## 2 Packages End
  46. ############## 3 Post Begin ############## Network Begin
  47. ###################################################################### %post
  48. # 固定安装后系统的IP地址
  49. cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
  50. DEVICE=eth0 BOOTPROTO=none
  51. ONBOOT=yes NETMASK=255.255.255.0
  52. IPADDR=XXX GATEWAY=192.168.0.90
  53. TYPE=Ethernet USERCTL=no
  54. IPV6INIT=no PEERDNS=yes
  55. EOF # 提取IP地址 v_ip=`ifconfig eth0 | head -n 2 | tail -n 1 | cut -d ':' -f 2 | cut -d ' ' -f 1` # 替换ifcfg-eth0文件中IPADDR的xxx为$v_ip perl -pi -e "s,XXX,$v_ip," /etc/sysconfig/network-scripts/ifcfg-eth0 %end
  56. ######################################################################
  57. ############## Network End ############## 3 Post End
  58. ###################################################################### %pre
  59. echo "Starting PRE" > /dev/tty2 # 以下两行在push 64位系统的时候是必须的(Bug) cd /mnt/ ln -s Source/Packages ./
  60. v_pci0=$(udevinfo -ap /sys/class/net/eth0 | grep 'ID==' | head -n 1) v_driver0=$(udevinfo -ap /sys/class/net/eth0 | grep 'DRIVER==' | head -n 1)
  61. v_mac0=$(ifconfig eth0 | grep HWaddr | cut -d ' ' -f 11) v_ip_short=$(grep $v_mac0 /mnt/stage2/workstation.list | cut -d '-' -f 1)
  62. v_ip=192.168.0.$v_ip_short if [ ! -z $v_ip_short ]
  63. then ifconfig eth0 $v_ip
  64. fi
  65. # partitions if
  66. grep -q hda /proc/partitions then
  67. disktype=hda else
  68. disktype=sda fi
  69. # 设置分区 cat >> /tmp/partitioning <<EOF
  70. # 清除主引导记录MBR zerombr yes
  71. # 清除所有的分区 clearpart --all
  72. # 设置/boot分区为50MB,文件系统格式为ext4 part /boot --fstype=ext4 --size=50
  73. # 设置swqp分区为512MB part swap --size=512
  74. # 创建8GB的PV part pv.Lrhel6 --size=8000
  75. # 创建 VG volgroup Lrhel6 --pesize=32768 pv.Lrhel6
  76. # 创建 LV ,并挂载到根分区中 logvol / --vgname=Lrhel6 --size=7000 --name=root
  77. EOF %end

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/63985.html