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

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

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


http://www.kler.cn/a/587559.html

相关文章:

  • 用Python和Pygame实现打砖块游戏
  • HTML编辑MP4保存名称
  • DBeaver部分操作指南(数据库连接,构造ERD图,格式化SQL)
  • Hive函数大全:从核心内置函数到自定义UDF实战指南(附详细案例与总结)
  • 无电池也能通信!中国移动5G-A芯片重塑物联网未来
  • P2512糖果传递 P4447分组 P1080国王游戏 P4053建筑抢修
  • Python 字节码深度历险:dis 模块揭秘与性能优化实战
  • 深入探讨RAID 5的性能与容错能力:实验与分析(磁盘阵列)
  • Vue 中的 MVVM、MVC 和 MVP 模式深度解析
  • Java数据结构第二十三期:Map与Set的高效应用之道(二)
  • 深度迁移学习实战指南:从理论到产业级应用
  • 安装 MongoDB 的步骤(Windows / macOS / Linux)
  • Excel表一键查询工具
  • 简要分析NETLINK_USER参数
  • springboot系列十五:SpringBoot整合MyBatis, MyBatis-Plus
  • 【数据结构】数据结构,算法 概念
  • ctfshow-萌新赛刷题笔记
  • 路由器与防火墙配置命令
  • 【大模型技术】怎么用agent和prompt工程实现用户的要求?
  • Windows根据文件名批量在文件夹里查找文件并复制出来,用WPF实现的详细步骤