将大于16TB的单分区格式化为ext4的步骤和方法:

      因实验环境局限,以下使用一个10GB的新硬盘代替作为示范。


注意:
    以下操作适用于Redhat/CentOS 系统格式化超过16TB的单个分区,要求机器具备联网条件,如无法满足,请跳转至以下链接,下载附件后,进行离线操作。

请点击 FAQ #4000333:Linux格式化超过16TB的单个分区为EXT4格式文件系统的离线解决方案



1、查看当前系统的硬盘资源
# lsblk

      如上所示,sdb是一块裸磁盘,还没有经过分区,因此,需要先进行分区。


2、硬盘分区
      如果已经分好区,请忽略此步骤。
# parted /dev/sdb mkpart primary 0G 100%

      在使用上述命令分区时,如遇unrecognised disk label错误,请先使用fdisk分一个小的分区然后删除,之后再执行一次parted分区命令,如下所示。






3、新建一个目录
# mkdir -p /tmp/e2fsprogs/build


4、执行获取并解压安装包命令
# curl -Lk $(URL="https://sourceforge.net/projects/e2fsprogs/files/?source=navbar" && URL1=$(awk -F'/' '{print $3}' <<< $URL) && curl -Lks $URL|awk -F'"' '/tar.gz/{print "https://'$URL1'"$2;exit}') | tar xz -C /tmp/e2fsprogs --strip-components=1


5、进入新建的目录
# cd /tmp/e2fsprogs/build


6、安装开发工具GCC
# yum -y install make gcc gcc-c++ automake


7、编译并安装
# ../configure && make -j$(getconf _NPROCESSORS_ONLN) && make install


8、修改/etc/mke2fs.conf文件的参数,使之支持64位系统
# sed -i 'N;N;/ext4 =/a \\t\tauto_64-bit_support = 1' /etc/mke2fs.conf


9、创建文件系统
# mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -i 4194304 /dev/sdb1


10、新建挂载目录
# mkdir /new_disk​


11、挂载
# mount /dev/sdb1 /new_disk/



12、查看挂载情况


更多信息,请参考如下文章:https://www.unix-ninja.com/p/Formatting_Ext4_volumes_beyond_the_16TB_limit


附:
      如果想要格式化为XFS文件系统,请参考如下文章。

请点击 FAQ #40000145:如何格式化大于16TB的单分区_格式化为XFS文件系统解决方案