在Linux中使用parted对大容量磁盘进行分区详细过程

1.概述

在Linux系统中,当需要对大于2TB的磁盘进行分区时,传统的MBR(Master Boot Record)分区表已无法满足需求,必须使用GPT(GUID Partition Table)分区表。parted是一个功能强大的磁盘分区工具,完全支持GPT分区表,特别适合处理大容量磁盘。

2.环境准备

在开始分区之前,首先需要识别系统中的磁盘设备。使用以下命令查看磁盘信息:

复制代码
[root@bjbj ~]# lsblk
NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda              8:0    0  4.4T  0 disk 
├─sda1           8:1    0  600M  0 part /boot/efi
├─sda2           8:2    0    1G  0 part /boot
├─sda3           8:3    0  100G  0 part /
├─sda4           8:4    0    8G  0 part [SWAP]
└─sda5           8:5    0  4.3T  0 part 
  └─rl-kvmdata 253:0    0  4.3T  0 lvm  /kvmdata
sdb              8:16   0  2.2T  0 disk 
[root@bjbj ~]# 
复制代码
[root@bjbj ~]# fdisk -l
Disk /dev/sdb:2.18 TiB,2398999281664 字节,4685545472 个扇区
磁盘型号:RAID 730-8i 1GB 
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):65536 字节 / 65536 字节


Disk /dev/sda:4.36 TiB,4797998563328 字节,9371090944 个扇区
磁盘型号:RAID 730-8i 1GB 
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):65536 字节 / 65536 字节
磁盘标签类型:gpt
磁盘标识符:7C848FED-B401-4182-9BD5-AE7F2AD1D935

设备            起点       末尾       扇区  大小 类型
/dev/sda1       2048    1230847    1228800  600M EFI 系统
/dev/sda2    1230848    3327999    2097152    1G Linux 文件系统
/dev/sda3    3328000  213043199  209715200  100G Linux 文件系统
/dev/sda4  213043200  229820415   16777216    8G Linux swap
/dev/sda5  229820416 9371088895 9141268480  4.3T Linux LVM


Disk /dev/mapper/rl-kvmdata:4.26 TiB,4680327364608 字节,9141264384 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):65536 字节 / 65536 字节
[root@bjbj ~]# 

上面输出显示系统中有两块磁盘

  • /dev/sda:4.4TB磁盘,已分区并包含LVM卷

  • /dev/sdb:2.2TB磁盘,未分区(这是我们即将操作的目标磁盘)

3.使用parted进行分区操作

(1)启动parted工具

使用parted对/dev/sdb进行分区:

复制代码
[root@bjbj ~]# parted /dev/sdb
GNU Parted 3.5
使用 /dev/sdb
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted) 

(2)查看可用命令

进入parted交互界面后,输入help查看所有可用命令:

复制代码
(parted) help                                                             
  align-check 类型 N                         检查分区 N 是否为 (最小=min|最佳=opt) 对齐类型
  help [COMMAND]                           打印通用求助信息,或 COMMAND 的帮助
  mklabel,mktable LABEL-TYPE               创建新的磁盘卷标 (分区表)
  mkpart 分区类型 [文件系统类型] 起始点 结束点 创建一个分区
  name 编号 名称                           将指定"编号"的分区命名为"名称"
  print [devices|free|list,all]            显示分区表、可用设备、剩余空间或所有分区
  quit                                     退出程序
  rescue 起始点 终止点                      挽救临近"起始点"、"终止点"的遗失的分区
  resizepart NUMBER END                    改变 NUMBER 的大小
  rm NUMBER                                删除编号为 NUMBER 的分区
  select 设备                              选择要编辑的设备
  disk_set 旗标 状态                       变更已选设备上的旗标
  disk_toggle [旗标]                       切换已选设备上的旗标状态
  set 编号 旗标 状态                       改变指定"编号"分区的旗标
  toggle [编号 [旗标]]                     切换"编号"分区上的"旗标"状态
  type NUMBER TYPE-ID or TYPE-UUID         type set TYPE-ID or TYPE-UUID of partition NUMBER
  unit 单位                                设置缺省的"单位"
  version                                  显示目前 GNU Parted 的版本与版权信息
(parted)  

# 主要命令说明:

  • mklabel:创建新的磁盘标签(分区表类型)

  • mkpart:创建新分区

  • print:显示分区表信息

  • rm:删除指定编号的分区

  • quit:退出程序

(3)创建GPT分区表

对于大于2TB的磁盘,必须使用GPT分区表,输入mklabel命令,然后输入gpt

复制代码
(parted) mklabel                                                          
新的磁盘卷标类型? gpt                                                    
(parted)                      

(4)查看当前分区状态

下面显示分区表类型为GPT,由于还没有分区,所以看不到有任何分区。

复制代码
(parted) print                                                            
型号:Lenovo RAID 730-8i 1GB (scsi)
磁盘 /dev/sdb:2399GB
扇区大小 (逻辑/物理):512B/4096B
分区表:gpt
磁盘标志:

编号  起始点  结束点  大小  文件系统  名称  标志

(parted) 

(5)创建分区

使用mkpart命令创建分区:

复制代码
(parted) mkpart                                                           
分区名称?  []? sdb1                                                      
文件系统类型?  [ext2]? xfs
起始点? 1                                                                
结束点? 100%                        

# 参数说明:

  • 分区名称:为分区指定一个名称(可选)

  • 文件系统类型:指定分区将使用的文件系统类型

  • 起始点:分区起始位置,通常从1开始(1MB处,避免对齐问题)

  • 结束点 :分区结束位置,100%表示使用全部剩余空间

(6)验证分区创建

再次通过print命令可以看到已创建的分区信息,包括编号、起始点、结束点、大小和文件系统类型。

复制代码
(parted) print                                                            
型号:Lenovo RAID 730-8i 1GB (scsi)
磁盘 /dev/sdb:2399GB
扇区大小 (逻辑/物理):512B/4096B
分区表:gpt
磁盘标志:

编号  起始点  结束点  大小    文件系统  名称  标志
 1    1049kB  2399GB  2399GB  xfs       sdb1

(parted)                                                    

(7)退出parted

输入quit保存退出,分区立即生效。

复制代码
(parted) quit                                                             
信息: 你可能需要 /etc/fstab。

[root@bjbj ~]#                                        
4.创建文件系统(格式化磁盘)

分区完成后,需要创建文件系统才能使用,先查看刚才的分区情况:

复制代码
[root@bjbj ~]# lsblk                                                     
NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda              8:0    0  4.4T  0 disk 
├─sda1           8:1    0  600M  0 part /boot/efi
├─sda2           8:2    0    1G  0 part /boot
├─sda3           8:3    0  100G  0 part /
├─sda4           8:4    0    8G  0 part [SWAP]
└─sda5           8:5    0  4.3T  0 part 
  └─rl-kvmdata 253:0    0  4.3T  0 lvm  /kvmdata
sdb              8:16   0  2.2T  0 disk 
└─sdb1           8:17   0  2.2T  0 part 
[root@bjbj ~]# 

然后使用mkfs命令对刚才的分区的磁盘进行格式化,XFS文件系统特别适合大容量存储,支持在线扩展等高级功能。

复制代码
[root@bjbj ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=32, agsize=18302896 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=585692672, imaxpct=5
         =                       sunit=16     swidth=16 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=285982, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@bjbj ~]# 
5.挂载分区

创建文件系统后我们还需要进行挂载,才能写入数据。

(1)临时挂载

先创建挂目录,然后再挂载分区:

复制代码
[root@bjbj ~]# mkdir /backup
[root@bjbj ~]# mount -t xfs /dev/sdb1 /backup
[root@bjbj ~]# 

完成后,验证是否挂载成功,进入目录写文件进行测试:

复制代码
[root@bjbj ~]# df -Th
文件系统               类型      容量  已用  可用 已用% 挂载点
devtmpfs               devtmpfs  4.0M     0  4.0M    0% /dev
tmpfs                  tmpfs     126G     0  126G    0% /dev/shm
tmpfs                  tmpfs      51G   19M   51G    1% /run
efivarfs               efivarfs  512K   81K  427K   16% /sys/firmware/efi/efivars
/dev/sda3              xfs       100G  9.7G   91G   10% /
/dev/sda2              xfs       960M  354M  607M   37% /boot
/dev/sda1              vfat      599M  7.1M  592M    2% /boot/efi
/dev/mapper/rl-kvmdata xfs       4.3T   31G  4.3T    1% /kvmdata
tmpfs                  tmpfs      26G  124K   26G    1% /run/user/0
/dev/sdb1              xfs       2.2T   16G  2.2T    1% /backup
[root@bjbj ~]# 

(2)永久挂载

为避免重启后需要重新挂载,需将挂载信息添加到/etc/fstab文件中:

复制代码
[root@bjbj ~]# vim /etc/fstab
/dev/sdb1 /backup xfs defaults 0 0

# 配置项说明:

  • 第一列:设备名或UUID(建议使用UUID避免设备名变化)

  • 第二列:挂载点目录

  • 第三列:文件系统类型

  • 第四列 :挂载选项,defaults表示默认选项

  • 第五列 :dump备份标志,0表示不备份

  • 第六列 :fsck检查顺序,0表示不检查

获取UUID:

blkid /dev/sdb1

相关推荐
Ar呐2 小时前
软考网规篇之局域网——VLAN技术、城域以太网和以太环网
网络·计算机网络
yuyousheng2 小时前
CentOS7更换为阿里源
linux·c语言
qhqh3102 小时前
OPENSTACK基础的网络实验
网络·php·openstack
微露清风2 小时前
系统性学习Linux-第一讲-Linux基础指令
java·linux·学习
zl_dfq3 小时前
Linux 之 【日志】(实现一个打印日志的类)
linux
EmbedLinX3 小时前
一文理解后端核心概念:同步/异步、阻塞/非阻塞、进程/线程/协程
linux·服务器·c语言·网络
zhangrelay3 小时前
linux下如何通过与AI对话设置thinkpad电池充电阈值
linux·运维·笔记·学习
小王努力学编程3 小时前
LangChain——AI应用开发框架(核心组件2)
linux·服务器·c++·人工智能·python·langchain·信号
云服务器租用费用3 小时前
京东云主机企业用户能参与的优惠活动汇总
服务器·网络·京东云