使用parted工具:

1

yum install parted

1

2

3

4

5

6

7

8

9

10

11

parted /dev/sdb //选择硬盘

GNUParted 2.3Using /dev/sdbWelcome to GNU Parted! Type 'help' to view a lis ofcommands。

(parted) mklabel gpt //类型GPT

Warning: The existing disk label on /dev/sdb will be destroyedand all data on this disk will be lost. Do you want to continue?

Yes/No? y //确定

(parted) mkpart prinmary 1 -1 //将硬盘分成一个分区

(parted) print //查看

(parted) quit //退出Information: You may need to update /etc/fstab.

cat /proc/partitions | grep sdb1

8       49 3907016704 sdb1

mkfs.ext4 /dev/sdb1 //格式化文件系统为ext4

好了,那么是什么原因导致格式化这个 2T 要 8 分钟,并一下用掉 30G 呢?答案是 inode 数量。在 Linux 的文件系统中,一个文件对应一个 inode。一个 inode 大小现在默认值是 256 字节。当然 256 字节是记录不了大文件所有数据地址的,于是有间接块,间接块就是……呃,总之就是

有多少个 inode 就能存多少个文件,无论文件有多大,而一个 inode 要 256 字节。

而 inode 数量是由格式化程序(这里就是 mkfs.ext4)根据自动算出来的。默认是 16K 一个 inode也就是说,就算你在这个分区全是 16K 小的文件,都有足够数量的 inode 使用。

但问题是,对于我这种拿来当仓库用的分区,不可能全是 16K 的文件呀,高清电影和光盘映像都是上 G 的东西了。上面说过,一个文件要 inode,就算这个分区都塞满了,肯定还有很多 inode 没被使用,明显是浪费掉了。

扯了这么多还是在个实际例子吧,就拿我这个 2T 新硬盘为例。格式化时会输出一些信息

$ sudo mkfs.ext4 -n /dev/sdc1mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=1 blocks, Stripe width=0 blocks122101760 inodes, 488378368 blocks24418918 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=429496729614905 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,102400000, 214990848

看到有 122101760 个 inodes 吧,一个 inode 占256字节,那么换算成 M 单位是:(122101760 * 256) / (1024 ** 20 = 29810M,差不多 30G 啊!

警告!警告!严重警告! 上面的命令怎么多了个 -n 参数?-n 参数表示模拟运行,但不格式化,这样可以看不同的格式化参数会有什么效果。如果没有这个参数,那就真的格式化了。所以对有数据的分区测试时千万要记得加上 -n 参数!下面我都带上这个参数。

但是运行 mkfs.ext4 需要 root 权限,漏了 -n 太危险,可以用 tune2fs 查看文件系统各种信息。

sudo tune2fs -l /dev/sdc1

找 Inode count 一行。

man 一下 mkfs.ext4,发现有两个参数可以制定 inode 数量

  • -i bytes-per-inode:多少个字节一个 inode
  • -N number-of-inodes:直接制定 inode 数量

默认 16k 一个 inode 相当于

sudo mkfs.ext4 -i 16384 -n /dev/sdc

把这个数字加大了就行了,最好是 1024 的倍数。比如 1M,即 1048576 字节。

sudo mkfs.ext4 -i 1048576 -n /dev/sdc

其实在 /etc/mke2fs.conf 定义了一些默认值,可以用 -T 来指定类型,比如 largefile 类型就是 1M 一个 inode,上一个命令相当于

sudo mkfs.ext4 -T largefile -n /dev/sdc

还有一个 largefile4,4M 一个 inode。不过比 largefile 才少了 300M,对于 2T 来说小意思了,没必要省,万一小文件过多 inode 不够呢?

于是

$ sudo mkfs.ext4 -T largefile -n /dev/sdc1mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=1 blocks, Stripe width=0 blocks1907840 inodes, 488378368 blocks24418918 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=429496729614905 block groups32768 blocks per group, 32768 fragments per group128 inodes per groupSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,102400000, 214990848

还有 1907840 个 inode,可以保存 1907840 个文件,真够了,估计也难用满。(1907840 * 256) / (1024 ** 2) = 465M, 省出 29810 - 465 = 29345M,29G!十来部高清了。

格式化也只需半分钟,占用 700M 左右,因为还有日志其它什么的,过度优化没必要了,控制在 1G 内我觉得够了

对linux系统4T硬盘分区相关推荐

  1. 安装Ubuntu Linux系统时硬盘分区最合理的方法

    无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在装 ...

  2. linux格式化4t硬盘分区,详解:Linux 硬盘,格式化,分区 详解

    disk是Linux自带的硬盘分区工具,可以对硬盘进行分区,或者对硬盘分区进行调整. 首先选择要进行操作的磁盘 [root@linuxidc ~]# fdisk /dev/sdb 输入m,列出可以执行 ...

  3. linux系统创建硬盘分区,介绍Linux硬盘系统创建分区步骤

    本人很喜欢Linux硬盘系统,在工做中也很喜欢总结关于Linux的经验教训.Linux硬盘系统的知识里面介绍了些通常经常使用的挂载点,用户们学会就彻底能够操做Linux系统. Linux硬盘系统下,硬 ...

  4. linux系统没有硬盘分区,Linux系统入门学习:硬盘分区的陷阱及应对

    之所以想到写这篇,是因为本人在折腾Linux系统的过程中,有多次掉入硬盘分区的陷阱的经历.最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来.经过多方查询资料,终于弄明白了硬盘分区的一些概念.下面将其 ...

  5. linux+系统的硬盘分区格式化,linux硬盘分区、格式化、挂载超详细步骤

    在linux中增加一块或者多块硬盘来实现扩容或者备份数据,分区.格式化.挂载是不可避免的三个步骤.下面用超详细的步骤介绍如何对一块新的硬盘进行分区.格式化.挂载的操作. 分区→格式化→挂载→使用 [分 ...

  6. linux+系统的硬盘分区格式化,linux系统将硬盘分区格式化成ext4分区挂载

    1.将硬盘分区(这里就分一个区) fdisk /dev/cciss/c0d1 交互信息: Command (m for help): n Command action e extended p pri ...

  7. linux系统新硬盘格式化,linux系统如何格式化一块硬盘?

    如果大家给windows系统装过硬盘的话,应该会对本文内容倍感亲切. 说说windows 让我们从一些问题开始: 当我们给win主机插入一块新的硬盘的时候,我们并不能在"我的电脑" ...

  8. Linux系统磁盘与分区管理

    Linux最传统的磁盘文件系统(filesystem)使用的是EXT4格式,所以要了解文件系统就得要由认识EXT4开始,而文件系统是创建在硬盘上面的,因此我们得了解硬盘的物理组成才行,下面我们回来详细 ...

  9. linux系统中硬盘及分区如何命名,Linux硬盘命名和安装分区

    硬盘命名: 硬盘命名基于文件,一般有如下文件方式: /dev/hda1 /dev/sdb3 具体含义如下: /dev:是所有设备文件存放的目录. hd和sd:他们是区别的前两个字母,代表该分区所在的设 ...

最新文章

  1. JS滚轮事件(mousewheel/DOMMouseScroll)了解
  2. Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持
  3. FS,FT,DFT,DFS和DTFT的关系
  4. Expected BEGIN_OBJECT but was BEGIN_ARRARY at line 1 column 2 path$异常解决方法
  5. Spring MVC HelloWorld入门及运行机制 (一)
  6. CF641D. Little Artem and Random Variable
  7. java 常见错误_Java常见错误的十大列表(前100名!)
  8. WebView纯浏览模式,webView不可点击
  9. html设置边框dw,dreamweaver
  10. python多图合并成一张图_将现有的图形合并成一个图形PYTHON的pdf格式
  11. [GCN] Modification of Graph Convolutional Networks in PyTorch
  12. tableview 图片缓存
  13. ZStack源码剖析之核心库鉴赏——Defer
  14. python列表生成器语法_Python 列表生成式\生成器
  15. 新数据经济的民主化:科技巨头如何窃取我们的数据以及我们如何夺回控制权
  16. 智能化工厂的几大特征
  17. 【MacOS】java环境配置
  18. 深入浅出IAM(1)
  19. word 批量给表格增加题注
  20. 2023牛客寒假算法基础集训营1_20230116「典dp」「典set」「小思维+bfs」「小思维+构造+码力」「位运算博弈(人类智慧)」

热门文章

  1. SAP License:ERP系统是什么意思
  2. 手机也能拍出艺术品?大师镜头,“真”突破了不少
  3. 索尼电视linux系统版本,索尼X9500H智能液晶4K电视加入最新安卓9.0操作系统
  4. 超级好用的pycharm破译教程
  5. linux改完权限后 自动恢复,linux文件或目录权限修改后如何恢复(备份了权限就能恢复)...
  6. 什么是算法?读完这篇文章你就知道了
  7. 【Linux】使用Google Authenticator 实现ssh登录双因素认证
  8. 12C ORA-错误汇总15 ORA-32800 to ORA-39965
  9. 十个常用的FireFox扩展
  10. select 1 from和exists