文章目录
- 前言:
- mkfs.vfat/mkfs.fat
- mkfs.ext4
前言:
做磁盘格式化(文件系统创建) 的时候发现网上对于mkfs.vfat和mkfs.ext4的命令解释都不多,这边就特地整理一下,虽然用man就可以查看,但是懒人嘛,还是喜欢看中文版的。
mkfs.vfat/mkfs.fat
当我用man指令查看mkfs.vfat
的时候,系统给我的详细介绍是mkfs.fat。处于好奇查了下互联网,发现mkfs.fat和mkfs.vfat还是有点区别的(以下内容摘自互联网):
1、兼容性:FAT是计算机系统中最古老的文件系统,它的兼容性最好,几乎所有的操作系统都能支持它。而VFAT则相对较新,不是所有的操作系统都能支持它。
2、文件大小:FAT只能支持小型文件,文件大小不能超过2GB。而VFAT则能够支持大型文件,文件大小可以超过2GB。
3、文件名:FAT只能支持短文件名,文件名长度最多只能8个字符,而VFAT则支持长文件名,文件名长度可以达到255个字符。
4、安全性:FAT没有文件权限控制机制,安全性较低。而VFAT则具有文件权限控制机制,安全性较高。
5、管理性:FAT具有较好的管理性,它能够自动进行文件碎片整理,而VFAT则不具有这一特性,文件碎片整理需要用户手动完成。
mkfs.vfat和mkfs.fat本质上是一样的,前者是后者的拓展,支持长文件名。
下面以fat进行阐释。
一般用法:mkfs.fat [option] device [block-count]
[]
里面是可选项。
device
:一般是指磁盘对应的文件位置eg./dev/sda
block-count
:设备上磁盘块的个数,如果不声明则mk.fat指令会自动决定文件系统大小。
选项 | 参数 | 含义 | 备注 |
---|---|---|---|
-a | \ | 此选项禁用对齐 | 以RAID、闪存介质或大扇区硬盘的显著性能下降为代价,提供少量额外的存储集群。 |
-A | \ | 使用MS-DOS文件系统的Atari变体 | \ |
-b | SECTOR-OF-BACKUP | 为FAT32选择备份引导扇区的位置 | 一般后面要跟上备份的块数,eg:mkfs.fat -b 5 /dev/sda |
-c | \ | 检查坏的磁盘块 | 在创建文件系统之前检查 |
-C | \ | 在命令行上创建指定为DEVICE的文件,并将要创建的文件系统写入其中 | \ |
-D | DRIVER-NUMBER | 指定要存储在FAT引导扇区中的BIOS驱动器号 | eg:mkfs.fat -D 1 /dev/sda |
-f | NUMBER-OF-FATS | 指定文件系统中文件分配表的数量,默认值为2 | eg:mkfs.fat -f 2 /dev/sda |
-F | FAT-SIZE | 指定使用的文件分配表的类型 | 12、16或32位 eg:mkfs -F 12 /dev/sda |
-h | NUMBER-OF-HIDDEN-SECTORS | 选择卷中隐藏扇区的数量 | eg:mkfs.fat -h 1 /dev/sda |
-i | VOLUME-ID | 设置新创建的文件系统的卷ID | 卷ID是32位十六进制数(例如2e24ec82)。默认值为一个取决于文件系统创建时间的数字。 |
-I(大写的I) | \ | 强制mkfs.fat在整个设备上创建文件系统 | 固定磁盘设备通常要分区,默认情况下,不允许在整个设备上创建文件系统。用这个-I 即可强制执行。 |
-l(小写的L) | FILENAME | 从FILENAME读取坏块列表。 | \ |
-m | MESSAGE-FILE | 设置用户在未正确安装操作系统的情况下尝试启动此文件系统时收到的消息 | \ |
-M | FAT-MEDIA-TYPE | 指定要存储在FAT引导扇区中的介质类型 | 对于硬盘,此值通常为0xF8,对于软盘或分区,此值为0xF0或0xF9到0xFF之间的值,用于软盘制作。 |
-n | VOLUME-NAME | 设置文件系统的卷名(标签) | 卷名最多可以有11个字符长。默认情况是没有标签。 |
-r | ROOT-DIR-ENTRIES | 选择根目录中可用的条目数 | 对于软盘,默认为112或224,对于硬盘,默认为512。 |
-R | NUMBER-OF-RESERVED-SECTORS | 选择保留扇区的数量 | 对于FAT32格式,至少需要2个保留扇区,默认为32。否则,默认值为1(仅启动扇区) |
-s | SECTORS-PER-CLUSTER | 指定每个群集的磁盘扇区数 | 必须是2的幂,即1、2、4、8。。。128 |
-S | LOGICAL-SECTOR-SIZE | 指定每个逻辑扇区的字节数 | 必须是2的幂并且大于或等于512,即512、1024、2048、40968192、16384或32768。大于4096的值不符合FAT文件系统规范,并且可能不适用于所有地方。 |
-v | \ | 详细执行 | 执行的可视化,就是会打印输出(written by edwinwzy) |
TIPS:mkfs.fat无法创建可启动的文件系统。由于各种原因,这并不像你乍看时想象的那么容易,而且已经被讨论了很多。mkfs.fat根本不支持它。
mkfs.ext4
mkfs.ext4其实是mke2fs的一个子集,使用mk2fs命令创建一个ext2/ext3/ext4的文件系统。
mkfs.ext4就是指定创建ext4的文件系统。
使用man指令查看mkfs.ext4显示出来的是mk2fs命令对应的参数显示。
因为前者是后者的子集,所以这边以mk2fs为样本进行参数解释,mkfs.ext4也可以使用同样的参数。
mke2fs 被用来创建一个ext2、ext3、ext4的文件系统;
一般用法:mke2fs [option] device
选项 | 参数 | 含义 | 备注 |
---|---|---|---|
-b | block-size | 以字节为单位指定块的大小 | |
-c | \ | 在创建文件系统之前,请检查设备是否有坏块 | \ |
-C | cluster-size | 使用bialloc功能为文件系统指定集群的大小(以字节为单位) | 有效的集群大小值为每个集群2048到256M字节 |
-d | root-directory | 将给定目录的内容复制到文件系统的根目录中 | \ |
-D | 写入磁盘时使用直接I/O | 写入磁盘时使用直接I/O | 避免mke2fs占用大量缓冲区缓存,但这可能会影响在繁忙服务器上运行的其他应用程序。这个选项会导致mke2fs的运行速度慢得多 |
-F | \ | 强制mke2fs创建文件系统 | 即使指定的设备不是块专用设备上的分区,或者其他参数没有意义。 |
-g | block-per-group | 指定块编组中的块数 | 用户通常没有理由设置这个参数,作为默认值,对于文件系统来说是最优的 |
-G | number-of-groups | 指定将打包在一起以在ext4文件系统中创建更大的虚拟块组(或“flex_bg组”)的块组的数量 | 提高了元数据的位置性和在元数据繁重的工作负载上的性能。组的数量必须是2的幂,并且只有在启用flex_bg文件系统功能时才能指定。 |
-i | bytes-per-inode | 指定字节/索引节点的比率 | \ |
-I(大写的i) | inode-size | 以字节为单位指定每个索引节点的大小 | \ |
-l(小写的L) | filename | 从filename读取坏块列表 | \ |
-L | new-volume-label | 将文件系统的卷标设置为新卷标 | 卷标的最大长度是16个字节 |
-m | reserved-blocks-percentage | 指定为超级用户保留的文件系统块的百分比 | 避免了碎片化,默认百分比为5% |
-M | last-mounted-directory | 为文件系统设置最后安装的目录 | \ |
-n | \ | 使mke2fs不实际创建文件系统,而是显示如果要创建文件系统会做什么 | \ |
-N | number-of-inodes | 覆盖应该为文件系统保留的索引节点数量的默认计算(这是基于块的数量和每个索引节点的字节数比率) | \ |
-o | creator-os | 覆盖文件系统的“创建者操作系统”字段的默认值 | creator字段默认设置为mke2fs可执行文件编译的操作系统的名称。 |
-O | [^]feature[,…] | 使用给定的特性(文件系统选项)创建一个文件系统,覆盖默认文件系统选项 | \ |
-q | \ | 安静执行 | 如果mke2fs在脚本中运行,则非常有用 |
-r | revision | 为新文件系统设置文件系统修订版 | 默认情况是创建修订版1的文件系统。 |
-S | \ | 仅写入超级块和组描述符 | \ |
-t | fs-type | 指定要创建的文件系统类型 | 即ext2、ext3、ext4等 |
-T | usage-type[…] | 指定如何使用文件系统,以便mke2fs可以选择最佳的文件系统参数用于该用途 | \ |
-U | UUID | 将文件系统的通用唯一标识符(UUID)设置为UUID | \ |
-v | \ | 详细执行 | \ |
-V | \ | 打印mke2fs的版本号并退出 | \ |
-z | undo file | 在覆盖文件系统块之前,请将块的旧内容写入撤消文件 | \ |
-j | \ | 使用ext3日志创建文件系统 | \ |
-J | journal-options | 使用命令行上指定的选项创建ext3日志。 | size=journal-size,location=journal-location,device=external-journal |
-e | error-behavior | 当检测到错误时,更改内核代码的行为 | error-behavior 的值为下面三种:continue Continue normal execution;remount-ro Remount filesystem read-only;panic Cause a kernel panic. |
-E | extended-options | 为文件系统设置扩展选项 | 后面跟的参数:mmp_update_interval=interval,stride=stride-size,stripe_width=stripe-width,offset=offset,resize=max-online-resize,lazy_itable_init[= <0 to disable, 1 to enable>],lazy_journal_init[= <0 to disable, 1 to enable>],num_backup_sb=<0 |
这里基本上把所有的参数都整理出来了,很多参数其实我们实际运用的时候用不太上。