格式化

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

mkfs -t ext3 /dev/sdb5

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

mkfs.ext2 /dev/sdb5

或者:

mke2fs /dev/sdb5

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

mkfs.ext3 /dev/sdb5

或者:

mke2fs -j /dev/sdb5

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

mkfs.ext4 /dev/sdb5

或者:

mke2fs -T ext4 /dev/sdb5

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

当 mkfs (意思为 make filesystem) 收到选项 -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 -mtune2fs -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 distributionFedoraRHELCentOS 等亦在 /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, 1605632 Writing inode tables: done
Writing superblocks and filesystem accounting information: done This 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, 1605632 Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done This 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)。

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

【转载】格式化存储装置成为 Ext2/Ext3/Ext4 档案系统的更多相关文章

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

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

  2. dumpe2fs 命令的使用,转储 ext2/ext3/ext4 文件系统信息

    使用man 命令可以查看 dumpe2fs 命令具体的使用的方法: NAME dumpe2fs - dump ext2/ext3/ext4 filesystem information SYNOPSI ...

  3. 使用 parted 命令可以查看系统采用什么类型的分区表 gpt/mbr/msdos/ext/ext/ext2/ext3/ext4

      Linux磁盘表示方式 Linux以字母标识磁盘的个数 a:第一块 b:第二块 Linux用数字标识分区:1-4标识主分区或扩展分区 逻辑分区从5开始 例如:sda.sda1.sda2 低级格式化 ...

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

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

  5. Linux文件系统Ext2,Ext3,Ext4性能大比拼

    Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4. Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只 ...

  6. ext2,ext3,ext4文件系统管理软件包e2fsprogs

    e2fsprogs(也叫做e2fs programs)是一个Ext2(及Ext3/4)文件系统工具集(Ext2 Filesystems Utilities[2] ),它包含了诸如创建.修复.配置.调试 ...

  7. 调整分区大小(ext2\ext3\ext4)

    现在的时间是2017年5月27日 我想说调整分区大小没那么麻烦,至少我直接将一个ext3格式分区从50G减少到了30G. 步骤如下 1 首先确保那个分区是没被挂载的. 2 调整分区大小,但是其实并没有 ...

  8. 在不损坏数据的情况下调整分区大小(ext2\ext3\ext4)

    现在的时间是2017年5月27日 我想说调整分区大小没那么麻烦,至少我直接将一个ext3格式分区从50G减少到了30G. 步骤如下 1 首先确保那个分区是未挂载的. 2 调整分区大小,但是其实并没有实 ...

  9. Linux ext2/ext3文件系统详解

    转载: Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表.索引节点是一个结构,它包含了一个文件的长度.创建及修改时间.权限.所属关系.磁盘中的位置等信 ...

随机推荐

  1. tcpdump http://www.cnblogs.com/daisin/articles/5512957.html

    http://www.cnblogs.com/daisin/articles/5512957.html

  2. go的map获取对应的key-value

    场景: IP是个Key,string字符串是个值, 一个IP可以对应多个字符串. 代码如下: package main import ( "fmt" ) func main() { ...

  3. form表单提交方式

    form表单提交方式总结一下: 一.利用submit按钮实现提交,当点击submit按钮时,触发onclick事件,由JavaScript里函数判断输入内容是否为空,如果为空,返回false, 不提交 ...

  4. PDO drivers no value in Windows

    学习php编程遇到 Uncaught exception 'PDOException' with message 'could not find driver' 或者 Undefined class ...

  5. 防火墙系列之firewall

    firewalld 介绍 防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口.它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (com ...

  6. org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [cn.facekee.cms.entity.CmsFansgroup#195]

    刚开始报错还是报的稀奇古怪的错误,让我纠结了好久,再三检查报错的位置,发现并没有错误,最后认真分析查看每行报错的信息才找到如题所述的错误!!!!! 报这种错误的原因可能是POJO映射文件中的字段和数据 ...

  7. python3 - 闭包

    # 定义一个函数def test(number): # 在函数内部再定义一个函数,并且这个函数用到外边函数的变量, # 那么将这个函数以及用到的一些变量称之为 闭包. def text_in(numb ...

  8. 误: Apache shutdown unexpectedly解决办法

    from:http://www.wopus.org/wordpress-basic/getting-started/2536.htmlXAMPP错  2015年10月20日15:58:19 新手上路发 ...

  9. Linux下用户管理、目录结构

    linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录. 目录介绍: / root,存放root用户的相关文件 home,存放普通用户的相关文 ...

  10. Linux(Centos6.5)下安装svn服务器,并通过http访问

    linux安装svn其实很容易,个人觉得难就难在配置上,反复配置,琢磨,查找相关资料,总算是成功了.. 安装: 安装svn,一般情况下,选择yum方式安装还是比较简单的. ? 1 2 [root@mo ...