Loading

磁盘分区&格式化&扩容

MBR与GPT的区别

磁盘分区表:一种存储在磁盘上的数据结构,用来存储磁盘分区的信息,包括分区大小、位置和类型;MBR和GPT是目前两种常见的磁盘分区格式,GPT被看作是MBR的扩展升级。

特性 MBR GPT
最大容量限制 2.2TB(2^32) 9.44ZB(2^64)
分区数量限制 至多4个主分区/3个主分区+1个扩展分区 至多128个分区
分区表存储 分区表存储在磁盘的第一个扇区(引导扇区)内 主分区表:磁盘的第二个扇区(LBA1);备份分区表:磁盘的最后一个扇区
分区表保护 CRC校验机制
数据完整性 无冗余 冗余的主分区表和备份分区表
兼容性 需要BIOS模式,与所有版本的Windows和绝大多数Linux兼容 需要UEFI模式,与Windows8及以上版本、Linux和MacOS兼容

查看分区表类型

Windows平台

方法一:

  1. 打开PowerShell窗口,输入get-disk
  2. 查看磁盘分区类型(Partition Style列)

方法二:

  1. 打开命令行cmd,输入并运行diskpart
  2. 在对话框输入list disk,查看磁盘分区类型列(Gpt列)

Linux平台

方法一:

  1. 输入 fdisk -l 命令,查看显示结果中的 Disk label type 的值
  2. 若是dos,则代表磁盘分区类型为MBR;若是gpt,则代表磁盘分区类型为GPT

方法二:

  1. 输入 parted -l 命令,查看显示结果中的 Partition Table 的值
  2. 若是msdos,则代表为MBR;若是gpt,则代表为GPT

磁盘分区工具

仅针对Linux平台

  • fdisk 是一个经典的命令行实用程序,只能处理 MBR 和各种其他方案,但不能处理 GPT。
  • gdiskfdisk 的更现代版本,可以处理 GPT。
  • parted 是另一种流行的命令行工具,支持 MBR 和 GPT 等。
  • gpartedparted 的 GUI 版本,可以处理 MBR、GPT 等。

fdisk使用

基本语法:fdisk [options] 设备文件名

显示设备分区表信息

fdisk -l /dev/vda1

创建新分区

fdisk /dev/vda
# 进入交互界面,依次输入以下命令:
n # 创建新分区
p # 创建主分区
1 # 输入分区号
[起始扇区] # 设置起始扇区
[结束扇区] # 设置结束扇区
wq # 将分区表写入磁盘并退出

删除分区

fdisk /dev/vda
d # 删除分区
[分区号] # 要删除的分区号
wq # 将分区表写入磁盘并退出

创建分区、格式化、挂载磁盘

# 按步骤二 创建新分区 操作
# 格式化磁盘
mkfs.xfs /dev/vda1
# 创建挂载目录
mkdir /mnt/data
# 永久挂载
uuid=$(blkid /dev/vda1 | cut -d ':' -f 2 | cut -d ' ' -f 2)
echo "$uuid /mnt/data xfs defaults 0 0" >> /etc/fstab
mount -a 
# 查看块设备及挂载点信息
lsblk

gdisk使用

同fdisk差别不大

parted使用

查看磁盘信息

parted /dev/vda print

进行磁盘分区

一、交互式使用

[root@ecs1 ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mkpart p1
文件系统类型?  [ext2]? ext4
起始点? 1
结束点? 10%
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  标志
 1      1049kB  2147MB  2146MB  ext4         p1
 
(parted) quit
信息: You may need to update /etc/fstab.

注意:parted不支持ext4分区类型;分区完毕后需要手动使用mkfs命令进行转换

[root@ecs1 ~]# mkdir -p /mnt/data & mkfs.ext4 /dev/sdb1
[root@ecs1 ~]# blkid
/dev/sda1: UUID="594b0a12-4e52-4d44-8369-bfd06000dd03" TYPE="xfs"
/dev/sda2: UUID="3smvyd-BBkN-cY79-SEeW-jh3D-r8ez-DHXczb" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="cf628a4f-e9c8-455a-9980-ad8a323e9915" TYPE="xfs"
/dev/mapper/centos-swap: UUID="738e2931-8e84-46a8-8214-64c6fa49355f" TYPE="swap"
/dev/sdb1: UUID="d554aa64-f73b-4e18-811d-d9996f9bedf6" TYPE="ext4" PARTLABEL="p1" PARTUUID="4f797264-b488-47c1-b4f6-d97882760faa"
[root@ecs1 ~]# echo 'UUID=d554aa64-f73b-4e18-811d-d9996f9bedf6 /mnt/data ext4 defaults 0 0 ' >> /etc/fstab
[root@ecs1 ~]# mount -a

二、非交互式使用

同交互式命令相比,非交互式parted只是在各项命令前加上parted [分区设备名]

删除分区

[root@ecs1 ~]# parted /dev/sdb
# 对/dev/sdb进行分区或管理操作
 
(parted) rm                
# rm删除命令(删除之前必须确保分区没有被挂载)
                                               
分区编号? 1          
# 删除第一个分区
                                                    
(parted) print   # 打印当前分区情况                                                         
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
 
Number  Start  End  Size  File system  Name  标志

gparted使用

parted的UI版本

磁盘扩容

任何扩容操作前,建议都进行数据备份;包括但不限于:主机备份、磁盘备份、系统备份

未分区的磁盘进行扩容

针对ext*文件系统:resize2fs [磁盘名称]

针对xfs文件系统:xfs_growfs [磁盘名称]

已分区的磁盘进行扩容

确认分区表格式及文件系统

1、确认数据盘的分区表格式

# 确认分区表格式
fdisk -lu /dev/vdb
# 若输出结果System为Linux,则代表为MBR分区表格式;若输出结果System为GPT,则说明为GPT分区表格式
[root@hcss-ecs-1b32 ~]# fdisk -lu /dev/vda

Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000f24de

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886079    41942016   83  Linu

2、确认已有分区的文件系统类型

blkid /dev/vda1
# 查看输出结果Type
[root@hcss-ecs-1b32 ~]# blkid /dev/vda1
/dev/vda1: UUID="7c5d72cf-4d6b-4cd2-ac0d-fcc9270be4c4" TYPE="ext4"

分区扩容&文件系统扩容

扩容MBR分区

1、查看分区信息,记录起止扇区位置;这里我的磁盘起止:2048;终止:83886079

[root@hcss-ecs-1b32 ~]# fdisk -lu /dev/vda | tail -n 1
/dev/vda1   *        2048    83886079    41942016   83  Linux

2、查看磁盘挂载信息

[root@hcss-ecs-1b32 ~]# mount | grep "/dev/vda"
/dev/vda1 on / type ext4 (rw,relatime,data=ordered)

3、取消挂载数据盘

umount /dev/vda1

4、删除旧分区&新建新分区

fdisk /dev/vda
d	# 删除分区
1	# 要删除的分区号
n	# 删除完毕后不要保存退出,继续新建分区
p	# 主分区
1	# 新分区号,同原来即可
[默认]	# 起止扇区,默认即可
[默认]	# Last扇区,根据需要填写
wq	# 保存退出

5、更新分区表

partprobe /dev/vda

6、扩容文件系统

若是ext*系统,先调整文件系统大小:resize2fs /dev/vda1;再进行挂载:mount /dev/vda1 /mnt/data

若是xfs系统,先进行磁盘挂载:mount /dev/vda1 /mnt/data;再调整文件系统大小:xfs_growfs /mnt/data

扩容GPT分区

前三步同扩容MBR分区一致

4、使用parted为GPT分区扩容

  • 进入分区工具:parted /dev/vda
  • 删除现有分区:rm [分区号]
  • 重新创建主分区:mkpart primary [原分区的起止扇区] [容量分配百分比]
  • 查看分区是否创建成功:print && quit

文件系统扩容同样参考:扩容MBR分区

posted @ 2024-06-05 15:43  生命是一团火  阅读(177)  评论(0)    收藏  举报