http://wiki.linux.org.hk/w/Format_disk_as_Ext2,_Ext3_or_Ext4

标准文章
作者: Roy Chan
协力:  
校对: -
级别: 初阶
分享本文:
如要连结本文,强烈建议使用英文连结:http://wiki.linux.org.hk/w/Format_disk_as_Ext2,_Ext3_or_Ext4
          

格式化 Ext2/Ext3//Ext4 是使用 e2fsprogs 的 mke2fs 来进行。

目录

[隐藏]

  • 1 格式化
  • 2 格式化选项
    • 2.1 区块大小 (Block size)
    • 2.2 Inode 数目
    • 2.3 Inode 大小 (inode size)
    • 2.4 保留空间
    • 2.5 侦察坏区块 (Bad block)
    • 2.6 日志大小 (Journal size)
    • 2.7 档案系统类型 (fs-type)
    • 2.8 档案系统标签 (Filesystem label)
  • 3 格式化画面资讯
  • 4 参考资料
  • 5 相关页面
  • 6 相关连结
[编辑]

格式化

用系统管理员帐户 (即 root) 身份打「mkfs -t ext2|ext3|ext4 储存装置」:

mkfs -t ext3 /dev/sdb5

要格式化档案系统为 Ext2,亦可以直接使用命令 mkfs.ext2 或 mke2fs,例如:

mkfs.ext2 /dev/sdb5

或者:

mke2fs /dev/sdb5

要格式化档案系统为 Ext3,亦可以使用命令 mkfs.ext3 或 mke2fs -j,例如:

mkfs.ext3 /dev/sdb5

或者:

mke2fs -j /dev/sdb5

Linux 在 2.6.28 开始正式鼓励使用 Ext4。要格式化档案系统为 Ext4,亦可以使用命令 mkfs.ext4 或 mke2fs -T ext4,例如:

mkfs.ext4 /dev/sdb5

或者:

mke2fs -T ext4 /dev/sdb5

mkfs.ext2、mkfs.ext3、mkfs.ext4 和 mke2fs 一般收录在套件 e2fsprogs 中。

当 mkfs (意思为 makfilesystem) 收到选项 -t 档案系统,自然会寻找程序 mkfs.档案系统 并执行。而一般 GNU/Linux 都会缺省有 mkfs.ext2、mkfs.ext3、mkfs.ext4 和 mke2fs 四个程序,您会发觉四个程序的程序码都是一样或指向同一个程序。mkfs.ext2、mkfs.ext3 和 mkfs.ext4 会以叫用时的程序名称来决定格式档案系统为 Ext2 还是 Ext3 或 Ext4。
[编辑]

格式化选项

[编辑]

区块大小 (Block size)

区块 (block) 是档案系统储存盘案内容最小的单位,其大小对档案系统的空间运用和效用有很大的影响。较的大区块可以的令档案系统大小上限和档案大小上限增加,亦可以加快了大档案的读写。然而亦会浪费较多的空间,对平均档案大小较小的档案系统比较不利。区块大小只可以在格式化档案系统时设定,往后除重新格式化外不能改变。

Ext2/Ext3/Ext4 的区块大小可以是 1024、2048 或 4096 字节。 (Compaq Alpha 可以使用 8192 字节区块) mke2fs 一般缺省会把小于 512 MiB 的档案系统使用 1024 字节区块格式化,等于或大于 512 MiB 的档案系统使用 4096 字节区块。(实际是视乎mke2fs.conf 中档案系统类型 small 和 default 的设定 blocksize)

您可以使用 mke2fs/mkfs 的选项 -b block-size 指定格式化后档案系统的区块大小,例如:

mkfs -t ext3 -b 4096 /dev/sdb5

-T 可以根据档案系统类型 (fs-type) 决定区块大小和其他选项,例如使用档案系统类型 news 的设定格式化档案系统,可以使用:

mkfs.ext3 -T floppy /dev/fd0
[编辑]

Inode 数目

Ext2/Ext3 档案系统的 inode 数目限制了整个档案系统可能最多拥有的档案数目,而这数目在格式化档案系统时已决定,往后除重新格式化外不能改变。 。一些储存了大量小档案的档案系统 (例如 USENET 新闻组服务器) 有机会出现用尽 inode 但仍余下大量硬盘空间的情况。所以安装这类服务器时,档案系统有机会需要特别设定。

mke2fs 缺省会根据档案系统的大小来决定 inode 的数目,小于或等于 512 MiB 的档系统会每 4kiB 有一个 inode,512 MiB 以上的档案系统则每 8kiB 有一个 inode。[1](实际是视乎 mke2fs.conf 中档案系统类型 small 和 default 的设定 inode_ratio)

要直接设定 inode 数目可以使用 mke2fs/mkfs.ext2/mkfs.ext3/mkfs 的选项 -N no-of-node,例如:

mke2fs -N 1000000 /dev/sdb5

mke2fs/mkfs.ext2/mkfs.ext3/mkfs 的选项 -i byte-per-inode 根据档案系统的大小来决定 inode 的数目,例如要档案系统每 512 KiB 就有一个 inode,可以使用:

mke2fs -i 524288 /dev/sdb5

mke2fs/mkfs 的选项 -T 可以根据档案系统类型 (fs-type) 决定 inode 数目和其他选项,例如使用档案系统类型 news 的设定格式化档案系统,可以使用:

mkfs.ext3 -T news /dev/sdb5
[编辑]

Inode 大小 (inode size)

现时 inode 的大小缺省为 256 字节,早期的 inode 只有 128 字节。较大的 inode 令档案系统较易扩充支援 POSIX ACL 和扩充属性 (Extended Attrible) 等功能。inode 大小同样在格式化后不能改变。

您可以加上 -I inode-size 指定 inode 大小:

mkfs.ext3 -I 128 /dev/sdb5
[编辑]

保留空间

Ext2/Ext3 缺省保留 5% 硬盘空间供系统管理员工作之用。设定保留空间大小可以使用 mke2fs/mkfs.ext2/mkfs.ext3/mkfs 的选项 -m percentage,例如要档案系统保留 12% 的空间,可以使用:

mkfs.ext2 -m 12 /dev/sdb5

格式化后仍可以使用命令 tune2fs -m 或 tune2fs -r 改变。

[编辑]

侦察坏区块 (Bad block)

格式化时加上选项 -c,mke2fs 会扫描整个储存装置是否有坏区块 (bad block),例如:

mkfs -t ext3 -c /dev/sdb6

如果使用选项 -cc,mke2fs 会写一些资料入储存装置每个区块并再读取来测试坏区块 - 比原本只读更准确和但更慢的方法侦察坏区块,例如:

mkfs.ext2 -cc /dev/sdc1
[编辑]

日志大小 (Journal size)

格式化 ext3 或 ext4 时,mke2fs 会自动根据档案系统的大小划分日志 (journal) 的大小[2]

  • 少于 32,768 个区块则划分 1024 个区块作日志
  • 少于 262,144 个区块但大于或等于 32,768 个区块则划分 4096 个区块作日志
  • 大于或等于 262,144 个区块则划分 8192 个区块作日志

您可以加上 -J size=日志大小 指定建立的日志大小,单位为 MiB,例如:

mke2fs -J size=128 /dev/sdb1

格式化了 sdb1 为 ext3 并划分 128 MiB 的日志。(使用选项 -J 已稳示启用日志功能,所以可以略去选项 -j) 留意日志的大小只可以为 1024 至 102,400 个区块。

William von Hagen[2]认为 mke2fs 自动划分的日志大小一般应该很适合,而无需要自订。日志过小会令其容易被写满,有机会减低档案系统效率。较大的日志对启用 journaling 模式可能有帮助。但如果日志大于计算机实体内存大小,开机修复档案系统时有机会不够内存加载整个日志纪录,不能自动修复。

如果有多于一颗硬盘,可以考虑使用外部日志 (external journal) 把档案系统和日志储存在不同的硬盘,可以增加效能。

[编辑]

档案系统类型 (fs-type)

e2fsprog 1.39 之前中的 mkfs.ext2/mkfs.ext3/mke2fs 只支援 news 、 largefile 和 largefile4 三个档案系统类型。e2fsprog 1.39 开始, mkfs.ext2/mkfs.ext3/mke2fs 使用设定档案 mke2fs.conf 自订档案系统类型。[3] 现时一般 GNU/Linux 缺省的档案系统类型包括:

  • small - 区块大小 1 KiB,每 4 KiB 一个 inode,inode 大小 128 字节
  • floppy - 区块大小 1 KiB,每 8 KiB 一个 inode,inode 大小 128 字节
  • news - 每 4 KiB 一个 inode
  • largefile - 每 1 MiB 一个 inode

e2fsprogs 缺省的 mke2fs.conf 额外定义了 [4]

  • largefile4 - 每 4 MiB 一个 inode
  • hurd - 区块大小 4 KiB,inode 大小 128 字节
  • ext3 - 开启了 has_journal 功能
  • ext4 - inode 大小 256 字节,开启了 has_journal、extents、huge_file、flex_bg、uninit_bg、dir_nlink 和 extra_isize 功能
[编辑]

档案系统标签 (Filesystem label)

档案系统标签 (Filesystem label) 在个别档案系统又叫作 Volume Name,是档案系统中一个小栏目用作简述该档案系统的用途或其储存数据。现时 GNU/Linux 都会用 USB 手指/IEEE1394 硬盘等可移除储存装置的档案系统标签作为其挂载目录的名称,方便使用者识别。而个别 GNU/Linux distribution 如 Fedora、RHEL 和 CentOS 等亦在 /etc/fstab 取代传统装置档案名称 (即 /dev/sda1 和 /dev/hdc5 等) 的指定开机时要挂载的档案系统,避免偶然因为 BIOS 设定或插入次序的改变而引起的混乱。您可以使用选项 -L 标签 在格式化时设定档案系统标签:

mkfs.ext2 -L Photos /dev/sdc1

Ext2/Ext3/Ext4 的档案系统标签不可以超过 16 个字符。往后可以使用命令 e2label 或 tune2fs -L 随时改变。

[编辑]

格式化画面资讯

以下是使用命令 mke2fs/mkfs.ext2 格式化一个约 8 GiB 的分割区成为 Ext2 档案系统的画面:

# mke2fs /dev/sdb5
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
524288 inodes, 2096466 blocks
104823 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 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, 1605632Writing inode tables: done
Writing superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

当中包括显示了有关新建 Ext2 档案系统的以下资讯:

  • 区块大小 (Block size) - 上例为 4096 字节 (4 KiB)
  • Fragment 大小 (Fragment size) - 实际上 Ext2/Ext3/Ext4 都不支援 fragment 功能,所以这值一定和区块大小一样[5]
  • inodes 数目 - 上例在整个档案系统建立了 524,288 个 inodes,亦是档案系统所可能拥有档案数目的上限
  • 区块数目 (blocks) - 上例在整个档案系统建立了 2,096,466 个区块
  • 保留区块 (reserved blocks) - 上例在整个档案系统保留了约 5% 的空间共 104,823 个区块 (约 409 MiB = 104,823 x 4 KiB) 给供系统管理员工作之用
  • 档案系统区块数目上限 (Maximum Filesystem blocks) - 现时 Ext2/Ext3 所能支援一个档案系统所可能拥有区块数目的上限,上例为 2,147,483,648。即表示档案系统大小上限为 8 TiB =2,147,483,648 x 4 KiB
  • 区块组数目 (block groups) - 上例在整个档案系统建立了 64 个区块组
  • 区块/组 (blocks per group) - 每个区块组的区块数目,为 32,768。个区块组约有 128 MiB = 32,768 * 4 KiB
  • inodes/组 (inodes per group) - 每个区块组的 inodes 数目,为 8192
  • Superblock 备份 (Superblock backups) - Superblock 被备份在编号 32768、98304、163840、229376、294912、819200、884736 和 1605632 区块,即编号 1、3、5、7、9、25、27 和 49 区块组

此外,最尾两行亦显示档案系统的最大挂载次数 (Maxmimum Mount count) 为 21 和最大检查间距为 180 日,表示档案系统每挂载超过 21 次或超过 180 日未有进行完整档案系统检查都会启动时进行完整检查。

为避免多个档案系统需要在同一次启动时进行完整档案系统检查,mke2fs 会在格式化档案系统时用一个乱数来设定最大挂载次数 (Maxmimum Mount count) 的值,所以此值每次格式化时都不同。[2]

以下是使用命令 mke2fs -j/mkfs.ext3/mkfs.ext4 格式化一个约 8 GiB 的分割区成为 Ext3 或 Ext4 档案系统的画面:

mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
524288 inodes, 2096466 blocks
104823 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 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, 1605632Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

和格式化 Ext2 的画面几乎相同,唯一分别只是多了个 “Creating journal” 建立日志的步骤罢了。此行同时显示日志的大小,上例为 32,768 个区块 (128 MiB = 32,768 * 4 KiB)。

[编辑]

参考资料

  1. ↑ Diedrich, Oliver (2008). Tuning the Linux file system Ext3. Heise Online. (Accessed at 15 Nov 2008)
  2. ↑ 2.0 2.1 2.2 Hagen, William von (2001). “Linux Filesystems”. Sams Publishing. ISBN 06-723-2272-2
  3. ↑ Ts'o, Theodore. (2006) E2fsprogs Release Notes: E2fsprogs 1.39 (May 29, 2006) e2fsprogs.
  4. ↑ e2fsprogs 原始码: misc/mke2fs.conf. e2fsprogs.
  5. ↑ e2fsprogs (2008). “mke2fs(8) - create an ext2/ext3 filesystem”. Ubuntu 9.04.
[编辑]

相关页面

  • 格式化存储装置 - 包括格式化成为 ReiserFS、JFS、XFS、FAT 和 NTFS。
  • 使用外部日志 (exteranl journal)
  • 显示 Ext2/Ext3/Ext4 档案系统资讯
  • 检查档案系统
  • 设定常规档案系统检查
  • 设定档案系统的系统管理员保留空间
  • 设定 Ext2/Ext3/Ext4 档案系统的错误处理方案
  • 显示或改变档案系统标签
  • 使用 UUID 管理档案系统
  • /etc/mke2fs.conf
[编辑]

相关连结

  • GNU/Linux Manpage: mke2fs(8) - create an ext2/ext3 filesystem[SuSE][OpenSuSE] - GNU/Linux 中 e2fsprogs 的 mke2fs(8) 说明文件

格式化存储装置成为 Ext2/Ext3/Ext4 档案系统相关推荐

  1. 浅谈Linux标准的文件系统(Ext2/Ext3/Ext4)

    Ext 全称Linux extended file system, extfs,即Linux扩展文件系统,Ext2就代表第二代文件扩展系统,Ext3/Ext4以此类推,它们都是Ext2的升级版,只不过 ...

  2. EXT2/EXT3/EXT4文件系统数据恢复工具开发计划

    D-Recovery For Linux数据恢复软件已经开发完成,现在把研发计划贴出来,留个纪念. EXT2/EXT3/EXT4文件系统数据恢复工具开发计划 EXT2/EXT3/EXT4是Linux下 ...

  3. linux分区之ext2,ext3,ext4,gpt

    linux分区之ext2,ext3,ext4,gpt 2013-07-10 12:00:24 标签: ext3 gpt 原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 .作者信息和本 ...

  4. 模块化编译ext2, ext3,ext4 文件系统

    本文的目的就是将ext2, ext3,ext4文件系统编译成模块化,当我们需要对ext2, ext3,ext4进行修改的时候,就不需要重新编译内核.在这里,我会尽可能详细讲解每一个步骤,包括重新编译内 ...

  5. Windows 7下读写Ext2/Ext3/Ext4文件系统

    Linux文件系统格式一般是Ext3,现在Ext4也出来了.如何在Windows上读写这些分区呢? 推荐以下几款软件: 1. ext2Fsd (http://www.ext2fsd.com/) 可以读 ...

  6. linux的磁盘文件系统特点总结(ext2/ext3/ext4/xfs/tmpfs)

    实际中,如何选择磁盘的文件系统,我进行了归纳和总结 1.查看linux系统下支持的文件系统 ll /lib/modules/3.10.0-229.el7.x86_64/kernel/fs/ 2.各个文 ...

  7. Ext2explore查看ext2/ext3/ext4 file

    比如想查看Android system.img,file看起来是ext2文件, file system.img system.img: Linux rev 1.0 ext2 filesystem da ...

  8. Linux下修改EXT2/EXT3/EXT4文件系统的磁盘卷标的方法

    首先要获取你的磁盘在/dev中的路径,可以使用这两个命令查看:mount和fdisk -l 用到的工具先交代一下: e2fsprogs 和 tune2fs 接下来假设要修改的磁盘是/dev/sda1 ...

  9. linux ext3 ext4 查看,技术|Linux 中管理 EXT2、 EXT3 和 EXT4 健康状况的 4 个工具

    文件系统是一个在计算机上帮你去管理数据怎么去存储和检索的数据结构.文件系统也可以被视作是磁盘上的物理(或扩展)分区.如果它没有很好地被维护或定期监视,它可能在长期运行中出现各种各样的错误或损坏. 这里 ...

最新文章

  1. Mysql中的DCL
  2. TensorFlow alexnet在华为Mate10上运行方法
  3. php 表单跳转,html - 思路问题:php表单跳转
  4. 如何在 CSS 中设置组件在浏览器屏幕水平垂直居中
  5. 配置nginx作为静态资源服务器 css,js,image等资源直接访问
  6. 四二拍用音符怎么表示_每个音符都是赞美歌拍子分析 0基础识简谱每日必看
  7. python刷阅读_简单的37行python爬虫刷CSDN博客阅读数
  8. swift:创建滚动视图的图片轮播器
  9. python+selenium 自动化测试环境搭建
  10. Ansible Ad-Hoc与常用模块
  11. 2018最新JAVA基础面试题和高级面试题
  12. Flash制作大雪纷飞效果动画
  13. 简单的WGS84转UTM程序[C++]
  14. 关于心理的二十五种倾向(查理·芒格)-3
  15. edge microsoff 连不上网_win10电脑连不上网的三种解决方法
  16. FireStart教程:基于SharePoint的出差报销流程一
  17. 游戏封网卡mac地址后修改网卡mac地址
  18. Mac -- 常用的快捷键 如何使用快捷键进行微信截图
  19. 《知识英雄》后记:我是一名记者
  20. phpcms数据字典大全

热门文章

  1. 软件设计师10:标准和知识产权
  2. 虚拟蜜罐Honeyd的分析和研究
  3. 【从嵌入式视角学习香山处理器】六、NutShell代码结构(乱画的框图)
  4. ESLint报错解决方案(error: No ESLint configuration found)
  5. 怎样在iPhone或iPad上的“查找我”中设置AirTag?
  6. 达人评测 R55600G对比R74750G选哪个好
  7. 魔猴-stl3D文件计算体积、面积、长宽高
  8. android 可以上下左右滑动的界面布局
  9. 精灵跟随鼠标移动以及鼠标图标的显示与关闭
  10. 进销存仓库管理的意义