维护基本存储空间
(使用一个块设备经过以下几个步骤)
添加磁盘:
1、查看磁盘(块设备)信息 --- lsblk
[root@localhost ~]# lsblk --- 重启后查看
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk --- 识别到了10G的新磁盘
sr0 11:0 1 6.6G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
2、分区格式
(内核在使用旧的分区表时创建新分区表,新的分区表下次重启才会生效)
(1)MBR分区
<1> 内容:MBR(Master Boot Record,主引导记录)是传统的分区机制,使用BIOS引导的PC设备,寻址空间只有32bit长,最大支持2.19TB
支持的分区数量:4个主分区或3个主分区1个扩展分区
<2> 标准MBR结构:
<3> 为什么MBR最多只能有4个主分区?
原因:分区表占据64个字节,可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节
<4> 分区类型:
【1】主分区(primary partition):一块硬盘最多4个主分区,主分区不可以再进行二次分区。可以用来引导、启动操作系统 ,同时,主分 区可以直接建立文件系统,如windows的NTFS,存放数据
【2】扩展分区(extended partition):一块硬盘最多一个,加主分区最多4个,不能创建文件系统,可以划分逻辑分区。
【3】逻辑分区(logical partition):可以创建文件系统,存放数据,同时,逻辑分区的数量没有限制
<5> 从引导操作系统的角度来看,有系统分区,启动分区,活动分区分类:
- 系统分区:用来启动操作系统,必须是主分区
- 启动分区:安装操作系统的分区,可以是主分区也可以是逻辑分区
- 活动分区:只能是作用于系统分区,有且仅有一个活动分区
考点:第二个SCSI硬盘的第三个逻辑分区如何表示
/dev/sdb7
在/dev目录下
<1> ide硬盘:hd开头
<2> sata,scsi硬盘:sd开头
<3> 云主机硬盘:vd开头
第一个硬盘为a,第二个为b
分区:5为第一个逻辑分区,第二个逻辑分区为7;第一个主分区为1,第二个主分区为2
(2)GPT分区
相较MBR的优点:
- 在默认情况下,GPT最多可支持128个分区
- 支持大于2.2TB的总容量及大于2.2TB的分区,最大支持18EB(1EB=1024PB,1PB=1024TB,1TB=1024GB)
- GPT分区表自带备份
- 向后兼容MBR。GPT分区表上包含保护性的MBR区域
流程:创建分区 ---> 格式化 ---> 挂载(linux中,挂载才能使用)
3、分区工具 --- 创建分区
fdisk只能用于MBR分区,gdisk,parted可以用于GPT分区
- fdisk大多数运维工作人员已经习惯这个交互模式
- parted命令在创建删除分区使用命令比较方便,可划分大于2TB的分区,但是功能不是太完善,没有备份还原命令
- gdisk在分区上命令和fdisk风格一样, 使用方便,学习难度低且功能强大,推荐使用
(1)fdisk --- 管理MBR分区
<1> 格式:fdisk 设备名
<2> 命令选项:(黄色为常用命令)
指令 | 作用 |
m |
查看所有指令的帮助信息
|
n |
创建新分区
|
p |
显示当前磁盘的分区信息
|
w |
把修改写入磁盘分区表,然后退出fdisk命令
|
d |
删除磁盘分区
|
q |
不保存更改,退出fdisk命令
|
a |
调整磁盘的启动分区
|
l |
显示所有支持的分区类型
|
g |
新建一个空的
GPT
分区表
|
t |
更改分区类型
|
u |
切换所显示的分区大小单位
|
o |
新建一个空的
DOS
分区表
|
例:对新建磁盘进行分区,创建一个500M的主分区
(2)gdisk --- 管理GPT分区
<1> 常用命令:([root@localhost ~]# gdisk /dev/sda --- 进入后再执行?命令)
(3)parted --- 两种使用方式
- 交互式:手动按序交互式创建
- 非交互式:将命令行写在脚本中,运行脚本实现一键创建;适用于远程批量管理多台主机
例1:交互式(创建500M的主分区)
[root@localhost ~]# parted --- 进入交互式界面
(parted) mklabel gpt --- 将磁盘标签类型改为gpt
(parted) mkpart primary xfs 1M 500M --- 创建主分区,1M到500M,文件系统类型为xfs
(parted) print --- 查看
(parted) quit --- 退出
例2:非交互式(创建1G的主分区)
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 500MB 400MB primary xfs
[root@localhost ~]# parted /dev/sda rm 1 --- 删除刚才创建的分区,1为编号
[root@localhost ~]# parted /dev/sda mklabel gpt --- 将分区类型转为gpt格式
[root@localhost ~]# parted /dev/sda mkpart primary xfs 1M 1024M --- 创建主分区,1M到500M,文件系统类型为xf
4、格式化
(1)目的:形成文件系统
(2)命令格式:mkfs|mkfs.xfs|mkfs.ext4 [选项] 分区的设备名
(3)选项:
-t(文件系统类型) |
当命令名为
mkfs
时
,
指定要创建的文件系统的类型
(
如
:xfs
、
ext4
、
vfat
等
)
。当命令名 为mkfs.xfs
、
mkfs.ext4
等时
,
不需要该选项
|
-c
|
建立文件系统前先检查坏块
|
-V
|
输出建立文件系统的详细信息
|
PS:如果已有其他文件系统创建在此分区,必须在mkfs.xfs 命令中加上选项 -f 强行进行格式化
常用命令:
- 法一:[root@localhost ~]# mkfs.xfs /dev/sda1
- 法二:[root@localhost ~]# mkfs -t xfs /dev/sda1
5、挂载
(1)挂载命令:mount [-t 文件系统类型] 设备名 挂载点目录
(2)卸载分区:umount 挂载点目录或存储设备名
(3)分类:
<1> 临时挂载:mount /dev/sda1 /data(直接在命令行输入)
挂载到/data目录下
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sda1 /data
[root@localhost ~]# df -h --- 查看挂载
/dev/sda1 495M 29M 466M 6% /data
<2> 永久挂载:需将挂载添加到/etc/fstab文件中
(4)永久挂载方法
- 分区文件名
- UUID
[root@localhost ~]# parted /dev/sda mkpart primary xfs 1M 800M --- 创建800M的主分区
[root@localhost ~]# parted /dev/sda mkpart primary xfs 801M 2000M --- 创建1200M的主分区
例1:将/dev/sda1挂载到/data --- 分区文件挂载
挂载前格式化文件系统:[root@localhost ~]# mkfs.xfs -f /dev/sda1
挂载:[root@localhost ~]# vim + /etc/fstab --- 进入编辑,+为将光标定位到最后一行
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=f6459400-5e6b-48b3-82f2-f0b2008c4865 /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sda1 /data xfs defaults 0 0
[root@localhost ~]# tail -1 /etc/fstab
/dev/sda1 /data xfs defaults 0 0
[root@localhost ~]# mount -a --- 读取文件/etc/fstab中没有挂载的,然后实现挂载
[root@localhost ~]# df -h |grep /data --- 查看挂载
/dev/sda1 756M 38M 719M 5% /data
例2:将/dev/sda2挂载到/soft --- UUID挂载
创建挂载点:[root@localhost ~]# mkdir /soft
挂载前格式化文件系统:[root@localhost ~]# mkfs.ext4 /dev/sda2
查询UUID:[root@localhost ~]# blkid /dev/sda2
/dev/sda2: UUID="9f5a888a-6f80-47e9-9022-b9ab21bbbebf" TYPE="ext4" PARTUUID="58a5fdc7-02"
挂载:[root@localhost ~]# vim + /etc/fstab --- 进入编辑,+为将光标定位到最后一行
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sda1 /data xfs defaults 0 0
UUID="9f5a888a-6f80-47e9-9022-b9ab21bbbebf" /soft ext4 defaults 0 0
查看:[root@localhost ~]# tail -1 /etc/fstab
UUID="9f5a888a-6f80-47e9-9022-b9ab21bbbebf" /soft ext4 defaults 0 0
[root@localhost ~]# mount -a --- 读取文件/etc/fstab中没有挂载的,然后实现挂载
查看挂载情况:[root@localhost ~]# df -h | grep /soft
/dev/sda2 1.1G 2.8M 1018M 1% /soft
[root@localhost ~]# mount | grep soft
/dev/sda2 on /soft type ext4 (rw,relatime,seclabel)
6、案例
(1)fdisk --- 创建一个5G的扩展分区,划分逻辑分区,500M和1G
(2)gdisk --- 创建和删除分区
例1:创建分区
[root@localhost ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.3
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 (2048-20971486, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-20971486, default = 20971486) or {+-}size{KMGTP}: +1G --- 设置大小
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/sda.
The operation has completed successfully.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
└─sda1 8:1 0 1G 0 part
sr0 11:0 1 6.6G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
格式化:[root@localhost ~]# mkfs.xfs -f /dev/sda1
挂载:[root@localhost ~]# mount /dev/sda1 /data
例2:删除分区
首先卸下挂载:[root@localhost ~]# umount /dev/sda1
(3)parted --- 创建一个5G的扩展分区,逻辑分区为800M
<1> 交互式
[root@localhost ~]# parted --- 进入交互式界面
(parted) mklabel msdos --- 转换类型为msdos
(parted) mkpart extended 1M 5G --- 划分扩展分区
(parted) mkpart logical xfs 1M 800M --- 文件系统类型为xfs
<2> 非交互式
转换类型为msdos:[root@localhost ~]# parted /dev/sda mklabel msdos
划分扩展分区:[root@localhost ~]# parted /dev/sda mkpart extended 1M 5G
创建逻辑分区:[root@localhost ~]# parted /dev/sda mkpart logical xfs 1M 800M ---文件系统类型为xfs