今日内容:磁盘管理
partprobe 更新分区表命令
1、两种分区格式
mbr
gpt
2、制作文件系统并且挂载
3、制作swap分区
4、raid
硬raid #工作中常用
软raid #工作中不用
5、修复文件系统
6、xfs文件系统备份与恢复
全量备份:全部的备份一份
增量备份:只备份修改的那部分
7、LVM
传统分区方式:直接通过硬件操控,弊端浪费空间
LVM优点:解决传统方式的弊端
LVM弊端:通过LVM来操控硬件,效率略低
一、两种分区格式MBR、GPT
分区主要分为三类:主分区<<<扩展分区<<<逻辑分区
分区概念:
1>逻辑分区属于扩展分区,扩展分区属于主分区;
2>主分区又叫引导分区,是可以安装系统的分区;
1、两种分区格式MBR、GPT
MBR:意为“主引导记录”,最大支持2T以下的硬盘,4个主分区,或3个主分区+1个逻辑分区,分区后需保存才能生效;分区命令工具:fdisk 新硬盘路径;
GPT:意为“GUID分区表”,适合用于2T以上的硬盘,128个主分区,无需指定逻辑分区,分区后需保存才可生效;分区命令工具:gdisk 新硬盘路径;
PS:GPT正在逐渐取代MBR,它由UEFI辅助形成,UIFI是一种新的主板引导初始化的标准,从而替代MBR的legacy的传统启动方式;
传统BOIS是由硬件及软件构成,同样,UEFI也是由硬件和软件构成。从使用者的角度分析,UEFI的操作界面更加的人性化、布局更加的合理。目前,集成UEFI的笔记本基本上是具备UEFI的基础功能,设置界面和传统BIOS设置界面集成在一起。只有一些高端主板才具备完整的UEFI设置界面;同时,UEFI具备以下优点:
1>UEFI优点:开机更快
传统BIOS使用Int 13中断读取磁盘,每次只能读64KB,非常低效,
而UEFI每次可以读1MB,载入更快。
此外,Win8,更是进一步优化了UEFI支持,号称可以实现瞬时开机
2>UEFI缺点:不能装Windows7
1,在UEFI模式下安装的系统,只能用UEFI模式引导;
同理,如果是在Legacy模式下安装的系统,也只能在legacy模式下进系统。
2,uefi只支持64为系统且磁盘分区必须为gpt模式,
预装win8是采用UEFI+GPT(硬盘格式)。
二、制作MBR与GPT分区与挂载
首先查看分区的情况:
df -h #显示磁盘分区文、件系统类型
lsblk #df升级版,梳妆显示分区状况,推荐
分区命令:fdisk/gdisk
fdisk MBR分区命令
gdisk GPT分区命令
适用于磁盘小于2TB的磁盘,分区类型MBR,分区方案:分区后保存才生效
1>主分区4个
2>主3+1逻辑
fdisk/gdisk
命令按键
n 新建分区(p主分区,e扩展分区)
p 查看已创建的分区
d 删除分区
w 保存(分区完一定要保存)
m 查看帮助,列出常用命令
q 退出
1、开始创建制作分区(给房子做隔断):
新增一块硬盘,看一下sd开头新硬盘名:
[root@peng ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 256M 0 part /boot
├─sda2 8:2 0 768M 0 part [SWAP]
└─sda3 8:3 0 19G 0 part /
sdb 8:16 0 20G 0 disk #新插入的硬盘
sr0 11:0 1 4.5G 0 rom
以下以GPT分区作为演示:
[root@peng ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): n #创建
Partition number (1-128, default 1): 回车
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: #起始扇区,默认回车
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: 3G #设置大小
Current type is 'Linux filesystem' #回车
Hex code or GUID (L to show codes, Enter = 8300): #回车
Changed type of partition to 'Linux filesystem'
Command (? for help): w #保存
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y #写入
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully. #成功
再看一眼,新分区已经创建
[root@peng ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 256M 0 part /boot
├─sda2 8:2 0 768M 0 part [SWAP]
└─sda3 8:3 0 19G 0 part /
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 3G 0 part #新分区
sr0 11:0 1 4.5G 0 rom
2、制作文件系统与挂载、卸载
1>创建完分区后,开始制作文件系统(给房子装修)
制作为默认分区格式:mkfs.xfs:
磁盘必须格式化制作文件系统,之后挂载才能使用;
针对一块硬盘如:/dev/sdb,可以不分区直接格式化制作文件系统:
mkfs.xfs /dev/sdb #不分区的情况下,其实整体就是一个分区
或者基于MBR/GPT方式分完区之后,针对某一块分区制作文件系统:
mkfs.xfs /dev/sdb1
PS:Centos7选择xfs格式作为文件系统,且不再使用以前的ext,但仍然支持ext,xfs转为大数据产生,每个文件系统最大可支持8EB,单个文件克制好吃16TB,不仅数据大,扩展性还高!还可以通过xfsdump备份,xfsrestore恢复。
例:
制作文件系统mkfs.xfs格式
若失败,可用-f强制执行
[root@peng ~]# mkfs.xfs /dev/sdb1 -f
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65472 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=261888, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#制作成功
2>挂载
概念:这是有Linux的文件系统管理决定的; 因为Linux将所有的硬件设备都当做文件来处理,因此当使用光驱等硬件设备时,必须将其挂载到系统中,只有这样Linux才能识别。
lsblk 树状显示挂载信息
fdisk -l /dev/sdb 针对性查看挂在信息MBR
gdisk -l /dev/sdb 针对性查看挂在信息GPT
mount 挂载
选项
-a 挂载所有在/etc/fstab中定义的硬盘(文件系统)
-t 指定文件系统类型
umount 卸载
选项
-a 卸载/etc/mtab中记录的所有文件系统
-t 卸载选项中指定的文件系统
-l 分离文件系统再卸载
-f 强制卸载
手动挂载与卸载:
mount /dev/sdb1 /opt #挂载
umount /dev/sdb1 #卸载方式1
umount /opt #卸载方式2
umount -l /dev/sdb1 #强卸方式1
umount -l /opt #强卸方式2
umount /a /b /c #一次卸载多个
自动挂载
需修改永久挂载配置文件,添加UUID或路径:
blkid 可查看uuid
[root@peng ~] vim /etc/fstab
UUID=f61e8fa0-5737-4e75-bbfe-2e0625af815d / xfs defaults 0 0
UUID=232ae13e-75a5-46bc-a79b-df3ec3feb6ca /boot xfs defaults 0 0
/dev/sdb2 /test2 xfs defaults 0 0 #跟路径或UUID都可以
思考问题:
mount /dev/sdb1 /a
echo 123 > /a/1.txt
1、往目录a下新建的文件存到了哪里? #还在挂载的硬盘里,需重新挂载才能看
2、卸载/a后,数据是否存在? #不在
3、重新格式化/dev/sdb1后,数据是否依然存在? #不在
3、制作交互分区与开机自动挂载
也是添加一块硬盘,制作方式同上一样
制作步骤,共四步:
1>fdisk/gdisk分区;
2分区完同步一下:pratprobe
3>制作文件系统:swap /dev/sdb1 #swapon -s #列出所有工作中的swap
4>挂载交互分区:swapon /dev/sdb1
卸载:swapoff /dev/sdb1
swapoff -a 卸载所有交互分区
5>开机自动挂载 vim /etc/fstab #添加UUID或路径
PS:blkid 可查看uuid,复制后照葫芦画瓢即可
详细制作过程,共5步:
1>开始制作:fdisk/gdisk都可以,针对你的分区表类型
[root@peng ~] gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10
Found valid GPT with protective MBR; using GPT.
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: 1G #大小
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8200 #8200为swap分区
Changed type of partition to 'Linux swap' #已指定
Command (? for help): p
Number Start (sector) End (sector) Size Code Name
1 2048 2097152 1023.0 MiB 8200 Linux swap #已创建
Command (? for help): w #保存
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y #确定
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully. #成功
2>
[root@peng ~] partprobe #同步一下
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
3>mkswap制作文件系统
[root@peng ~] mkswap /dev/sdb2 #制作文件系统
Setting up swapspace version 1, size = 18873320 KiB
no label, UUID=01da1085-e434-484f-85e6-9e69b419e92a
[root@peng ~]# free -w #这时swap内存还没变
total used free shared buffers cache available
Mem: 995684 128532 655544 7768 10596 201012 722376
Swap: 2882552 0 2882552
4>swapon挂载交互分区
[root@peng ~]# swapon /dev/sdb2 #挂载启动一下
[root@peng ~]# free -w #swap分区就增大了
total used free shared buffers cache available
Mem: 995684 143188 640884 7768 10600 201012 707720
Swap: 21755872 0 21755872
成功
5>需修改永久挂载配置文件,添加UUID或路径:
[root@peng ~] vim /etc/fstab
UUID=f61e8fa0-5737-4e75-bbfe-2e0625af815d / xfs defaults 0 0
UUID=232ae13e-75a5-46bc-a79b-df3ec3feb6ca /boot xfs defaults 0 0
UUID=e357f973-88fe-4005-aafa-1db0de19ddb2 swap swap defaults 0 0
UUID=e97fd9ba-a251-4c9d-a04d-4fc0184300df swap swap defaults 0 0 #方式1
/dev/sdb1 swap swap defaults 0 0 #方式2
方式1:blkid查询UUID,复制进来即可,后面照抄;推荐
方式2:挂载源跟上挂载目标,后面照抄;
PS:#之间空一格分开即可,想美观的话就对齐~
4、 制作raid
参考图文链接:https://www.cnblogs.com/linhaifeng/articles/13921161.html
三、文件系统损坏与修复
xfs文件系统修复:
xfs_repair /dev/sdb1 #先尝试此命令
若失败,加-L强制修复 #若强制修复,数据就没了
ext文件系统修复:
fsck /dev/sda1
-f 强制修复
-y 免提示信息
四、xfs文件系统备份与恢复
首先模拟一个损坏的文件系统:创建、制作分区并挂载,然后写满:
[root@peng ~]gdisk/fdisk /dev/sdb #创建分区
[root@peng ~]partprobe #同步分区表
[root@peng ~]mkfs.xfs /dev/sdb2 #制作文件系统
[root@peng ~]mount /dev/sdb2 /opt #挂载到/opt
[root@peng ~]echo 123 > /opt/1.txt #写入文件
[root@peng ~]# dd if=/dev/zero of=/dev/sdb1 bs=500M count=1 #制作泡泡机往里吐泡泡,测试
PS:吐满之后,/opt/1.txt打不开/opt,这时尝试修复挂载源
[root@peng ~]umount /opt
[root@peng ~]xfs_pair /dev/sdb2 #尝试修复,若失败加-L强制修复
[root@peng ~]mount /dev/sdb2 /opt #再次挂载
[root@peng ~]cat /opt/1.txt #可能会打开
虽然有可能会打开,但不安全,所以不建议这么做,还是老老实实的做好备份最安全!
xfs文件系统修复:xfs_pair /dev/sdb2
ext文件系统修复:fsck -f -y /dev/sdb2
五、xfs文件系统备份与恢复
备份命令:xfsdump
恢复命令:xfsrestore
全备:首次备份就是全备,整个数据备份一份;
增备:只备份更改以后的数据;
xfsdump的五点使用限制:
1、必须用root权限
2、智能备份已挂载的文件系统
3、智能备份xfs文件系统
4、只能用xfsstore恢复
5、透过文件系统的UUID来分辨备份档,因此不能备份相通UUID的文件系统
备份与恢复的使用格式与参数,以及详细举例过程:
针对xfs文件系统
备份命令:xfsdump
语法:xfsdump 选项 参数 目标路径+新建文件名 备份源路径
选项
-l 默认不指定即全备0,1~9为增备
-L 指定标签名,备份源文件的描述信息
-M 描述信息全量或增量
-f 备份源路径(自定义名)后面目标路径尾部不要带/
恢复命令:xfsrestore
语法:xfsrestore 选项 备份文件的路径 恢复的目标路径
选项
-f 强制恢复
详细举例:
1>全备
制作完mkfs.xfs文件系统后,新建一个备份目标路径做准备,如aaa
[root@peng /]# mkdir aaa #在根下新建
[root@peng /]# mount /dev/sdb2 /opt
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part [SWAP]
└─sdb2 8:18 0 1G 0 part /opt
[root@peng /]# echo 123 > /opt/1.txt
[root@peng /]# cat /opt/1.txt
123
[root@peng /]# xfsdump -l 0 -L file_txt -M opt_all -f /aaa/all.bak /opt #全备
xfsdump: using file dump (drive_simple) strategy #注意!上面源路径/opt尾部不要写成这样/opt/
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 0 dump of peng:/opt
xfsdump: dump date: Sat Nov 7 17:52:55 2020
xfsdump: session id: 089dc151-3520-4c0d-974d-d8cfac69be69
xfsdump: session label: "file_txt"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary) #全备完成
[root@peng /]# ll /aaa
total 48
-rw-r--r-- 1 root root 21872 Nov 7 17:52 all.bak #全备文件
2>增备
[root@peng /]# xfsdump -l 1 -L file_txt -M opt_1 -f /aaa/1.bak /opt
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 1 incremental dump of peng:/opt based on level 0 dump begun Sat Nov 7 17:52:55 2020
xfsdump: dump date: Sat Nov 7 17:56:27 2020
xfsdump: session id: f3dbd13d-35d3-4bd5-93e2-dd63ab782e76
xfsdump: session label: "file_txt"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary) #增备完成
[root@peng /]# ll /aaa
total 48
-rw-r--r-- 1 root root 21896 Nov 7 17:56 1.bak #全备文件
-rw-r--r-- 1 root root 21872 Nov 7 17:52 all.bak #增备文件
3>查看并删除/opt下的源文件
[root@peng /]# ll /opt/
total 8
-rw-r--r-- 1 root root 4 Nov 7 17:50 1.txt
-rw-r--r-- 1 root root 4 Nov 7 17:53 2.txt
[root@peng /]# rm -rf /opt/*
[root@peng /]# ll /opt/
total 0
4>恢复:先恢复全备(初始备份文件),再逐个恢复增备,以免乱套
[root@peng /]# xfsrestore -f /aaa/all.bak /opt #恢复全备
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description:
xfsrestore: hostname: peng
[root@peng /]# ll /opt/ #搂一眼
total 4
-rw-r--r-- 1 root root 4 Nov 7 17:50 1.txt #全备已恢复
[root@peng /]# xfsrestore -f /aaa/1.bak /opt #恢复增备
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description:
xfsrestore: hostname: peng
[root@peng /]# ll /opt/ #搂一眼
total 8
-rw-r--r-- 1 root root 4 Nov 7 17:50 1.txt #之前恢复的全备
-rw-r--r-- 1 root root 4 Nov 7 17:53 2.txt #增备已恢复