当前位置: 首页 > news >正文

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

问题背景:

        在当今,大硬盘比比皆是。如果手里拿到了一块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) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END

  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  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          Flags
 1      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, 214990848

Allocating 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也不会有问题了。

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

相关文章:

  • 0090.基于springboot+vue的海滨体育馆管理系统+论文
  • 排错 -- FISCO BCOS区块链网络 -- 3. 编译智能合约
  • 操作系统-八股
  • 如何利用物理按键控制LVGL控件的大小与状态
  • 基于自定义线程池手写一个异步任务管理器
  • 2025 linux系统资源使用率统计docker容器使用率统计docker监控软件Weave Scope安装weavescope
  • 快速导出MySQL数据表结构到Excel或Word的方法(Navicat和EasyDatabaseExport)
  • 十种宠物狗-图像分类数据集
  • 分享一个免费的CKA认证学习资料
  • 【eNSP实战】配置Easy IP
  • ClickHouse总体学习
  • uniapp报毒
  • 明基PD2700U显示器无法调节图像模式
  • 骨质健康护理笔记
  • bhSDR Matlab-通用软件无线电平台
  • VSTO(C#)Excel开发8:打包发布安装卸载
  • 设计模式之命令设计模式
  • 墨香阁-测试报告
  • 星越L_电动车窗使用及初始化讲解
  • Ai智能体四:互动式 AI 聊天助手:前端实现
  • 东莞企石做网站/网上怎么找人去推广广告
  • 公司商标设计网站/免费个人推广引流平台
  • 网站分辨率做多大/如何在手机上开自己的网站
  • 做网站加入视频无法播放/汽车seo是什么意思
  • 图片转二维码在线制作生成器/seo网络营销招聘
  • 威海住房和城乡建设厅网站/全网热搜关键词排行榜