Linux_17 MBR和GPT,LVM 及网卡配置

1.两种分区格式
	mbr分区格式:使用fdisk进行分区,最多4个主分区,通常用于小于2T的磁盘空间
	gpt分区格式:使用gdisk进行分区,最多128个主分区,通常用于大于2T的磁盘空间
	
	命令:
		m:查看帮助
		q:退出
		n:新建分区(p主分区 e扩展分区)
		p:
		w:保存
		d:删除分区

blkid  # 显示磁盘分区后的块的UUID,及该块使用的文件系统类型
lsblk  # 显示当前主机所有磁盘块分区及挂载信息


/etc/fstab
第四列:
    async/sync # 是否同步方式运行,默认async(异步)
    user/nouser # 是否允许普通用户使用mount命令挂载,默认nouser。
    exec/noexec # 是否允许可执行文件的执行,默认exec。
    suid/nosuid # 是否允许存在suid属性的文件,默认suid。
    auto/noauto # 执行mount -a 时,此文件系统是否被主动挂载,默认auto
    rw/ro  # 是否只读或者读写模式进行挂载。默认rw.
    defaults  # 具有rw,suid,exec,auto,nouser,async等默认参数

第五列:dump:表示该挂载后的文件系统能否被dump备份命令作用;
    0:代表不做备份
    1:代表要每天进行备份操作

GPT分区格式

在虚拟机上添加一块大于2T的虚拟硬盘,然后重新启动虚拟机,才能加载新的硬盘。ls /dev/sd  按tab键 发现新的添加的硬盘已经被加载出来了。如果是在物理机上插入一块物理磁盘,磁盘是热加载,直接能看到新磁盘的加入,无需重启物理机。

gdisk # 分区

mkfs.xfs /dev/sdc1 # 格式化成xfs类型的文件系统
mkfs.xfs /dev/sdc2 # 格式化成xfs类型的文件系统

mkdir /test{3,4}
mount /dev/sdc1 /test3
mount /dev/sdc2 /test4

制作交换分区和挂载

# 创建一个新的分区作为交换分区
fdisk/gdisk  # gdisk需要yum安装
	8200 指定制作成交换分区
partprobe # 让内核重新读取分区表 不然 ls /dev/sd 按tab键 新建的分区可能没加载进来
mkswap /dev/sdc3 # 将sdc3格式化为交换分区
swapon /dev/sdc3 # 激活交分区

# 开机自动挂载
vim /etc/fstab
/dev/sdb6 swap                                      swap    defaults        0 0
/dev/sdc3 swap                                      swap    defaults        0 0

mount -a # 将/etc/fstab下的分区重新挂载  下次开机就可以自动挂载了

文件系统损坏与修复

重新添加一块硬盘
fdisk /dev/sdb # 分一个1G的分区
mkfs.xfs /dev/sdb1
mount /dev/sdb1 /mnt
echo 111 > /mnt/a.txt

# 模拟损坏
dd if=/dev/zero of=/dev/sdb bs=500M count=1
umount /mnt
mount /dev/sdb1 /mnt # 无法挂载

# 修复
先尝试命令:xfs_repair /dev/sdb
如果失败,加选项 -L 执行强制修复:
	xfs_repair -L /dev/sdb


ps:如果是ext文件系统,修复需要用fsck命令 # centos6的系统使用的是ext4

fsck -f -y /dev/sda1

-y 对所有问题都回答"yes"
-f 即使文件系统标记为 clean也强制进行检查




xfs文件系统备份与恢复

rpm -qf `which xfsdump`
rpm -qf `which xfsrestore`

xfsdump 的备份级别有以下两种,默认为0(即完全备份)
0   完全备份
1  <= level <= 增量备份:

ps:增量备份是和第一次的备份(level 0)进行比较,仅备份有差异的文件

xfsdump常用参数:

-L:xfsdump会记录每次备份的session Label,这里可以填写针对此文件系统简要说明;
-M:xfsdump可以记录存储Media Label,这里可以填写此媒体的剪辑说明。
-l: 是L的小写,就是指定level,有0~9共10个等级,默认为0,即完整备份。
-f:后面接产生的文件和destination file 。 例如 /dev/st0 设备文件名或其他一般文件名
-I:大写的"i",从/var/lib/xfsdump/inbentory 列出目前备份的信息状态。

xfsdump使用限制:

1.必须用root权限
2.只能备份已挂载的文件系统
3.只能备份XFS文件系统
4.只能用xfsrestore解释
5.透过文件系统的UUID来分辨备份档,因此不能备份相同UUID的文件系统

xfsdump备份与xfsrestore恢复
# 1.数据备份
# 1.1 先做全量备份,切记“备份的源路径”末尾不要加左斜杠/
xfsdump -l 0 -L sdb3_bak -M sdb3_bak -f 全量备份的成果路径1 备份的源路径
	echo 111>/test1/1.txt
	xfsdump -l 0 -L sdb1_bak -M sd5_bak -f /sdb1_bak_all /test1

# 1.2 再做增量备份
xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径2 备份的源路径
	echo 333333333 > /test1/3.txt
	echo 22222 >> /test1/1.txt
	xfsdump -l 1 -L sdb1_bak -M sd5_bak -f /sdb1_bak_add1 /test1 

xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径3 备份的源路径
	echo 444 >> /test1/3.txt
	xfsdump -l 1 -L sdb1_bak -M sd5_bak -f /sdb1_bak_add2 /test1 

xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径4 备份的源路径

# 2.数据恢复
# 2.1 先恢复全量备份
xfsrestore -f 全量备份的成果路径1 数据恢复的路径
	xfsrestore -f /sdb1_bak_all /test1
# 2.2 再依次恢复增量
xfsrestore -f 增量备份的成果路径2 数据恢复的路径
	xfsrestore -f /sdb1_bak_add1 /test1
	ls /test1
		1.txt
	cat /test1/1.txt
xfsrestore -f 增量备份的成果路径2 数据恢复的路径
	xfsrestore -f /sdb1_bak_add2 /test1
	ls /test1
		1.txt 3.txt
	cat /test1/1.txt
	cat /test1/3.txt

LVM

为何要用lvm

我们在对磁盘分区的大小进行规划时,往往不能确定每个分区使用的空间大小,只能凭经验分配一个大小,而我们通常使用的fdisk、gdisk等工具对磁盘分区后,每个分区的大小就固定死了,这么做的问题是:
	# 如果分区设置的过大,就会白白浪费了磁盘空间
	# 如果分区设置的过小,就会导致空间不够用的情况出现
	对于分区过小的问题,我们可以重新划分磁盘的分区,或者通过软连接的方式将此分区的目录链接到另外一个分区
	
	上述问题可以通过LVM来解决

什么是lvm

逻辑卷管理LVM是硬盘的一个系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理"逻辑卷",而不是直接使用物理磁盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

通过LVM技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后子啊这些卷上建立相应的文件系统。下面是LVM中主要设计的一些概念。

物理卷(physical volume),把常规的磁盘设备通过pvcreate命令对其进行初始化,形成了物理卷。其实就是硬盘或分区。
卷组(VG,volume group):把多个物理卷组成一个逻辑的整体,这样卷组的大小就是多个硬盘之和。或者理解就是由一个或多个PV组成的整体。

基本单元(PE,physical extend):分配的逻辑大小的最小单元,默认为4MB的基本块。(假设分配100MB逻辑空间,则需要创建25个PE)

LVM优缺点总结:
# 优点:
1. 可以在系统运行的状态下动态的扩展文件系统的大小。
2.文件系统可以跨多个磁盘,因此文件系统的大小不会受物理磁盘的限制。
3.可以增加新的磁盘到LVM的存储池中。
4.可以以镜像的方式冗余重要的数据到多个物理磁盘。
5.可以方便的导出整个卷组到另外一台机器。

# 缺点:
1.因为加入了额外的操作,存取性能收到影响。
2.当卷组中的一个磁盘损坏时,整个卷组都会收到影响。
解释:LVM如果有一个磁盘损坏,整个LVM都坏了,LVM只有动态扩展作用,
方案:底层用RAID+上层LVM=既有冗余又有动态扩展

2.在从卷组中移除一个磁盘的时候必须使用reducevg命令(该命令要求root权限,并且不允许在快照卷组中使用)

LVM的使用

yum install -y lvm2

准备一个硬盘空间(分区,一整块盘)

1.制作pv:可以对分区做、也可以对整块盘    
    pvcreate /dev/sdb1
    pvcreate /dev/sdc
    pvs # 查看
	pvscan
    	PV /dev/sdb1
        PV /dev/sdc
	
    vgcreate -L 10G -n lv1_from_vg1 vg1
    mkfs.xfs /dev/vg1/lv1_from_vg1
    mount /dev/vg1/lv1_from_vg1 /test1

网卡

网卡名字

# 网卡名称规则
    Centos6之前基于传统的命名方式如:eth1,eth0...
    CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名时全自动的、可预知的,缺点是比eth0更难读。比如ens33

# 了解网卡命名的策略:
规则1:如果Fireware或者BIOS提供的设备索引信息可用就用此命名。比如eno1.否则使用规则2
规则2:如果Fireware或Bios的PCI-E扩展插槽可用就用此命名。比如ens1,否则使用规则3
规则3:如果硬件接口的位置信息可用就用此命名。比如enp2s0
规则4:根据MAC地址命名,比如enx7d3e9f。默认不开启
规则5:上述均不可用时回归传统命名方式

上面的 所有命名 规则需要依赖一个安装包:biosdevname
biosdevname和net.ifnames属于两种不同的命名规范
CentOS-7中默认biosdevname的值为0,net.ifnames的值为1。

配置回归传统命名方式:
cd /etc/sysconfig/network-scripts/
mv ifcfg-ens33 ifcfg-eth0

# 修改网卡配置文件设备名称
sed -i "s#ens33#eht0g" ifcfg-eth0

# GRUB添加kernel参数
vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="rhgb quiet 'net.ifnames=0 biosdevname=0'"

# 加载到引导分区
grub2-mkconfig -o /boot/grub2/grub.cfg

# 重启系统生效
reboot

基本网络配置

查看网卡信息

# 查看当前系统所连接的所有网卡
lspci | grep -i eth
# 确认网线已经连接好,以eth0为例
mii-tool eth0 
	eth0: negotiated 1000baseT-FD flow-control, link ok # link ok 网卡能够别识别,并且接了有效的网线

mii-tool eth1
    SIOCGMIIPHY on 'eth1' failed:Invalid argument
    网卡虽然能够被识别(网卡已经被驱动了,但不能用:网卡配置错误,网线没接等)


ifconfig eth1 up # 	启动网卡
ifconfig eth1 172.16.10.11/24 # 临时生效,重启机器IP需要重新配置,要想长久有效,必须在/etc/sysconfig/network-scripts/目录中重新添加一份ifcfg-ethX格式的文件。这样每次开机都会加载这个文件,给ethX网卡配置IP

ifconfig命令:
ifconfig -a # 查看所有网卡信息
ifconfig eth0 # 查看单个网卡信息
ifconfig eth0 192.168.1.122 netmask 255.255.255.0 临时设定IP和掩码(重启服务或系统都失效)
ifconfig eth0 192.168.1.122/24
ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0 # 配置子接口实际这张网卡是虚的,流量还是走eth0
# 删除:下属两种方式都可以
ifconfig eth0:0 down
ifconfig eth0:1 del 192.168.0.2 # 删除,不必加掩码

# 开启与关闭
ifconfig eth0 down | up # 不加载网卡配置文件
ifconfig eth0 | ifup eth0 # 加载网卡配置文件

ping 命令

ping 目标IP地址 # ctrl+c结束,测试是否两台主机网络是否通
ping -c 次数 目标IP地址

# 在自己的机器上执行,则禁用别人ping自己
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

NetworkManager 服务
NetManager作用:是redhat6自带的检测网络、自动连接网络的图形化工具。NetworkManager服务会干扰网络配置,如:DNS经常会被刷掉,所以通常关闭。
systemctl stop NetworkManager
systemctl disable NetworkManager

网卡相关的配置文件:/etc/sysconfig/network-scripts/ifcfg-ethX 接口的网络配置文件

# 打开网卡配置文件,完成静态ip配置,修改完毕后重启网络服务即可:systemctl restart network
DEVICE=eth0  # 网卡名字
BOOTPROTO=static # dhcp 动态获取IP,none 根据其他选项决定动态还是静态,static肯定是手工指定IP
NM_CONTROLLED=no # 如果NetworkManager服务启用,该网卡配置文件也不受该服务管理
ONBOOT=yes  # 网络服务启动的时候,yes代表激活状态,no代表禁用
TYPE=Ethernet
IPADDR=10.1.1.11 # IP 地址
NETMASK=255.255.255.0
GATEWAY=10.1.1.1 # 默认网关
DNS1=10.1.1.1 # DNS1服务器
DNS2=8.8.8.8
HWADDR=14:da:e9:eb:a9:61  # MAC地址
USERCTL=no # 是否允许普通用户启动或停止该网卡
IPV6INIT=no  # 是否在该网卡上启动IPV6的功能
PEERDNS=yes  # 是否允许网卡在启动时向DHCP服务器查询DNS信息,设置为yes时,此文件设置的DNS将覆盖/etc/resolv.conf,若开启了DHCP,则 默认为yes,所以dhcp的dns也会覆盖/etc/resolv.conf

dns配置文件
1./etc/resolv.conf # DNS解析文件
cat /etc/resolv.conf # 色湖之DNS指向,最多3个
nameserver 8.8.8.8 # 对应网卡配置文件中的配置项DNS1
nameserver 192.168.12.1 # 对应网卡配置文件中的配置项DNS2

2./etc/hosts 本地名称解析文件,优先于DNS
ps:dns检索优先级
浏览器DNS缓存-->本地系统DNS缓存-->本地计算机HOSTS文件-->ISP DNS缓存-->递归or迭代搜索

永久设置主机名:
hostnamectl set-hostname chao.zhang.com
hostname

端口和服务的对应关系
	grep '^ftp|^ssh' /etc/services
	


原文地址:https://www.cnblogs.com/zhangchaocoming/p/14831259.html