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

[经验分享] #27 Linux系统安装:centos系

[复制链接]

尚未签到

发表于 2018-4-21 14:16:05 | 显示全部楼层 |阅读模式
  Linux系统安装:centos系
  post --> bootsequence(BIOS)--> bootLoader(grub -->1.5 stage --> 2nd stage) --> kernel(devtmpfs) --> [ ramdisk (dev,proc,sys) -->] rootfs --> /sbin/init(sysV init,upstart init,systemd)
  

  对于所安装的centos操作系统来说,其一级子目录中,有一些绝对不能单独分区,有一些可以单独分区;
  

  绝对不能分区:bin,sbin,lib,lib64
  建立单独分区:boot,home,var,usr
  

  安装Linux系统:
  /boot
  swap
  /
  /home
  /var
  /usr
  

  磁盘分区规划:
  启动分区
  根分区
  swap
  

  规划文件系统:
  /sbin/init,/sbin/systemd
  所有的应用程序存放的路径                                                                                       应用程序所依赖的库文件存放的路径
  应用程序所依赖的配置文件存放的路径
  

  centos系/RHEL系操作系统的安装程序:anaconda
  

  在安装操作系统的过程中,系统的启动流程:
  post --> BootLoader --> kernel --> initrd --> rootfs --> anaconda
  

  anaconda给我们提供了两种操作界面:
  TUI:基于curses的文件配置窗口;
  GUI:图形界面;
  CLI:命令行界面;
  

  以光盘为例,centos系统的安装启动流程:
  1.post
  2.读取MBR,boot.cat,就是光盘的BootLoader;/isolinux/boot.cat
  3.stage2:/isolinux/isoinux.bin
  配置文件:/isolinux/isolinux.cfg
  label linux
  标签名称,可以用来引用下述所有命令的通用名称;
  menu label ^Install or upgrade an existing system
  菜单选项的具体内容及对应的热键;
  menu default
  将此菜单项作为默认菜单项;
  kernel vmlinuz
  指定内核文件名称
  append initrd=initrd.img
  向内核传递附加参数,常用的参数有:
  initrd=initrd.img
  text:从文本界面启动
  method:手动选择安装方式
  ip=ADDRESS
  netmask=MASK
  gateway=GW
  dns=DNS_SERVER
  rescue:启动紧急救援模式
  dd:使用kickstart启动无人值守安装,指明kickstart配置文件的所在位置:
  光盘上:ks=cdrom:/path/to/kickstart_file
  本地硬盘:ks=h:/device/path/to/kickstart_file
  某个远程web站点:ks=http://host[:port]/path/to/kickstart_file
  某个远程FTP站点:ks=http://[username@]host[:port]/path/to/kickstart_file
  某个远程安全web站点:ks=http://host[:port]/path/to/kickstart_file
  

  4.装载rootfs,并启动anaconda
  注意:如果内存不够512M,则anaconda是以文本界面启动的;如果内存大于512M,anaconda默认以图形界面启动;
  

  “ECS”键 --> boot:Linux text
  

  注意:上述的所有内容一般位于引导设备,而后续的anaconda及其他安装时所用的程序包或程序包组等可来源于yum仓库,yum仓库的位置:
  本地光盘
  本地硬盘
  FTP服务器
  HTTP服务器
  NFS服务器
  

  如果想手动指定程序包安装源:
  

  “ECS”键 --> boot:Linux method
  

  anaconda的工作过程:
  安装前的准备配置阶段:
  1.安装过程中使用的语言:简体中文;
  2.键盘布局类型:美国英语式;
  3.系统安装的目标存储设备;
  basic storage,本地磁盘;
  special storage,网络存储,iscsi,NAS,SAN,...;
  4.设置主机名称;
  5.配置网络接口;
  6.选择时区;
  7.管理员密码;
  8.设定分区方式及MBR安装的位置;
  9.选择要安装的程序包或程序包组;
  安装阶段:
  1.有可能运行某些预安装脚本,完成初始化工作;
  2.根据准备阶段规划的分区格式进行分区创建并执行格式化安装文件系统并挂载所有文件系统至指定挂载点;
  3.将选定的程序包或程序包组安装至目标位置;
  4.安装BootLoader至MBR及boot分区中;
  5.制作ramdisk文件;
  6.如果有必要,可能会运行安装后脚本;
  

  首次启动:
  1.选择许可证信息;
  2.创建普通用户;
  3.配置内核核心转储(kdump,core dump),如果内存小于2GB,kdump不开启;
  当某一时刻,内核核心崩溃时,kdump会将内核崩溃时内存中的所有数据创建成一个映像文件保存到磁盘上;通过分析此文件的内容,查找出内核崩溃的直接或间接原因;
  

  1.是否配置iptables防火墙;初学者建议关闭;
  2.是否配置selinux安全机制的启动,初学者建议关闭;
  

  kickstart文件的格式:
  命令段:指明各种安装前的配置;
  必备命令:
  authconfig:认证方式的配置
  authconfig --useshadow --passalgo=sha512
  bootloader:定义bootloader的安装位置和相关配置选项
  bootloader --loaction=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
  keyboard:设置键盘的类型
  keyboard us
  lang:安装过程中的语言类型
  lang zh_CN.UTF-8
  part:分区布局及分区使用方式
  part /boot --fstype=ext4 --size=200
  part swap --size=2048
  part pv_name --size=51200 --grow
  clearpart:清除分区
  clearpart --none --drives=sda
  volgroup:创建卷组的命令
  vo了group vg_name --pesize= 8192 pv_name
  logvol:穿件逻辑卷的命令
  logvol /home --fstype=ext4 --name=lv_home --vgname=vg_name --size=10240
  logvol /var --fstype=ext4 --name=lv_home --vgname=vg_name --size=10240
  logvol /usr --fstype=ext4 --name=lv_home --vgname=vg_name --size=10240
  rootpw:指明超级用户root的密码
  rootpw --iscrypted $6$salt$encrypted_pass
  timezone:时区
  timezone Asia/shanghai
  可选择命令:
  install:全新安装操作系统
  upgrade:升级安装操作系统
  text:使用文本界面安装操作系统,默认是GUI;
  network:配置网络接口
  network --onboot yes --device eth0 --bootproto static --ip 172.16.72.1 --netmask 255.255.0.0 --noipv6 --hostname a.link.com
  firewall:防火墙设置
  firewall:--disabled
  firewall:--service=ssh
  selinux:selinux的设置
  selinux --disabled
  selinux --enforcing
  

  题外话:
  如果计划在已经开启防火墙和selinux的强制模式时,可以通过这样的几十种方式将其关闭:
  防火墙;
  centos 6:
  # service iptables stop
  #chkconfig iptables off
  centos 7:
  # systemctl stop firewalld.service
  # systemctl disable firewalld.service
  

  如果想要防火墙临时不生效;
  # iptables -F 适用于所有的centos系统版本;
  

  selinux:
  1.编辑selinux的配置文件/etc/sysconfig/selinux(/etc/selinux/config),在配置文件中,有一行语句为:SELINUX={disabled|enforce|permissive}
  

  2.编辑grub的启动配置文件/boot/grub/grub.conf
  kernel /vmlinuz-version-release ARGS selinux=0
  

  如果想要selinux临时不限制用户行为:
  # setenforce 0 == enforcing --> permissive
  # setenforce 1 == permissive --> enforcing
  # getenforce
  repo:安装系统随使用的repository
  repo --name="centos" --baseurl=cdrom:sr0 --cost=100
  repo --name="centos" --baseurl=http://host[:port]/path --cost=100
  reboot:安装完成之后重新启动
  halt/poweroff:安装完成之后关闭系统
  url:指明安装时使用的repository,但必须使用url格式;
  url --url=http://host[:port]/path
  firstboot --disable:首次启动关闭
  脚本段:
  %per:安装前脚本的开始部分
  运行环境:运行于安装戒指上的微信Linux系统环境;
  %end
  

  %post:安装后脚本的开始部分
  运行环境:安装以后的操作系统
  %end
  

  程序包/程序包组段:指明要安装的程序包或程序包组以及不安装程序包;
  %packages
  @pack_group_name:安装一个程序包组;
  pack_name:安装单个指定的程序包;
  -pack_name:明确指出不安装的程序包;有时即便明确指出该项,被指定的程序包也可能会被安装上(被其他程序包里被安装或被其他程序被依赖);
  %end
  

  如何创建kickstart文件:
  1.直接以anaconda-ks.cfg为模板,复制之后修改即可;
  2.可以使用工具来创建;
  如果命令不存在,则yum install system-config-kickstart安装即可;
  # system-config-kickstart &
  

  可以全新创建,也可以依据其他的ks文件(如anaconda-ks.cfg)来修改生成新的配置文件;
  

  3.检测ks文件的语法是否存在错误:
  ksvalidator
  

  如果该命令不存在,可以安装pykickstart-1.74.20-1.el6.noarch
  

  http://172.16.72.1/ks.cfg
  

  利用一台CentOS7构建web server,方法如下:
  临时清理防火墙规则,并将selinux设置为permissive模式:
  ~]# iptables -F
  ~]# setenforce 0
  启动WEB服务
  ~]# systemctl start httpd.service
  查看web服务的运行状态,只要有绿色文字显示的active(running),即为服务正常启动;
  ~]# systemctl status httpd.service
  为CentOS 6提供repository
  ~]# mkdir /var/www/html/centos_6_repo
  ~]# mount /dev/sr0 /mnt/cdrom
  注意:光驱中放的是CentOS6的安装光盘的CD1;
  ~]# cp -a /mnt/cdrom/* /var/www/html/centos_6_repo
  

  到此,web服务器的配置完成;
  

  利用一台已经安装好的CentOS 6操作系统,创建启动光盘:
  将下述内容写入kickstart文件;
  ~]# vim /root/centos6-ks.cfg
  #platform=x86, AMD64, or Intel EM64T
  #version=DEVEL
  # Firewall configuration
  firewall --disabled
  # SELinux configuration
  selinux --disabled
  # Install OS instead of upgrade
  install
  # Use network installation
  network --onboot yes --device eth0 --bootproto dhcp
  url --url="http://172.16.72.1/myrepo"
  # Root password
  rootpw --iscrypted $1$iRHppr42$VMesh73wBqhUTjKp6OYOD.
  # System authorization information
  auth  --useshadow  --passalgo=sha512
  # Use text mode install
  text
  firstboot --disable
  # System keyboard
  keyboard us
  # System language
  lang en_US
  # SELinux configuration
  selinux --disabled
  # Reboot after installation
  reboot
  # System timezone
  timezone  Asia/Shanghai
  # System bootloader configuration
  bootloader --append="rhgb crashkernel=auto quiet" --location=mbr --driveorder="sda"
  # Clear the Master Boot Record
  zerombr
  # Partition clearing information
  clearpart --all
  # Disk partitioning information
  part /boot --fstype="ext4" --size=200
  part pv.008 --size=61440
  

  volgroup myvg --pesize=4096 pv.008
  logvol / --fstype=ext4 --name=root --vgname=myvg --size=20480
  logvol swap --name=swap --vgname=myvg --size=2048
  logvol /usr --fstype=ext4 --name=usr --vgname=myvg --size=10240
  logvol /var --fstype=ext4 --name=var --vgname=myvg --size=20480
  

  #repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100
  

  %post
  echo -e 'Qhdlink Linux for Learning Services\nhttp://www.linklinux.com\n' >> /etc/issue
  

  sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab
  

  ifconfig eth0 172.16.69.2/16
  

  %end
  

  %packages
  @base
  @core
  @debugging
  @basic-desktop
  @desktop-debugging
  @desktop-platform
  @desktop-platform-devel
  @development
  @directory-client
  @fonts
  @general-desktop
  @graphical-admin-tools
  @input-methods
  @internet-applications
  @internet-browser
  @java-platform
  @legacy-x
  @network-file-system-client
  @office-suite
  @print-client
  @remote-desktop-clients
  @server-platform
  @server-platform-devel
  @server-policy
  @workstation-policy
  @x11
  mtools
  pax
  python-dmidecode
  oddjob
  wodim
  sgpio
  genisoimage
  device-mapper-persistent-data
  systemtap-client
  abrt-gui
  desktop-file-utils
  jpackage-utils
  samba-winbind
  certmonger
  pam_krb5
  krb5-workstation
  openmotif
  libXmu
  libXp
  %end
  

  创建引导光盘:
  ~]# mkdir myiso
  ~]# cp -r /mnt/cdrom/isolinux /root/myiso/
  注意:这样的复制方法是将isolinux目录直接复制到myiso目录中,也就是说isolinux是myiso的子目录;
  ~]# vim /root/myiso/isolinux/isolinux.cfg
  label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/centos6-ks.cfg
  

  ~]# cp /root/centos6-ks.cfg /root/myiso/
  ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/
  

  创建U盘启动盘
  方法一:
  ~]# dd if=/dev/sr0 of=/dev/sdb
  方法二:
  ~]# fdisk /dev/sdb (将整个U盘分为一个分区,并将其分区类型修改为vfat,即在fdisk交互式模式中使用t --> b命令完成转换)
  ~]# mkfs.vfat /dev/sdb1
  ~]# mount /dev/sdb1 /mnt/usb
  ~]# mkidr -p /mnt/usb/grub
  ~]# cp /mnt/cdrom/isolinux/{vmlinuz,initrd.img} /mnt/usb
  ~]# vim /mnt/usb/grub/grub.conf
  default=0
  timeout=5
  title the linux boot from usb
  root (hd0,0)
  kernel /vmlinuz
  initrd /initrd.img ks=http://172.16.72.1/ks.cfg (将centos6-ks.cfg文件放置于CentOS7的/var/www/html目录中,改名为ks.cfg即可)
  ~]# grub
  grub> root (hd1,0)
  grub> setup (hd1)
  

运维网声明 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-450123-1-1.html 上篇帖子: centos 7 之systemd 下篇帖子: centos7 更改成自己想要的网卡名称
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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