Centos7与Centos6的区别
CentOS7
修改网卡名称为eth0、eth1
方法1
修改网卡名称
-
cd /etc/sysconfig/network-scripts/
-
mv ifcfg-eno16777736 ifcfg-eth0
-
mv ifcfg-eno33554960 ifcfg-eth1
修改网卡配置文件
-
[root@bogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
-
TYPE=Ethernet
-
BOOTPROTO=static
-
NETMASK=255.255.255.0
-
IPADDR=10.0.0.110
-
GATEWAY=10.0.0.2
-
DEFROUTE=yes
-
PEERDNS=yes
-
PEERROUTES=yes
-
IPV4_FAILURE_FATAL=no
-
NAME=eth0
-
UUID=582bec32-fa8b-415e-9cdc-873035dc336d
-
DEVICE=eth0
-
ONBOOT=yes
-
[root@bogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
-
TYPE=Ethernet
-
BOOTPROTO=static
-
DEFROUTE=yes
-
PEERDNS=yes
-
PEERROUTES=yes
-
IPV4_FAILURE_FATAL=no
-
NAME=eth1
-
UUID=7a62954e-574f-41cc-b4f6-3c802fa4a819
-
DEVICE=eth1
-
ONBOOT=yes
修改grub
加入以下内容(红色部分)
-
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="rhgb net.ifnames=0 biosdevname=0 quiet"
-
GRUB_DISABLE_RECOVERY="true"
生成启动菜单
grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统
reboot
方法2
net.ifnames=0 biosdevname=0
-
vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet net.ifnames=0 biosdevname=0
方法3
cobbler装机时设置
安装一些基础命令
yum -y install wget vim bash-completion lrzsz nmap telnet tree net-tools bind-utils
关闭防火墙和 selinux
关闭防火墙
systemctl stop firewalld.service
禁止防火墙开机启动
systemctl disable firewalld.service
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
关闭selinux
[root@bogon ~]# getenforce
Enforcing
[root@bogon ~]# setenforce 0
[root@bogon ~]# getenforce
Permissive
[root@bogon ~]# vim /etc/selinux/config
开机启动流程
sysvinit技术
特点:
1、系统第一个进程(pid=1) 为 init
2、init进程是所有进程的祖先,不可kill
3、大多数linux发行版的init系统是和systemv相兼容的,被称为sysvinit
4、代表系统 CentOS5 CentOS 6
应用场景
用于服务器时代
优点
sysvinit运行非常良好,概念简单清晰。它主要依赖于shell脚本
缺点
1、 按照一定顺序执行 启动太慢
2、很容易夯住,fstab与nfs挂载问题
未来的趋势
个人pc机和移动平台,需要便捷、快的系统
5 upstart技术
CentOS6采用了upstart技术代替sysvinit进行引导,upstart对rc.sysinit脚本做了大量的优化,缩短了系统初始化时的启动时间。但是CentOS6为了简便管理员的操作,upstart的很多特性并没有凸显或者直接不支持,因此在CentOS6中的服务启动脚本还是以原来sysv的形式提供的
一个应运而生的技术,却因为竞争对手太强大,而被淘汰
代表系统:Ubuntu14,从ubuntu15开始使用systemd
http://0pointer.de/blog/projects/why.html
initctl start 服务名
disable
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 16:29 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
A,B,C,D四个任务有依赖关系
1、init:总时间T1+T2+T3+T4+T5+T6+T7
2、upstart:总时间T1+T2+T3 启动速度加快,但是有依赖关系的服务还是必须先后启动
3、systemd:总时间T,即使有依赖关系的服务,也能并发启动
并发启动原理之一:解决socket依赖/端口依赖
并发启动原理之二:解决D-Bus依赖:采用了D-Bus作为程序之间的通信工具,类似消息队列,可以缓存信息
并发启动原理之三:解决文件系统依赖:类似autofs机制
CentOS7系统安装
下载地址:
http://vault.centos.org/
镜像名称解释
CentOS-7-x86_64-DVD-1611.iso
从CentOS 7 之后,版本命名就跟发行的日期有关了
CentOS-7 系统是7.x版本
x86_64 64位操作系统,并且从7以后不再提供32位镜像
1611 2016年11月发布的版本
CentOS6到CentOS-7变化
使用CentOS-7最直观的变化就是服务管理了。
services使用了systemd来代替sysvinit管理
systemd是Linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布。其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。
与多数发行版使用的System V风格init相比,systemd采用了以下新技术:
采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;
用cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
从设计构思上说,由于systemd使用了cgroup与fanotify等组件以实现其特性,所以只适用于Linux。
systemd的服务管理程序:
systemctl是主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。
-
启动一个服务:systemctl start postfix.service
-
关闭一个服务:systemctl stop postfix.service
-
重启一个服务:systemctl restart postfix.service
-
显示一个服务的状态:systemctl status postfix.service
-
在开机时启用一个服务:systemctl enable postfix.service
-
在开机时禁用一个服务:systemctl disable postfix.service
-
查看服务是否开机启动:systemctl is-enabled postfix.service;echo $?
-
查看已启动的服务列表:systemctl list-unit-files|grep enabled
网卡名称区别
区别1:网卡名称eth0和enp5s0
传统上,linux的网络接口名称为eth0、eth1...,但这些名称并不一定符合实际的硬件插槽等,这可能会导致不同的网络配置错误(例如,由无意的接口改名引起的禁止接口)。基于MAC地址的udev规则在虚拟化的环境中并不有用,这里的MAC地址如端口数量一样无常
CentOS6/RHEL6引入了一致和可预测的网络设备命名网络接口的方法。这些特性可以唯一地确定网络接口的名称以使定位和区分设备更容易,并且在这样一种方式下,无论是否重启机器、过了多少时间或者改变硬件,其名字都是持久不变的。然而,这种命名规则并不是默认在CentOS/RHEL6上开启
从CentOS7/RHEL7起,这种可预见的命名规则变成了默认。根据这一规则,接口名称被自动基于固件,拓扑结构和位置信息来确定。现在,即使添加或移除网络设备,接口名称仍然保持固定,而无需重新枚举,和坏掉的硬件可以无缝替换
修改主机名
-
[root@centos7 ~]# hostnamectl set-hostname c77
-
[root@centos7 ~]# hostname
-
c77
-
[root@centos7 ~]# cat /etc/hostname
-
c77
字符集
-
[root@centos7 ~]# localectl set-locale LANG=zh_CN.UTF-8
-
[root@centos7 ~]# localectl status
-
System Locale: LANG=zh_CN.UTF-8
-
VC Keymap: us
-
X11 Layout: us
-
[root@centos7 ~]# cat /etc/locale.conf
-
LANG=zh_CN.UTF-8
时区
-
[root@centos7 ~]# timedatectl status
-
Local time: Fri 2017-03-10 16:41:59 CST
-
Universal time: Fri 2017-03-10 08:41:59 UTC
-
RTC time: Fri 2017-03-10 08:41:59
-
Time zone: Asia/Shanghai (CST, +0800)
-
NTP enabled: n/a
-
NTP synchronized: no
-
RTC in local TZ: no
-
DST active: n/a
查看系统版本
-
[root@centos7 ~]# cat /etc/os-release
-
NAME="CentOS Linux"
-
VERSION="7 (Core)"
-
ID="centos"
-
ID_LIKE="rhel fedora"
-
VERSION_ID="7"
-
PRETTY_NAME="CentOS Linux 7 (Core)"
-
ANSI_COLOR="0;31"
-
CPE_NAME="cpe:/o:centos:centos:7"
-
HOME_URL="https://www.centos.org/"
-
BUG_REPORT_URL="https://bugs.centos.org/"
-
-
CENTOS_MANTISBT_PROJECT="CentOS-7"
-
CENTOS_MANTISBT_PROJECT_VERSION="7"
-
REDHAT_SUPPORT_PRODUCT="centos"
-
REDHAT_SUPPORT_PRODUCT_VERSION="7"
设置系统启动级别
-
[root@centos7 ~]# systemctl set-default multi-user.target
-
Removed symlink /etc/systemd/system/default.target.
-
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
-
[root@centos7 ~]# systemctl get-default
-
multi-user.target
查看系统启动级别
-
[root@centos7 ~]# ll -h /usr/lib/systemd/system/runlevel*.target
-
lrwxrwxrwx. 1 root root 15 Mar 10 14:02 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
-
lrwxrwxrwx. 1 root root 13 Mar 10 14:02 /usr/lib/systemd/system/runlevel1.target -> rescue.target
-
lrwxrwxrwx. 1 root root 17 Mar 10 14:02 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
-
lrwxrwxrwx. 1 root root 17 Mar 10 14:02 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
-
lrwxrwxrwx. 1 root root 17 Mar 10 14:02 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
-
lrwxrwxrwx. 1 root root 16 Mar 10 14:02 /usr/lib/systemd/system/runlevel5.target -> graphical.target
-
lrwxrwxrwx. 1 root root 13 Mar 10 14:02 /usr/lib/systemd/system/runlevel6.target -> reboot.target
查看启动级别
-
[root@centos72?~]#systemctl get-default
-
multi-user.target
-
[root@centos72?~]#?systemctl?set-default graphical.target
-
Removed?symlink?/etc/systemd/system/default.target.
-
Created?symlink?from?/etc/systemd/system/default.target?to?/usr/lib/systemd/system/graphical.target.
-
[root@centos72?~]#?systemctl?set-default?multi-user.target
-
Removed?symlink?/etc/systemd/system/default.target.
-
Created?symlink?from?/etc/systemd/system/default.target?to?/usr/lib/systemd/system/multi-user.target.
服务管理程序存放位置
/usr/lib/systemd/system /etc/systemd/system/ [root@centos7 ~]# ll -h /etc/systemd/system/default.target lrwxrwxrwx 1 root root 41 Mar 10 16:49 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
systemd 管理程序
Sysvinit |
Systemd |
备注 |
/etc/init.d/crond start |
systemctl start crond.service |
启动服务 |
/etc/init.d/crond stop |
systemctl stop crond.service |
停止服务 |
/etc/init.d/crond restart |
systemctl restart crond.service |
重启服务 |
/etc/init.d/crond status |
systemctl status crond.service |
查看服务运行状态 |
chkconfig --list |
systemctl list-unit-files |
列出各运行级别服务的启用和禁用情况 |
chkconfig crond on |
systemctl enable crond.service |
设置开机自启动服务 |
chkconfig crond off |
systemctl disable crond.service |
设置开机不启动服务 |
chkconfig --list crond |
systemctl is-enabled crond.service |
检查当前服务的设置状态 |
chkconfig --add crond |
systemctl daemon-reload |
修改服务文件时更新设置 |
系统服务启动时间查看
systemd-analyze time systemd-analyze blame
导出图片
systemd-analyze plot > bootime.svg
学习资料:
http://www.jinbuguo.com/systemd/systemd.service.html https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/index.html http://www.cnblogs.com/justphp/p/6120201.html