1.1 歷史版本下載地址
https://opsx.alibaba.com/mirror #阿里雲鏡像站 http://vault.centos.org/ #歷史版本 http://vault.centos.org/7.2.1511/isos/x86_64/ #我這里使用的是7.2-1511版本
鏡像名字解釋:CentOS-7-x86_64-DVD-1708.iso
從 CentOS 7 之后,版本命名就跟發行的日期有關了
• CentOS-7 系統是7.x版本 • x86_64 64 位操作系統,並且從7以后不再提供32位鏡像。 • 1708 2017年08月發表的版本
1.2 CentOS7系統安裝
IP:10.0.0.201和172.16.1.201
主機名:CentOS7
磁盤空間:100G
安裝包組如右圖所示
防火牆和Selinux關閉
做好快照
1.2.1 新建虛擬機
1.2.2 安裝CentOS7系統
#開機
#按下TAB鍵
輸入一下指令修改網卡名稱為eth0
net.ifnames=0 biosdevname=0
#選擇語言
#設置網卡
#設置eth0和eth1
#勾選開機自啟動
#設置IP地址並保存eth1也是同樣步驟
#設置主機名
#設置上海時間
#關閉密碼保護
#設置分區
#這個是設置主分區
#這個是設置主分區
#格式化磁盤
#關閉kdump
#選擇系統安裝包
#設置root密碼
1.3 系統初始化技術演變
1.3.1 Sysvinit 技術
特點:
1. 系統第1個進程(pid=1)為init;
2. Init進程是所有進程的祖先,不可kill;
3. 大多數Linux發行版的init系統是和SystemV相兼容的,被稱為sysvinit。
4. 代表系統:CentOS5
#應用場景: 用於服務器時代。 #優點: SysVinit運行非常良好,概念簡單清晰。它 主要依賴於Shell腳本。 #缺點: ①按照一定順序執行啟動太慢。 ②很容易hang住,fstab與nfs掛載問題 #未來的趨勢: 個人PC機和移動平台,需要便捷、快的系統。
1.3.2 Upstart 技術
• CentOS6采用了Upstart技術代替sysvinit進行引導,Upstart對rc.sysinit腳本做了大量的優化,縮短了系統初始化時的啟動時間。但是CentOS6為了簡便管理員的操作,upstart的很多特性並沒有凸顯或者直接不支持,因此在CentOS6中的服務啟動腳本還是以原來SysV的形式提供的。
• But,一個應運而生的技術,卻因為競爭對手太強大,而被淘汰。
• 代表系統: CentOS6 ,Ubuntu14,從CentOS7,Ubuntu15開始使用systemd
1.3.3 Systemd 技術
• 新系統都會采用的技術(RedHat7,CentOS7,Ubuntu15等);
• 設計目標是克服 sysvinit 固有的缺點,提高系統的啟動速度;
• 和 Sysvinit 兼容,降低遷移成本;
• 最主要優點:並行啟動
• Pid為1的進程
[root@centos7 ~]# ps-ef|head -2 UID PID PPID C STIME TTY TIME CMD root 1 0 0 11:13 ? 00:00:01 /usr/lib/systemd/systemd --switched-root -- system --deserialize 21
1.3.4 並發啟動三大原理
1.解決 socket 依賴/端口依賴
2.采用了D-Bus作為程序之間的通信工具,類似消息隊列,可以緩存信息
3.解決文件系統依賴:優先啟動要用的文件系統,其余的文件系統都延遲啟動加載。
1.4 登錄系統 & 簡單優化
1.4.1 查看系統版本
[root@centos7 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@centos7 ~]# uname -r 3.10.0-327.el7.x86_64 [root@centos7 ~]# uname -m x86_64
1.4.2 補充安裝軟件包
yum install yum-utils cmake ncurses-devel libaio-devel make gcc gcc-c++ lrzsz dos2unix tree nmap nc dos2unix telnet nc sl telnet sl nano bash-completion vim net-tools wget curl lsof -y
1.4.3 關閉郵件
systemctl stop postfix #當前關閉 systemctl disable postfix #關閉開機自啟動 systemctl stop firewalld.service #關閉防火牆 systemctl disable firewalld.service #關閉開機自啟動 sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config #ssh優化 sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #關閉selinux 關機做快照
1.4.4 區別1:網卡名稱eth0和enp5s0/ens33
傳統上,Linux的網絡接口名稱為eth0、eth1…,但這些名稱並不一定符合實際的硬件插槽等,這可能會導致不同的網絡配置錯誤(例如,由無意的接口改名引起的禁止接口)。基於MAC地址的udev規則在虛擬化的環境中並不有用,這里的MAC地址如端口數量一樣無常。
• CentOS6/RHEL6引入了一致和可預測的網絡設備命名網絡接口的方法。這些特性可以唯一地確定網絡接口的名稱以使定位和區分設備更容易,並且在這樣一種方式下,無論是否重啟機器、過了多少時間、或者改變硬件,其名字都是持久不變的。然而,這種命名規則並不是默認在CentOS/RHEL6上開啟。
• 從CentOS7/RHEL7起,這種可預見的命名規則變成了默認。根據這一規則,接口名稱被自動基於固件,拓撲結構和位置信息來確定。現在,即使添加或移除網絡設備,接口名稱仍然保持固定,而無需重新枚舉,和壞掉的硬件可以無縫替換。
1.4.5 CentOS7 修改網卡名稱為eth0
在安裝系統的時候配置:修改內核選項,net.ifnames=0 biosdevname=0 #上面已經說過
1.4.6 已經安裝完系統修改為eth0
1.4.6.1 調整網卡名稱
[root@centos7 ~]# cd/etc/sysconfig/network-scripts/ #<==進入網卡文件目錄。 [root@centos7 network-scripts]# mv ifcfg-eno16777736 ifcfg-eth0 #<==進重命名網卡名稱
1.4.6.2 調整網卡的配置信息
[root@centos7 network-scripts]# cat ifcfg-eth0 #<==修改后的結果如下。 TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=eth0 #<==修改為eth0。 UUID=3e8d1581-84bd-44e8-ae70-467fa29e2585 DEVICE=eth0 #<==修改為eth0。 ONBOOT=yes DNS1=10.0.0.2 IPADDR=10.0.0.201 PREFIX=24 GATEWAY=10.0.0.2 IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_PRIVACY=no
1.4.6.3 修改並生成grub配置
修改后的結果如下,也可以在安裝系統或開機啟動時進行調整。
[root@centos7 network-scripts]# cat /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g'/etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=128M rhgb net.ifnames=0 biosdevname=0 quiet" #<==黃色底紋內容是添加的。
GRUB_DISABLE_RECOVERY="true"
[root@lcentos7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #<==生成grub啟動菜單。
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64
Found initrd image:/boot/initramfs-3.10.0-229.el7.x86_64.img
Found linux image:/boot/vmlinuz-0-rescue-1100f7e6c97d4afaad2e396403ba7f61
Found initrd image:/boot/initramfs-0-rescue-1100f7e6c97d4afaad2e396403ba7f61.img
Done
1.4.6.4 驗證是否修改結果
[root@centos7 ~]# network-scripts]# reboot #<==必須重啟系統。 [root@centos7 ~]# yum install net-tools -y #<== centos7默認沒有ifconfig 需要安裝net-tools包 [root@centos7 network-scripts]# ifconfig #<==再次查看網卡信息 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet10.0.0.201 netmask 255.255.255.0 broadcast 10.0.0.255 inet6fe80::20c:29ff:feae:ef19 prefixlen64 scopeid 0x20<link> ether00:0c:29:ae:ef:19 txqueuelen 1000 (Ethernet) RX packets36248 bytes 2319009 (2.2 MiB) RXerrors 0 dropped 0 overruns 0 frame 0 TXpackets 43090 bytes 67555745 (64.4 MiB) TXerrors 0 dropped 0 overruns 0 carrier 0 collisions 0
1.4.7 區別2:網絡配置相關命令
ip:yum -y install iproute CentOS7主推使用ip、ss命令。 • ifconfig:yum -y install net-tools • setup:yum -y install setuptool 廢棄命令 安裝好之后,你會發現里面什么都沒有,這只是一個圖形工具。我們需要用到的網絡服務,防火牆,系統服務等需要另外再安裝。安裝好setup tools工具之后,我們需要安裝工具組件如ntsysv(系統服務),system-config-networktui(網絡服務),iptables(防火牆配置)等。只需要部分的也可以只安裝需要的也行。 • nmtui:替代setup命令
1.4.8 區別3:主機名等配置文件
修改主機名 hostname CentOS7 臨時生效 編輯/etc/hostname 主機名的配置文件變了 hostnamectl set-hostname CentOS7 #→方法2,本質還是改配置文件。 修改字符集 localectl set-locale LANG=zh_CN. UTF-8 編輯/etc/locale.conf cat /etc/redhat-release 查看系統版本號 cat /etc/os-release 所有支持systemd系統的統一發行版名稱和版本號文件
1.4.9 區別4:兼容的 /etc/rc.local
需要加+x執行權限,才可以開機自啟動(一般有些軟件開機自啟動命令放在里面)
# Please note that you must run 'chmod+x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot.
1.4.10 區別5:運行級別Runlevel
Runlevel [root@CentOS7 ~]# cat /etc/inittab # inittab is no longer used when using systemd. • 當前啟動級別 [root@CentOS7 ~]# systemctl get-default multi-user.target • 設置啟動級別 systemctl set-default multi-user.target
1.4.11 systemd一統天下
看看從前的runlevel都變成什么樣了? ls -lh /usr/lib/systemd/system/runlevel*.target • 所有可用的單元文件存放在/usr/lib/systemd/system/和 /etc/systemd/system/目錄(后者優先級更高)。 ll -h /etc/systemd/system/default.target
1.4.12 區別6:管理服務
chkconfig • service • /etc/init.d/ • systemctl:融合service和chkconfig的功能於一體,兼容SysV和LSB的啟動腳本,而且夠在進程啟動過程中更有效地引導加載服務。。
1.4.13 啟動時間優化
開機啟動時間 systemd-analyze time • systemd-analyze blame • systemd-analyze plot > bootime.svg