2025年3月18日 星期二 甲辰(龙)年 月十七 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 系统应用 > Linux

Centos7系统下挂载超过2TB的目录

时间:02-17来源:作者:点击数:24

Linux系统默认情况下只支持挂载2TB以下的磁盘挂载,超过2TB默认也只显示挂载2TB。如果想要挂载超过2TB的磁盘,需要先把磁盘转换为gpt大分区格式。

本文介绍两种方式,通过举例说明如何在Centos7系统下将4TB大小的目录挂载到/home目录下

注意:所有操作均需要在root环境下运行。

两种分区表:MBR分区表与GPT分区表的比较

MBR分区表:(MBR含义:主引导记录)

所支持的最大卷:2T (T: terabytes,1TB=1024GB)

对分区的设限:最多4个主分区或3个主分区加一个扩展分区

分区命令:fdisk

GPT分区表:(GPT含义:GUID Partition Table,即GUID分区表)

支持最大卷:18EB,(E:exabytes,1EB=1024TB)

每个磁盘最多支持128个分区

分区命令:parted

所以如果要大于2TB的卷或分区就必须得用GPT分区表

方式一(亲测验证通过)

创建要挂载的目录
  • mkdir /home # 创建/home目录
查看硬盘

通过fdisk -l命令查看硬盘设备信息与大小

可以看到如下信息:

  • [root@localhost home]# fdisk -l
  • 磁盘 /dev/sdb:4000.0 GB, 3999999721472 字节,7812499456 个扇区
  • Units = 扇区 of 1 * 512 = 512 bytes
  • 扇区大小(逻辑/物理):512 字节 / 4096 字节
  • I/O 大小(最小/最佳):4096 字节 / 4096 字节

以上信息我们知道要挂载的硬盘为/dev/sdb

对硬盘进行格式化
  • mkfs -t ext4 /dev/sdb

该命令会对整个磁盘进行格式化,如果新硬盘没有分区过,可以不执行该操作。

通过parte命令进行GPT分区,将MBR分区方式转换成GPT(超过2TB时MBR分区无法挂载全部硬盘空间,所以需要转换)**这是最关键的一步

由于fdisk仅支持2T以内硬盘分区,当大于2T时,需要使用parted命令进行GPT格式分区。

  • [root@localhost ~]# parted /dev/sdb
  • GNU Parted 3.1
  • 使用 /dev/sdb
  • Welcome to GNU Parted! Type 'help' to view a list of commands.
  • (parted) mklabel gpt # 把sdb改成gpt大分区格式
  • 警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
  • /Yes/否/No? yes # 输入yes即可
  • (parted) mkpart primary 0 4000GB # 创建分区
  • 警告: The resulting partition is not properly aligned for best performance.
  • 忽略/Ignore/放弃/Cancel? cancel # 输入cancel取消
查看硬盘参数
  • [root@localhost ~]# cat /sys/block/sdb/queue/optimal_io_size
  • 0
  • [root@localhost ~]# cat /sys/block/sdb/queue/minimum_io_size
  • 4096
  • [root@localhost ~]# cat /sys/block/sdb/alignment_offset
  • 0
  • [root@localhost ~]# cat /sys/block/sdb/queue/physical_block_size
  • 4096
  • [root@localhost ~]#

如果optimal_io_size不为0,则使用对应值带入下列式子

(optimal_io_size + alignment_offset)/physical_block_size

计算出即为主分区起始位置的合理值

如果ptimal_io_size为0,则可以直接使用起始扇区默认值2048即可

即 (parted) primary 2048s -1

设置起始扇区并分区
  • (parted) mkpart primary 2048s 100% # 创建主分区,命令是mkpart primary <起始地址> <空间大小/空间占用比例>
  • (parted) print # 查看硬盘信息
  • Model: LSI Logical Volume (scsi)
  • Disk /dev/sdb: 4000GB
  • Sector size (logical/physical): 512B/4096B
  • Partition Table: gpt
  • Disk Flags:
  • Number Start End Size File system Name 标志
  • 1 1049kB 4000GB 4000GB primary
  • (parted) align-check optimal 1 # 检查是否对齐(如有多个分区,均需检查),下面返回的1 aligned表示已经对齐
  • 1 aligned
  • (parted) quit
  • 信息: You may need to update /etc/fstab.
  • [root@localhost ~]#
再次格式化硬盘
  • [root@localhost ~]# mkfs.ext4 -F /dev/sdb
  • mke2fs 1.42.9 (28-Dec-2013)
  • 文件系统标签=
  • OS type: Linux
  • 块大小=4096 (log=2)
  • 分块大小=4096 (log=2)
  • Stride=0 blocks, Stripe width=0 blocks
  • 244146176 inodes, 976562432 blocks
  • 48828121 blocks (5.00%) reserved for the super user
  • 第一个数据块=0
  • Maximum filesystem blocks=3124756480
  • 29803 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, 512000000, 550731776, 644972544
  • Allocating group tables: 完成
  • 正在写入inode表: 完成
  • Creating journal (32768 blocks): 完成
  • Writing superblocks and filesystem accounting information: 完成
  • [root@localhost ~]#
挂载新硬盘到/home目录
  • [root@localhost ~]# mount /dev/sdb /home
  • [root@localhost ~]# df -hT
  • 文件系统 类型 容量 已用 可用 已用% 挂载点
  • /dev/mapper/centos-root xfs 382G 12G 371G 3% /
  • devtmpfs devtmpfs 63G 0 63G 0% /dev
  • tmpfs tmpfs 63G 0 63G 0% /dev/shm
  • tmpfs tmpfs 63G 10M 63G 1% /run
  • tmpfs tmpfs 63G 0 63G 0% /sys/fs/cgroup
  • /dev/sda1 xfs 32G 145M 32G 1% /boot
  • tmpfs tmpfs 13G 0 13G 0% /run/user/0
  • /dev/sdb ext4 3.6T 89M 3.4T 1% /home # 这个就是我们新挂载的目录
  • [root@localhost ~]#
设置自动挂载

编辑/etc/fstab文件,在最后一行添加:

  • /dev/sdb /home ext4 defaults 1 2

方式二(亲测验证通过)

创建要挂载的目录
  • mkdir /home # 创建/home目录
查看硬盘

通过fdisk -l命令查看硬盘设备信息与大小

可以看到如下信息:

  • [root@localhost home]# fdisk -l
  • 磁盘 /dev/sdb:4000.0 GB, 3999999721472 字节,7812499456 个扇区
  • Units = 扇区 of 1 * 512 = 512 bytes
  • 扇区大小(逻辑/物理):512 字节 / 4096 字节
  • I/O 大小(最小/最佳):4096 字节 / 4096 字节

以上信息我们知道要挂载的硬盘为/dev/sdb

对硬盘进行格式化
  • mkfs -t ext4 /dev/sdb

该命令会对整个磁盘进行格式化,如果新硬盘没有分区过,可以不执行该操作。

通过parte命令进行GPT分区,将MBR分区方式转换成GPT(超过2TB时MBR分区无法挂载全部硬盘空间,所以需要转换)**这是最关键的一步
  • [root@localhost ~]# parted /dev/sdb
  • GNU Parted 3.1
  • 使用 /dev/sdb
  • Welcome to GNU Parted! Type 'help' to view a list of commands.
  • (parted) mklabel gpt # 把sdb改成gpt大分区格式
  • 警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
  • /Yes/否/No? yes # 输入yes即可
  • (parted) quit # 退出parted模式
  • 信息: You may need to update /etc/fstab.
  • [root@localhost home]#
创建分区
  • [root@localhost home]# fdisk /dev/sdb
  • WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
  • 欢迎使用 fdisk (util-linux 2.23.2)。
  • 更改将停留在内存中,直到您决定将更改写入磁盘。
  • 使用写入命令前请三思。
  • 命令(输入 m 获取帮助):n
  • 分区号 (1-128,默认 1):
  • 第一个扇区 (34-7812499422,默认 2048):
  • Last sector, +sectors or +size{K,M,G,T,P} (2048-7812499422,默认 7812499422):
  • 已创建分区 1
  • 命令(输入 m 获取帮助):w
  • The partition table has been altered!
  • Calling ioctl() to re-read partition table.
  • 正在同步磁盘。
  • [root@localhost home]#

再次查看分区格式,我们看到磁盘标签类型:gpt

  • [root@localhost home]# fdisk -l
  • WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
  • 磁盘 /dev/sdb:4000.0 GB, 3999999721472 字节,7812499456 个扇区
  • Units = 扇区 of 1 * 512 = 512 bytes
  • 扇区大小(逻辑/物理):512 字节 / 4096 字节
  • I/O 大小(最小/最佳):4096 字节 / 4096 字节
  • 磁盘标签类型:gpt ###### 我们可以看到这时候分区类型为gpt大分区格式了
  • Disk identifier: 9ACA046A-E5C8-4745-91FC-D0962765E12C
  • # Start End Size Type Name
  • 1 2048 7812499422 3.7T Linux filesyste
格式化新分区(注意此时格式化的分区路径为:/dev/sdb1,而不再是:/dev/sdb)
  • [root@localhost home]# mkfs -t ext4 /dev/sdb1
  • mke2fs 1.42.9 (28-Dec-2013)
  • 文件系统标签=
  • OS type: Linux
  • 块大小=4096 (log=2)
  • 分块大小=4096 (log=2)
  • Stride=0 blocks, Stripe width=0 blocks
  • 244146176 inodes, 976562171 blocks
  • 48828108 blocks (5.00%) reserved for the super user
  • 第一个数据块=0
  • Maximum filesystem blocks=3124756480
  • 29803 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, 512000000, 550731776, 644972544
  • Allocating group tables: 完成
  • 正在写入inode表: 完成
  • Creating journal (32768 blocks): 完成
  • Writing superblocks and filesystem accounting information: 完成
  • [root@localhost home]#
挂载新分区(注意此时格式化的分区路径为:/dev/sdb1,而不再是:/dev/sdb)
  • [root@localhost home]# mount /dev/sdb1 /home

检查是否挂载成功,挂载磁盘大小是否正确

  • [root@localhost home]# df -hT
  • 文件系统 类型 容量 已用 可用 已用% 挂载点
  • /dev/mapper/centos-root xfs 350G 12G 339G 4% /
  • devtmpfs devtmpfs 55G 0 55G 0% /dev
  • tmpfs tmpfs 55G 0 55G 0% /dev/shm
  • tmpfs tmpfs 55G 10M 55G 1% /run
  • tmpfs tmpfs 55G 0 55G 0% /sys/fs/cgroup
  • /dev/sda1 xfs 32G 145M 32G 1% /boot
  • tmpfs tmpfs 11G 0 11G 0% /run/user/0
  • /dev/sdb1 ext4 3.6T 89M 3.4T 1% /home # 这时候我们看到已经是4TB大小了
永久挂载

修改系统挂载硬盘的文件,在文件/etc/fstab中增加如下内容,其中0 0 表示在在开机时不对分区进行检查

  • /dev/sdb1 /home ext4 defaults 0 0
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门