二十一、磁盘管理

今日内容:磁盘管理
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 #增备已恢复
posted @ 2022-06-09 18:19  秋风お亦冷  阅读(258)  评论(0编辑  收藏  举报