磁盘管理
一、基础概念
-
挂载点
挂载点是一个目录,用于将磁盘分区或存储设备连接到 Linux 文件系统中。磁盘分区只有挂载到挂载点后,才能被系统访问和使用。例如,将/dev/sdb1分区挂载到/mnt/data目录,那么访问/mnt/data目录时,实际访问的就是/dev/sdb1分区里的内容。
挂载
-
手动挂载–临时挂载:mount 设备 挂载点
-
永久挂载—必须把挂载信息写入到/etc/fstab文件中。
注意:该文件中的挂载信息不能写错,一旦写错,系统重启后将无法
正常进入操作系统。
/etc/fstab文件中每个字段的意思如下:
第1字段:设备名或者是设备的UUID(建议使用UUID)
第2字段:挂载点(如果设备为交换分区时,此处应写为swap)
第3字段:文件系统类型,如xfs、ext4、swap等
第4字段:挂载参数,即mount -o 选项后可以使用的参数。
如:defaults(默认参数)、rw(可写)、ro(只读)、noexec(禁用执行程序)
第5字段:表示文件系统是否需要dump备份。(dump是一个备份工具),1为需要备份,
0为不需要备份,即被dump所忽略。
第6字段:该数字用户决定系统在启动时是否使用fsck命令,以进行磁盘检查的顺序。
0表示不检查,1表示优先检查,2表示其次检查。
xfs的文件系统不适用fsck检查,即可设置为0.
-
-
磁盘类型
SATA、SCSI、SAS类型的磁盘:在Linux中用sd来表示。
其中第一块硬盘为sda,第二块二sdb,以此类推。
第一块硬盘的第一个分区为sda1。nvme类型的磁盘,在Linux中使用nvmeXnYpZ进行表示。
X:数字,表示第几通道的NVME类型,第一个通道用0表示
Y:数字,表示第几块硬盘,第一个硬盘用1表示
Z:数字,表示第几个分区,第一个分区用1表示virtio-block类型:
在Linux中用vd表示,第一块硬盘为vda,第一个硬盘的第一个分区为vda1
二、磁盘管理常用命令
-
查看磁盘信息
fdisk -l --查看并确认磁盘的设备类型。
Device: 分区的设备文件名称。
Boot:是否是引导分区。如果是,则要有 “*”标志。
Start:该分区在磁盘中的起始位置(柱面数)。
End:该分区在磁盘中的结束位置(柱面数)。
sectors: 扇区,该分区的柱面数之和
size:大小
Id:分区对应的系统ID号,83表示Linux中的分区,82为swap分区。
type: 分区类型。parted -l --查看磁盘设备类型
使用
fdisk -l
查询,其中的dos表示使用的是MBR分区方法 -
分区方案:
**MBR(Master Boot Record):**主引导记录,最多创建15个分区。最大的磁盘和分区的大小为2TB
MBR分区直接存储数据和引导记录,分区表中没有备份。
磁盘中的第一个扇区就是MBR,也叫做主引导扇区。大小为512个字节。
其中主引导记录(启动代码)占用其中的446个字节,分区表占用了64个字节(每个分区定义的是16个字节),64/16=4,也就是说只能创建4个分区
结束标志占用2个字节。常见分区类型
- 主分区:一块磁盘最多 4 个,可直接被操作系统使用,适合存放重要且需独立管理的数据。
- 扩展分区:用于创建超过 4 个分区的情况,本身不能存储数据,是逻辑分区的容器。
- 逻辑分区:在扩展分区内创建,数量几乎无限制,用于存储数据。
KB MB GB TB PB EB ZB YB
**GPT(GUID Partition Table):**全局唯一表示分区表。
1、支持2TB以上的大硬盘
2、每个磁盘的分区个数几乎没有限制(最多只允许划分128个分区)
3、分区大小几乎没有限制,8ZB
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破坏后,
可以通过另外一份恢复GPT分区的数据和引导记录时分开存储的。
parted -l —列出所有的磁盘上的分区布局
parted /dev/sda print —列出某个硬盘的分区表
1MB=10^3=1000KB
1MiB=2^10=1024KiB若要对新的磁盘进行分区,首先需要为其写入磁盘标签。
将MBR磁盘标签写入磁盘
parted /dev/sdb mklabel msdos将GPT磁盘标签写入磁盘
parted /dev/vdb mklabel gpt
三、创建分区
fdisk指令
进入fdisk指令后:
p
:打印当前磁盘的分区表,查看已有的分区情况。n
:创建新分区。执行该命令后,根据提示选择分区类型(主分区、扩展分区或逻辑分区),并输入分区的起始和结束位置,或者直接按回车键使用默认值。d
:删除分区。输入要删除的分区编号,即可删除指定的分区。t
:更改分区的system id 号。输入分区编号和要设置的新类型的十六进制代码,例如,将分区类型设置为 Linux 文件系统,代码为83
;设置为交换分区,代码为82
。w
:将分区表的更改写入磁盘并退出fdisk
。这一步非常重要,如果不执行w
命令,之前的所有操作都不会生效。q
:不保存更改直接退出fdisk
。
parted指令
parted -l
或parted --list
:显示系统中所有磁盘的详细信息,包括磁盘大小、分区表类型、每个分区的起始和结束位置、文件系统类型等。
在终端输入
parted /dev/sdX
(/dev/sdX
为目标磁盘)进入parted
交互模式,之后可使用各种子命令进行分区操作:
创建新分区:输入
mkpart
,接着按提示依次设置分区名称、文件系统类型(如ext4
、xfs
等)、起始位置和结束位置。
- 创建分区时指定分区类型:输入
mkpart primary
或mkpart logical
来分别创建主分区或逻辑分区。**删除分区:**输入
rm
并跟上要删除的分区编号,如rm 2
会删除/dev/sdX
上的第二个分区。**调整分区大小:**输入
resizepart
,再跟上要调整大小的分区编号,然后按提示设置新的起始和结束位置。**切换分区表类型:**使用
mklabel
命令可切换磁盘的分区表类型,如mklabel gpt
将磁盘分区表类型切换为 GPT,mklabel msdos
切换为 MBR。**退出
parted
交互模式:**完成分区操作后,输入quit
退出parted
交互模式。mklabel ----选择使用哪种分区方式进行对该磁盘进行分区
msdos ----选择MBR方式进行分区
unit ----设置空间大小的单位
MB
mkpart ----新建分区
primary ----选择分区的类型(primary主分区,extended扩展分区)
xfs ----选择文件系统,此处只是标记,没有格式化。
1MB ----起始大小
501MB ----结束大小
quit —退出,默认是保存退出创建完成后需要执行udevadm settle,
等待系统检测新分区并在/dev目录下创建关联的设备文件【例:】
parted /dev/sdc mklabel msdos parted /dev/sdc mkpart primary xfs 1MB 501MB
注意:
- 操作前要备份重要数据,因为错误操作可能导致数据丢失。
- 对正在使用的分区进行操作可能影响系统正常运行,建议在操作前卸载相关分区。
- 分区操作完成后,部分系统可能需要更新内核的分区表信息,可使用
partprobe
命令实现。
创建MBR磁盘分区
-
通过fdisk指令创建分区:
步骤一:使用
fdisk -l
指令查看磁盘信息步骤二:进入到fdisk交互界面,对指定磁盘进行分区操作
fdisk /dev/sda ///dev/sda为实际操作的磁盘设备名
步骤三:创建分区
-
输入
n
新建主分区 -
输入
e
新建扩展分区 -
此时需要给扩展分区分配空间,如果直接回车会把当前磁盘剩余空间全部分配给扩展空间,如何需要指定分配空间,输入
+500M
此时会分配给扩张空间500m。 -
输入
w
保存退出。 -
输入
partprobe /dev/sda
指令将系统分析表同步到我的硬盘。
通过parted指令创建分区:
步骤一:进入
parted
交互界面步骤二:选择分区方案,设置分区表类型为 MBR
mklabel msdos
步骤三:创建MBR新分区,分配500Mib的空间,设置起始大小
步骤四:输入
p
查看当前分区情况步骤五:输入
quit
退出步骤六:使用
udevadm settle
指令同步到对应的分类表使用分区:
步骤一:通过
mkfs.
指令去格式化需要的系统文件可以通过
mkfs.+【回车】
去查看支持格式化的文件类型注意:CentOS7默认使用xfs系统文件
步骤二:选择xfs文件类型去格式化
[root@localhost ~]# mkfs.xfs /dev/sda6
步骤三:创建要挂载的目录
[root@localhost ~]# mkdir /test //创建挂载的目录
步骤四:使用
blkid
指令查看刚才格式化分区的UUID步骤五:进入/etc/fstab文件,配置挂载文件
[root@localhost ~]# vim /etc/fstab
步骤六:输入
mount -a
指令重新挂载步骤七:通过
df -Th
指令查看创建的分区是否被挂载 -
创建GPT磁盘分区
-
添加硬盘
-
使用
reboot
重启虚拟机 -
使用
fdisk -l
指令查看刚才添加的硬盘
-
使用
parted /dev/sdb
指令进行分区 -
输入
mklabel
-
设置gpt方案分区
-
输入
p
查看
-
输入
unit
设置单位为Mib -
输入
mkpart
创建分区
-
选择起始范围
-
输入
quit
退出 -
使用
udevadm settle
指令同步到对应的分类表 -
格式化为ext4的文件类型
[root@flocalhost ~]# mkfs.ext4 /dev/sdb1
-
通过
blkid
指令查看分区的UUOID
-
新建挂载点
[root@flocalhost ~]# mkdir /test1
-
进入/etc/fstab文件,配置挂载文件
[root@localhost ~]# vim /etc/fstab
-
配置挂载文件
-
使用
mount -a
指令重新挂载 -
使用
df -Th
指令查看
管理交换分区
交换分区又称作为虚拟内存,可以用来解决物理内存不足的问题。
free -h ---自动匹配单位查询交换分区的使用情况
free -m ---以M为单位查询交换分区的使用情况
free -G ---以G为单位查询交换分区的使用情况
-
非交互式创建swap分区
parted /dev/sdc mkpart primary linux-swap 1MB 501MB
-
格式化交换分区:
[root@localhost ~]# mkswap /dev/sdb2
-
进入
vim /etc/fstab
文件,修改配置文件
注意:swap交换分区不需要写挂载点
-
启用交换分区
[root@localhost ~]# swapon -a
-
使用
free -m
查看
swapoff -a ----关闭所有的交换分区
swapon -a ----开启所有的交换分区