对linux系统4T硬盘分区
使用parted工具:
1 |
|
1 2 3 4 5 6 7 8 9 10 11 |
cat /proc/partitions | grep sdb1 8 49 3907016704 sdb1
|
好了,那么是什么原因导致格式化这个 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硬盘分区相关推荐
- 安装Ubuntu Linux系统时硬盘分区最合理的方法
无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在装 ...
- linux格式化4t硬盘分区,详解:Linux 硬盘,格式化,分区 详解
disk是Linux自带的硬盘分区工具,可以对硬盘进行分区,或者对硬盘分区进行调整. 首先选择要进行操作的磁盘 [root@linuxidc ~]# fdisk /dev/sdb 输入m,列出可以执行 ...
- linux系统创建硬盘分区,介绍Linux硬盘系统创建分区步骤
本人很喜欢Linux硬盘系统,在工做中也很喜欢总结关于Linux的经验教训.Linux硬盘系统的知识里面介绍了些通常经常使用的挂载点,用户们学会就彻底能够操做Linux系统. Linux硬盘系统下,硬 ...
- linux系统没有硬盘分区,Linux系统入门学习:硬盘分区的陷阱及应对
之所以想到写这篇,是因为本人在折腾Linux系统的过程中,有多次掉入硬盘分区的陷阱的经历.最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来.经过多方查询资料,终于弄明白了硬盘分区的一些概念.下面将其 ...
- linux+系统的硬盘分区格式化,linux硬盘分区、格式化、挂载超详细步骤
在linux中增加一块或者多块硬盘来实现扩容或者备份数据,分区.格式化.挂载是不可避免的三个步骤.下面用超详细的步骤介绍如何对一块新的硬盘进行分区.格式化.挂载的操作. 分区→格式化→挂载→使用 [分 ...
- linux+系统的硬盘分区格式化,linux系统将硬盘分区格式化成ext4分区挂载
1.将硬盘分区(这里就分一个区) fdisk /dev/cciss/c0d1 交互信息: Command (m for help): n Command action e extended p pri ...
- linux系统新硬盘格式化,linux系统如何格式化一块硬盘?
如果大家给windows系统装过硬盘的话,应该会对本文内容倍感亲切. 说说windows 让我们从一些问题开始: 当我们给win主机插入一块新的硬盘的时候,我们并不能在"我的电脑" ...
- Linux系统磁盘与分区管理
Linux最传统的磁盘文件系统(filesystem)使用的是EXT4格式,所以要了解文件系统就得要由认识EXT4开始,而文件系统是创建在硬盘上面的,因此我们得了解硬盘的物理组成才行,下面我们回来详细 ...
- linux系统中硬盘及分区如何命名,Linux硬盘命名和安装分区
硬盘命名: 硬盘命名基于文件,一般有如下文件方式: /dev/hda1 /dev/sdb3 具体含义如下: /dev:是所有设备文件存放的目录. hd和sd:他们是区别的前两个字母,代表该分区所在的设 ...
最新文章
- JS滚轮事件(mousewheel/DOMMouseScroll)了解
- Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持
- FS,FT,DFT,DFS和DTFT的关系
- Expected BEGIN_OBJECT but was BEGIN_ARRARY at line 1 column 2 path$异常解决方法
- Spring MVC HelloWorld入门及运行机制 (一)
- CF641D. Little Artem and Random Variable
- java 常见错误_Java常见错误的十大列表(前100名!)
- WebView纯浏览模式,webView不可点击
- html设置边框dw,dreamweaver
- python多图合并成一张图_将现有的图形合并成一个图形PYTHON的pdf格式
- [GCN] Modification of Graph Convolutional Networks in PyTorch
- tableview 图片缓存
- ZStack源码剖析之核心库鉴赏——Defer
- python列表生成器语法_Python 列表生成式\生成器
- 新数据经济的民主化:科技巨头如何窃取我们的数据以及我们如何夺回控制权
- 智能化工厂的几大特征
- 【MacOS】java环境配置
- 深入浅出IAM(1)
- word 批量给表格增加题注
- 2023牛客寒假算法基础集训营1_20230116「典dp」「典set」「小思维+bfs」「小思维+构造+码力」「位运算博弈(人类智慧)」
热门文章
- SAP License:ERP系统是什么意思
- 手机也能拍出艺术品?大师镜头,“真”突破了不少
- 索尼电视linux系统版本,索尼X9500H智能液晶4K电视加入最新安卓9.0操作系统
- 超级好用的pycharm破译教程
- linux改完权限后 自动恢复,linux文件或目录权限修改后如何恢复(备份了权限就能恢复)...
- 什么是算法?读完这篇文章你就知道了
- 【Linux】使用Google Authenticator 实现ssh登录双因素认证
- 12C ORA-错误汇总15 ORA-32800 to ORA-39965
- 十个常用的FireFox扩展
- select 1 from和exists