磁盘管理
十二、磁盘管理
12.1、硬盘分区符认识
MBR 概述:全称为 Master Boot Record,即硬盘的主引导记录。
硬盘的 0 柱面、0 磁头、1 扇区称为主引导扇区(也叫主引导记录 MBR)。它由三个部分组成,主引导程序、硬盘分区表 DPT(Disk Partition table)和分区有效标志(55AA)。在总共 512 字节的主引导扇区里主引导程序(boot loader)占 446 个字节,第二部分是 Partition table 区(分区表),即DPT,占 64 个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是 magic number,占 2 个字节,固定为 55AA。
分区编号:主分区 1-4 ,逻辑分区 5……
LINUX 规定:逻辑分区必须建立在扩展分区之上,而不是建立在主分区上
分区作用:
主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot 分区最好放在主分区上
扩展分区不能使用的,它只是做为逻辑分区的容器存在的;我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中
如果你用的是 GPT 的分区方式,那么它没有限制主分区个数
注意:使用分区工具 fdisk 对磁盘进行操作,分区,格式化(重点)
[root@Hengji ~]# ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3
命名方式: /dev/sd[a-z]n
其中:a-z 表示设备的序号,如 sda 表示第一块 scsi 硬盘,sdb 就是第二块…
n 表示每块磁盘上划分的磁盘分区编号
12.2、 使用 fdisk 管理分区
fdisk:磁盘分区,是 Linux 发行版本中最常用的分区工具
用法:fdisk [选项] device
常用的选项 : -l 查看硬盘分区表
案例:在 sdb 盘上建一个分区,大小为 1G
在虚拟机上添加一块硬盘
对 sdb 这块盘划分一个 1G 的分区出来
[root@Hengji ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x60ceba02 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):m
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):p -----打印分区表
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x60ceba02
命令(输入 m 获取帮助):n -----新建一个分区
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (1-4, 默认 1):
第一个扇区 (2048-41943039, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): +1G #输入分区大小
创建了一个新分区 1,类型为“Linux”,大小为 1 GiB。
命令(输入 m 获取帮助):w #保存退出
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@Hengji ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
对已经在使用的磁盘进行分区,分区让新生成的分区生效。如果对 sda 再做一个 sda4 主分区
[root@Hengji ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x366208f1
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 106956799 104857600 50G 83 Linux
/dev/sda3 106956800 111151103 4194304 2G 82 Linux swap / Solaris
命令(输入 m 获取帮助):n
分区类型
p 主分区 (3个主分区,0个扩展分区,1空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 e):p
已选择分区 4
第一个扇区 (111151104-209715199, 默认 111151104):
上个扇区,+sectors 或 +size{K,M,G,T,P} (111151104-209715199, 默认 209715199): +1G
创建了一个新分区 4,类型为“Linux”,大小为 1 GiB。
命令(输入 m 获取帮助):w
分区表已调整。
正在同步磁盘。
写入配置文件,让它开机自动挂载
[root@Hengji ~]# vim /etc/fstab #在文件最后写入
/dev/sdb1 /sdb1 xfs defaults 0 0
[root@Hengji ~]# mount -a #自动挂载/etc/fstab 中没有挂载上的文件
[root@Hengji ~]# df -h #发现已经挂载上,说明配置没有问题。 然后再重启,看看挂载
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 10M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 50G 5.1G 45G 11% /
/dev/sda1 976M 290M 620M 32% /boot
tmpfs 795M 1.2M 794M 1% /run/user/42
tmpfs 795M 4.6M 790M 1% /run/user/0
/dev/sr0 7.7G 7.7G 0 100% /run/media/root/CentOS-8-2-2004-x86_64-dvd
/dev/sdb1 1014M 40M 975M 4% /sdb1
Plan2:
使用 UUID 挂载
[root@Hengji ~]# blkid
/dev/sr0: UUID="2020-06-08-22-08-25-00" LABEL="CentOS-8-2-2004-x86_64-dvd" TYPE="iso9660" PTUUID="545ce9a4" PTTYPE="dos"
/dev/sda1: UUID="5abdf68e-0943-408e-b8c1-dd8170267b47" TYPE="ext4" PARTUUID="366208f1-01"
/dev/sda2: UUID="53f96b43-d486-48ce-8e48-fefbf696b936" TYPE="xfs" PARTUUID="366208f1-02"
/dev/sda3: UUID="e75b4a09-4235-46ab-9b60-8e012df95389" TYPE="swap" PARTUUID="366208f1-03"
/dev/sda4: PARTUUID="366208f1-04"
/dev/sdb1: UUID="51cad1f4-4f3f-4bce-856e-aa688429817e" TYPE="xfs" PARTUUID="f112d5cf-01"
[root@Hengji ~]# echo "UUID=51cad1f4-4f3f-4bce-856e-aa688429817e /sdb1 xfs defaults 0 0" >> /etc/fstab\
12.3、gdisk 磁盘分区工具
gdisk 主要是用来划分容量大于 2T 的硬盘,大于 2T fdisk 搞不定
两种类型的分区表:GPT 和 MBR ; MBR 不支持 4T 以上
GPT 分区:GPT,全局唯一标识分区表(GUID Partition Table),它使用 128 位 GUID 来唯一标识每个磁盘和分区,与 MBR 存在单一故障点不同,GPT 提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过 CRC 校验和来检测 GPT 头和分区表中的错误与损坏;默认一个硬盘支持 128 个分区
对 sdb 做 gpt 分区,创建一个 sdb1
[root@Hengji ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************
Command (? for help): ?
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
Command (? for help): n
Partition number (2-128, default 2):
First sector (34-41943006, default = 2099200) or {+-}size{KMGTP}:
Last sector (2099200-41943006, default = 41943006) 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): p #查看
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 93A9A448-4297-4726-97DB-70FCF4ED04F0
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 37748669 sectors (18.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
2 2099200 4196351 1024.0 MiB 8300 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.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
[root@Hengji ~]# mkfs.xfs /dev/sdb1 #格式化