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


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

    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目录
    
    • 1

    查看硬盘

    通过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 字节
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    对硬盘进行格式化

    mkfs -t ext4 /dev/sdb
    
    • 1

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

    通过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取消
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    查看硬盘参数

    [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 ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如果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 ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    再次格式化硬盘

    [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 ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    挂载新硬盘到/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 ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    设置自动挂载

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

    /dev/sdb                /home                   ext4    defaults        1 2
    
    • 1

    方式二(亲测验证通过)

    创建要挂载的目录

    mkdir /home   # 创建/home目录
    
    • 1

    查看硬盘

    通过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 字节
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    对硬盘进行格式化

    mkfs -t ext4 /dev/sdb
    
    • 1

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

    通过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]#
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    创建分区

    [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]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    再次查看分区格式,我们看到磁盘标签类型: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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    格式化新分区(注意此时格式化的分区路径为:/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]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    挂载新分区(注意此时格式化的分区路径为:/dev/sdb1,而不再是:/dev/sdb)

    [root@localhost home]# mount /dev/sdb1 /home
    
    • 1

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

    [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大小了
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    永久挂载

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

    /dev/sdb1               /home                   ext4     defaults        0 0
    
    • 1
  • 相关阅读:
    SD卡通常是哪种类型的flash?
    nodejs 中 axios 设置 burp 抓取 http 与 https
    关于C/C++指针星号 * 的写法问题
    springboot整合aop,实现日志操作
    uniapp 仿写弹窗
    C语言指针操作(七)*指针数组和多重指针
    物业巡检系统能做什么?物业服务如何提升管理效率?
    【math】Hiden Markov Model 隐马尔可夫模型了解
    安装MySQL8.0及以上版本操作步骤
    sonar是一款静态代码质量分析工具
  • 原文地址:https://blog.csdn.net/tl4832194/article/details/126787864