mkfs.vfat以及mkfs.ext4命令详解

news/2024/11/25 21:58:51/

文章目录

  • 前言:
  • 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变体\
-bSECTOR-OF-BACKUP为FAT32选择备份引导扇区的位置一般后面要跟上备份的块数,eg:mkfs.fat -b 5 /dev/sda
-c\检查坏的磁盘块在创建文件系统之前检查
-C\在命令行上创建指定为DEVICE的文件,并将要创建的文件系统写入其中\
-DDRIVER-NUMBER指定要存储在FAT引导扇区中的BIOS驱动器号eg:mkfs.fat -D 1 /dev/sda
-fNUMBER-OF-FATS指定文件系统中文件分配表的数量,默认值为2eg:mkfs.fat -f 2 /dev/sda
-FFAT-SIZE指定使用的文件分配表的类型12、16或32位 eg:mkfs -F 12 /dev/sda
-hNUMBER-OF-HIDDEN-SECTORS选择卷中隐藏扇区的数量eg:mkfs.fat -h 1 /dev/sda
-iVOLUME-ID设置新创建的文件系统的卷ID卷ID是32位十六进制数(例如2e24ec82)。默认值为一个取决于文件系统创建时间的数字。
-I(大写的I)\强制mkfs.fat在整个设备上创建文件系统固定磁盘设备通常要分区,默认情况下,不允许在整个设备上创建文件系统。用这个-I即可强制执行。
-l(小写的L)FILENAME从FILENAME读取坏块列表。\
-mMESSAGE-FILE设置用户在未正确安装操作系统的情况下尝试启动此文件系统时收到的消息\
-MFAT-MEDIA-TYPE指定要存储在FAT引导扇区中的介质类型对于硬盘,此值通常为0xF8,对于软盘或分区,此值为0xF0或0xF9到0xFF之间的值,用于软盘制作。
-nVOLUME-NAME设置文件系统的卷名(标签)卷名最多可以有11个字符长。默认情况是没有标签。
-rROOT-DIR-ENTRIES选择根目录中可用的条目数对于软盘,默认为112或224,对于硬盘,默认为512。
-RNUMBER-OF-RESERVED-SECTORS选择保留扇区的数量对于FAT32格式,至少需要2个保留扇区,默认为32。否则,默认值为1(仅启动扇区)
-sSECTORS-PER-CLUSTER指定每个群集的磁盘扇区数必须是2的幂,即1、2、4、8。。。128
-SLOGICAL-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

选项参数含义备注
-bblock-size以字节为单位指定块的大小
-c\在创建文件系统之前,请检查设备是否有坏块\
-Ccluster-size使用bialloc功能为文件系统指定集群的大小(以字节为单位)有效的集群大小值为每个集群2048到256M字节
-droot-directory将给定目录的内容复制到文件系统的根目录中\
-D写入磁盘时使用直接I/O写入磁盘时使用直接I/O避免mke2fs占用大量缓冲区缓存,但这可能会影响在繁忙服务器上运行的其他应用程序。这个选项会导致mke2fs的运行速度慢得多
-F\强制mke2fs创建文件系统即使指定的设备不是块专用设备上的分区,或者其他参数没有意义。
-gblock-per-group指定块编组中的块数用户通常没有理由设置这个参数,作为默认值,对于文件系统来说是最优的
-Gnumber-of-groups指定将打包在一起以在ext4文件系统中创建更大的虚拟块组(或“flex_bg组”)的块组的数量提高了元数据的位置性和在元数据繁重的工作负载上的性能。组的数量必须是2的幂,并且只有在启用flex_bg文件系统功能时才能指定。
-ibytes-per-inode指定字节/索引节点的比率\
-I(大写的i)inode-size以字节为单位指定每个索引节点的大小\
-l(小写的L)filename从filename读取坏块列表\
-Lnew-volume-label将文件系统的卷标设置为新卷标卷标的最大长度是16个字节
-mreserved-blocks-percentage指定为超级用户保留的文件系统块的百分比避免了碎片化,默认百分比为5%
-Mlast-mounted-directory为文件系统设置最后安装的目录\
-n\使mke2fs不实际创建文件系统,而是显示如果要创建文件系统会做什么\
-Nnumber-of-inodes覆盖应该为文件系统保留的索引节点数量的默认计算(这是基于块的数量和每个索引节点的字节数比率)\
-ocreator-os覆盖文件系统的“创建者操作系统”字段的默认值creator字段默认设置为mke2fs可执行文件编译的操作系统的名称。
-O[^]feature[,…]使用给定的特性(文件系统选项)创建一个文件系统,覆盖默认文件系统选项\
-q\安静执行如果mke2fs在脚本中运行,则非常有用
-rrevision为新文件系统设置文件系统修订版默认情况是创建修订版1的文件系统。
-S\仅写入超级块和组描述符\
-tfs-type指定要创建的文件系统类型即ext2、ext3、ext4等
-Tusage-type[…]指定如何使用文件系统,以便mke2fs可以选择最佳的文件系统参数用于该用途\
-UUUID将文件系统的通用唯一标识符(UUID)设置为UUID\
-v\详细执行\
-V\打印mke2fs的版本号并退出\
-zundo file在覆盖文件系统块之前,请将块的旧内容写入撤消文件\
-j\使用ext3日志创建文件系统\
-Jjournal-options使用命令行上指定的选项创建ext3日志。size=journal-size,location=journal-location,device=external-journal
-eerror-behavior当检测到错误时,更改内核代码的行为error-behavior 的值为下面三种:continue Continue normal execution;remount-ro Remount filesystem read-only;panic Cause a kernel panic.
-Eextended-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

这里基本上把所有的参数都整理出来了,很多参数其实我们实际运用的时候用不太上。


http://www.ppmy.cn/news/75044.html

相关文章

自己动手写一个加载器

前言 当在 linux 命令行中 ./ 运行一个程序时&#xff0c;实际上操作系统会调用加载器将这个程序加载到内存中去执行。为了探究加载器的行为&#xff0c;今天我们就自己动手写一个简单的加载器。 工作原理 加载器的工作原理&#xff1a; 从磁盘读取 bin 文件到内存&#xf…

Maven 入门教程

Maven是专门为Java项目打造的项目管理和构建工具&#xff0c;类似 NodeJS 的 NPM&#xff0c;PHP 的 composer。 官网&#xff1a;https://maven.apache.org/ 它的主要功能有&#xff1a; 提供了一套标准化的项目结构&#xff1b;提供了一套标准化的构建流程&#xff08;编译…

AcWing 826. 单链表(C++)

目录 1.题目描述 2.AC 1.题目描述 826. 单链表 实现一个单链表&#xff0c;链表初始为空&#xff0c;支持三种操作&#xff1a; 向链表头插入一个数&#xff1b;删除第 kk 个插入的数后面的数&#xff1b;在第 kk 个插入的数后插入一个数。 现在要对该链表进行 MM 次操作…

2、Ray的基本概念和核心组件

2、Ray的基本概念和核心组件 导航 1.简介和背景 2.Ray的基本概念和核心组件 3.分布式任务调度和依赖管理 4.对象存储和数据共享 5.Actor模型和并发编程 6.Ray的高级功能和扩展性 7.使用Ray构建分布式应用程序的案例研究 8.Ray社区和资源 9.核心框架介绍 10.扩展1

04 面向对象(查漏补缺)

this的作用是什么&#xff1f;都有哪些用途&#xff1f; 表示初始化对象当前本身,内部存在地址,只有创建对象的时候才有this 1.调用成员变量,解决成员变量和局部变量的二义性 public Person(String name, int age) {this.name name; //[1] 这是给的创建的对象的字段,不是本…

电脑安装软件时,如何避免捆绑安装?

在网络上非正规网站下载安装软件时&#xff0c;经常会遇到捆绑安装的情况。你明明下载了一个软件&#xff0c;电脑上却多出好几个。那么我们在安装软件时&#xff0c;如何才能避免捆绑安装呢&#xff1f; 什么是捆绑安装&#xff1f; 捆绑安装是指用户安装一个软件时&#xff…

AC规则-2

基于RAM的远程接口 安全元件的访问规则可以通过远程应用程序管理 (RAM) 更新命令进行管理。 因此&#xff0c;ARA-M 和 ARA-C 各自提供一个远程接口&#xff0c;允许在 ARA 中存储或删除访问规则。 访问控制数据的任何远程管理都应仅通过 [GP 卡规范] 定义的安全通道协议来完成…

[VPX611]基于 6U VPX 总线架构的SATA3.0 高性能数据存储板

板卡概述 VPX611 是一款基于6UVPX 总线架构的高性能数据存储板&#xff0c;该板卡采用2 片XilinxKintex-7 系列FPGA 作为主控单元&#xff0c;FPGA 内嵌RAID 控制器&#xff0c;最大支持8 个mSATA 盘&#xff0c;最大存储容量可以达到8TByte&#xff0c;持续数据写入带宽可以达…