Linux下对2TB磁盘的分区、格式化、挂截目录介绍

devtools/2025/3/16 12:18:06/

问题背景:

        在当今,大硬盘比比皆是。如果手里拿到了一块2TB或更大的硬盘,‌fdisk‌ 命令显示已不再适用,而parted 命令将可能是我们的最佳实践方案,因此,我们需要学习和掌握parted命令及相关命令的使用。

        以下对fdisk‌、parted 两个命令的场景进行介绍:

1. ‌支持的磁盘大小‌‌
‌fdisk‌:主要用于处理小于2TB的磁盘,因为它基于MBR分区表,而MBR使用32位逻辑块地址,限制了其处理大容量磁盘的能力。
‌parted‌:支持大于2TB的磁盘,因为它支持GPT分区表,GPT使用64位逻辑块地址,能够更好地处理现代大容量硬盘。
2. ‌分区表类型‌
‌fdisk‌:主要支持MBR分区表,MBR分区表最多只能有4个主分区,且单个分区最大容量为2TB。
‌parted‌:支持MBR和GPT分区表,GPT分区表可以支持更大的硬盘容量和更多的分区数量。
3. ‌功能丰富性‌
‌fdisk‌:功能相对基础,主要用于创建、删除、调整分区大小等操作,但在调整文件系统大小时需要手动操作,增加了数据丢失的风险。
‌parted‌:功能更丰富,支持自动调整文件系统大小、格式化分区等操作,更适合处理复杂的分区需求。
4. ‌易用性‌
‌fdisk‌:命令行界面相对简单,适合有一定Linux经验的用户,但在处理大容量磁盘时存在局限性。
‌parted‌:虽然命令行界面稍复杂,但提供了更丰富的命令和交互,特别是在处理GPT分区表时更易用。
5. ‌执行风险‌
‌fdisk‌:所有修改都在内存中进行,只有在执行w命令后才会写入磁盘,增加了误操作的风险。
‌parted‌:每个命令都是实时执行的,操作时需要特别谨慎,尤其是在生产环境中。
总结
‌fdisk‌适合处理小容量磁盘和MBR分区表,而‌parted‌更适合处理大容量磁盘和GPT分区表,功能更丰富但操作风险更高。根据具体需求选择合适的工具是关键。

创建分区:

需求描述:把已安装在机器上设备名为sdd的一块2TB的硬盘按GPT分区类型进行分区,分区命名为sdd_gaussdb,文件系统格式类型为ext4,并且,把整块硬盘的空间都分配给该分区。

1.使用 lsblk 命令查看要分区的硬盘

[root@gkob4 /]# lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   9.1T  0 disk
├─sda1                  8:1    0   200M  0 part /boot/efi
├─sda2                  8:2    0     1G  0 part /boot
├─sda3                  8:3    0   328G  0 part
│ ├─centos_gkob4-root 253:0    0   100G  0 lvm  /
│ ├─centos_gkob4-swap 253:1    0   128G  0 lvm  [SWAP]
│ └─centos_gkob4-home 253:2    0   100G  0 lvm  /home
└─sda4                  8:4    0   8.8T  0 part /trunk_db_data
sdb                     8:16   0   1.8T  0 disk /oradata
sdc                     8:32   0   1.8T  0 disk /dmdata
sdd                     8:48   0   1.8T  0 disk
sde                     8:64   0 953.9G  0 disk /u01
sdf                     8:80   0   1.8T  0 disk
└─sdf1                  8:81   0   500G  0 part /mysql
loop0                   7:0    0 895.4M  0 loop /media
nvme0n1               259:0    0 465.8G  0 disk /data/1
nvme1n1               259:1    0 465.8G  0 disk /data/log1
[root@gkob4 /]#

这里,我们对sdd硬盘进行分区(注意上面查询的结果显示,sdd 硬盘目前是没有挂截目录的)。

2.使用 parted 命令对sdd 硬盘进行分区

1)查看sdd硬盘设备,sdd对应的设备为 /dev/sdd ,可以用以下命令查询到该设备

[root@gkob4 /]# ls /dev/sdd
/dev/sdd
[root@gkob4 /]#

2)输入 parted 命令进入分区操作,再该操作中输入 help 可以查看 parted 命令提供的常用命令,如下所示:

[root@gkob4 /]# parted /dev/sdd
GNU Parted 3.1
Using /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help # 看一下常用命令
align-check TYPE N                        check partition N for TYPE(min|opt) alignmenthelp [COMMAND]                           print general help, or help on COMMANDmklabel,mktable LABEL-TYPE               create a new disklabel (partition table)mkpart PART-TYPE [FS-TYPE] START END     make a partitionname NUMBER NAME                         name partition NUMBER as NAMEprint [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partitionquit                                     exit programrescue START END                         rescue a lost partition near START and ENDresizepart NUMBER END                    resize partition NUMBERrm NUMBER                                delete partition NUMBERselect DEVICE                            choose the device to editdisk_set FLAG STATE                      change the FLAG on selected devicedisk_toggle [FLAG]                       toggle the state of FLAG on selected deviceset NUMBER FLAG STATE                    change the FLAG on partition NUMBERtoggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBERunit UNIT                                set the default unit to UNITversion                                  display the version number and copyright information of GNU Parted
(parted)

3)创建gpt格式的分区类型

(parted) mklabel gpt
(parted)

4)创建名为sdd1_gaussdb的分区,文件类型为ext4,并把整个磁盘空间都分配到这个分区上。

(parted) mkpart
Partition name?  []? sdd1_gaussdb
File system type?  [ext2]? ext4
Start? 0%
End? 100%
(parted)

至此,分区工作就已完成。我们可以使用 print 命令查看分区的效果,如下所示:

(parted) print
Model: ATA WD Green 2.5 2TB (scsi)
Disk /dev/sdd: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:Number  Start   End     Size    File system  Name          Flags1      1049kB  2000GB  2000GB               sdd1_gaussdb(parted)

6)使用 quit 命令退出分区

(parted) quit
Information: You may need to update /etc/fstab.[root@gkob4 /]#

格式化分区

需求描述:将前面创建的分区按 ext4 文件系统格式进行格式化。

1)采用 mkfs.ext4 命令进行格式化

[root@gkob4 /]# mkfs.ext4 /dev/sdd1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
122101760 inodes, 488378368 blocks
24418918 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2636120064
14905 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,102400000, 214990848Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done[root@gkob4 /]#

2) 使用 lsblk -f 命令查看格式化后分区的文件系统格式(df -hT 命令只能看到已挂载的分区)

[root@gkob4 ~]# lsblk -f
NAME                  FSTYPE      LABEL  UUID                                   MOUNTPOINT
sda
├─sda1                vfat               9EA8-E7F6                              /boot/efi
├─sda2                xfs                4ba65ef6-9c8c-4be5-99e9-04481d386318   /boot
├─sda3                LVM2_member        eCBDCl-gy8R-tYkM-6uOW-Z0Fc-rn6a-DH5oaC
│ ├─centos_gkob4-root xfs                c7ddebbb-eaa3-48cb-a889-3e8db47af8ee   /
│ ├─centos_gkob4-swap swap               580c19e6-b93e-4d6d-9d9c-d881dd66cead   [SWAP]
│ └─centos_gkob4-home xfs                8e88387b-3db0-4af2-a195-ce10e2bd991e   /home
└─sda4                xfs                b39308ce-9e8e-47cb-a1ca-5548f52042be   /trunk_db_data
sdb                   xfs                dd40aab0-7e64-4101-9594-30843b990f3c   /oradata
sdc                   xfs                5ad72062-36f9-46a7-98dd-3ff91c570d4d   /dmdata
sdd
└─sdd1                ext4               f1bec25b-8531-4218-b818-102abab8c813
sde                   xfs                1a70c056-ea64-4778-a039-0572888d6832   /u01
sdf
└─sdf1                xfs                de3e55f4-3e05-4e2b-bea2-5b205e42f232   /mysql
loop0                 iso9660     dameng 2024-02-06-17-40-55-00                 /media
nvme0n1               xfs                c24ac73c-1373-4369-ba77-b7820cecdcde   /data/1
nvme1n1               xfs                77244bbb-58da-434c-9c8b-e84321c2fa35   /data/log1
[root@gkob4 ~]#

从上面的输出可以看到,/sdd/sdd1 对应的挂载点(MOUNTPOINT)是空,说明还没有挂载目录。后面的步骤执行mount -a 后注意这里的变化。

挂载目录

需求描述:将前面创建和格式化的分区,挂载到 /gaussdb 目录,并且,确保服务器重启也能自动挂载。

1)创建/gaussdb目录

[root@gkob4 /]# mkdir /gaussdb

2)修改 /etc/fstab 文件实现服务器自动重启也能自动挂载。

非重重要:

1、修改前请先备份 /etc/fstab 文件;

2、修改后千万不要先重启linux,避免 /etc/fstab 文件改出问题导致Linux启不来;


#
# /etc/fstab
# Created by anaconda on Mon Sep 30 05:05:47 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos_gkob4-root /                       xfs     defaults        0 0
UUID=4ba65ef6-9c8c-4be5-99e9-04481d386318 /boot                   xfs     defaults        0 0
UUID=9EA8-E7F6          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/centos_gkob4-home /home                   xfs     defaults        0 0
/dev/mapper/centos_gkob4-swap swap                    swap    defaults        0 0
/dev/nvme0n1		/data/1				 xfs     defaults        0 0
/dev/nvme1n1            /data/log1                          xfs     defaults        0 0
/dev/sde         	/u01				xfs     defaults        0 0
/dev/sdb		/oradata			xfs     defaults        0 0
/dev/sdc                /dmdata                 xfs     defaults        0 0
/dev/sda4                /trunk_db_data                 xfs     defaults        0 0
/dev/sdf1   /mysql   xfs   defaults   0 0
/dev/sdd1   /gaussdb   ext4   defaults   0 0

该文件每列的含义如下:

第1列:设备文件路径 或 UUID 或 标签;

第2列:挂载点,即要挂载的目录;

第3列:分区的文件系统类型,如ext3、ext4、xfs等;

第4列:挂载选项;

第5列:dump频率;

第6列:fsck检查顺序;

3)在不重启linux情况下,使用mount -a 命令将 /etc/fstab 最新配置生效

本步骤非常重要:因为一但/etc/fstab改坏了,会导致Linux启不来。所以,请严格执行本步骤,确保/etc/fstab文件配置是正确的,如有问题,请立即修正或还原至前一步骤的备份。

[root@gkob4 /]# mount -a
[root@gkob4 /]#

接下来执行lsblk -f 命令查看挂载结果:

[root@gkob4 /]# lsblk -f
NAME                  FSTYPE      LABEL  UUID                                   MOUNTPOINT
sda
├─sda1                vfat               9EA8-E7F6                              /boot/efi
├─sda2                xfs                4ba65ef6-9c8c-4be5-99e9-04481d386318   /boot
├─sda3                LVM2_member        eCBDCl-gy8R-tYkM-6uOW-Z0Fc-rn6a-DH5oaC
│ ├─centos_gkob4-root xfs                c7ddebbb-eaa3-48cb-a889-3e8db47af8ee   /
│ ├─centos_gkob4-swap swap               580c19e6-b93e-4d6d-9d9c-d881dd66cead   [SWAP]
│ └─centos_gkob4-home xfs                8e88387b-3db0-4af2-a195-ce10e2bd991e   /home
└─sda4                xfs                b39308ce-9e8e-47cb-a1ca-5548f52042be   /trunk_db_data
sdb                   xfs                dd40aab0-7e64-4101-9594-30843b990f3c   /oradata
sdc                   xfs                5ad72062-36f9-46a7-98dd-3ff91c570d4d   /dmdata
sdd
└─sdd1                ext4               f1bec25b-8531-4218-b818-102abab8c813   /gaussdb
sde                   xfs                1a70c056-ea64-4778-a039-0572888d6832   /u01
sdf
└─sdf1                xfs                de3e55f4-3e05-4e2b-bea2-5b205e42f232   /mysql
loop0                 iso9660     dameng 2024-02-06-17-40-55-00                 /media
nvme0n1               xfs                c24ac73c-1373-4369-ba77-b7820cecdcde   /data/1
nvme1n1               xfs                77244bbb-58da-434c-9c8b-e84321c2fa35   /data/log1
[root@gkob4 /]#

如果 /dev/sdd1 的挂载点能看到 /gaussdb ,说明/gaussdb 目录是存在的,且/etc/fstab文件配置也正确。重启linux也不会有问题了。

至此,从分区、格式化、挂载都已介绍完了。


http://www.ppmy.cn/devtools/167549.html

相关文章

【附JS、Python、C++题解】Leetcode面试150题(9)——三数之和

一、题目​​​​​ 15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足: i!j、i!k 且 j! k ,同时还满足:nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意…

Java开发之数据库应用:记一次医疗系统数据库迁移引发的异常:从MySQL到PostgreSQL的“dual“表陷阱与突围之路

记一次医疗系统数据库迁移引发的异常:从MySQL到PostgreSQL的"dual"表陷阱与突围之路 一、惊魂时刻:数据库切换引发的系统雪崩 某医疗影像系统在进行国产化改造过程中,将原MySQL数据库迁移至PostgreSQL。迁移完成后,系…

Linux 文件与目录操作指令

以下是 Linux 文件与目录操作指令的详细整理&#xff0c;涵盖 基本操作、权限管理、查找统计、压缩解压 等场景&#xff0c;包含常用选项与示例&#xff1a; 一、目录导航与查看 1. pwd&#xff1a;显示当前目录的绝对路径 <BASH> pwd # 输出&#xff1a;/hom…

Vue 中的 MVVM、MVC 和 MVP 模式深度解析

文章目录 1. 模式概览与核心概念1.1 模式定义1.2 架构对比图 2. MVC 模式详解2.1 MVC 流程图2.2 Vue 中的 MVC 实现 3. MVP 模式详解3.1 MVP 流程图3.2 Vue 中的 MVP 实现 4. MVVM 模式详解4.1 MVVM 流程图4.2 Vue 中的 MVVM 实现 5. 模式对比分析5.1 职责对比5.2 通信方式对比…

Qt:槽函数与信号

1.槽函数的参数只能小于等于信号的参数&#xff0c;不然就报错 2.两者之间是多对多关系 3.可以使用信号触发信号间接的触发槽函数 4.断开信号与槽函数的连接 4.1断开一个信号与一个槽函数的连接 disconnect(this,SIGNAL(信号函数),this,SLOT(槽函数)); 4.2断开一个信号和…

Linux磁盘与存储管理:从“空间不足”到“存储大亨”

Linux磁盘与存储管理&#xff1a;从“空间不足”到“存储大亨” 引言 磁盘空间就像你的钱包&#xff0c;永远不够用。当你发现/home目录爆满时&#xff0c;那种焦虑感不亚于月底看到信用卡账单。但别担心&#xff0c;今天我们就来聊聊Linux磁盘与存储管理&#xff0c;让你从“…

如何在AVL树中高效插入并保持平衡:一步步掌握旋转与平衡因子 —— 旋转篇

文章目录 AVL树种旋转的规则右单旋右单旋代码左单旋左单旋代码左右双旋左右单旋的代码右左单旋右左单旋的代码 AVL树种旋转的规则 在AVL树中&#xff0c;旋转是为了保持树的平衡性。AVL树是一种自平衡的二叉搜索树&#xff0c;它要求每个节点的左右子树的高度差不能超过1。当插…

OpenFeign的配置类可以进行哪些配置

1. 日志级别&#xff08;Logger Level&#xff09; 工作原理 Feign的日志级别控制了日志输出的详细程度&#xff0c;有助于调试和监控。日志级别包括&#xff1a; NONE&#xff1a;不记录任何信息。BASIC&#xff1a;仅记录请求方法和URL及响应状态码和执行时间。HEADERS&am…