格式化(format)是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。格式化通常分为低级格式化和高级格式化。如果没有特别指明,对硬盘的格式化通常是指高级格式化。格式化后会生成UUID。
一、linux支持的分区格式化命令
CentOS7-1810和Ubuntu18.04支持的格式化命令
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs .msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
openSUSE15支持的格式化命令
mkfs mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs mkfs.xfs
mkfs.bfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.vfat
Debian9.5支持的格式化命令
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs
mkfs.bfs mkfs.exfat mkfs.ext3 mkfs.fat mkfs.msdos mkfs.vfat
二、常用的格式化命令说明
1、mkfs
mkfs是在Linux下各文件系统专用程序mkfs.fs-type的前端程序。mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。例如,若在"-t" 参数中指定ext4,则
mkfs会调用 mkfs.ext4来建立文件系统。mkfs命令是util-linux包的一部分。
用法:
mkfs [选项] [类型] [设备]
选项:
-t, 文件系统类型;若不指定,将使用 ext2,如果想知道-t后面都支持什么文件系统,可以在命令行下输入mkfs.后在按两次Tab键,会显示几个命令除去前面的mkfs.后面就是支持的文件系统。如mkfs.ext4就是明支持ext4文件系统。
举例:格式化成ext4文件系统
-------------------------------------------------------
[[email protected] ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 #成功
-------------------------------------------------------
举例:格式化成xfs的文件系统
-------------------------------------------------------
[[email protected] ~]# mkfs -t xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext4). #提示这个分区已有ext4文件系统
mkfs.xfs: Use the -f option to force overwrite. #使用-f选项强制覆盖。
[[email protected] ~]# mkfs -t xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
-------------------------------------------------------
2、mke2fs
mke2fs命令是专门用于管理ext系列文件系统的一个专门的工具。其还有像mkfs.ext2,mkfs.ext3,mkfs.ext4等衍生的命令,它们的用法mke2fs类似,在系统man下它们的帮助手册会直接跳转mke2fs命令的帮助手册。这个命令下有很多选项用于格式化特点的需求。这么命令的选项很多这里就只介绍下面几个更多的通过man mke2fs来查看
命令格式:
mke2fs [选项] [设备]
-t 指定文件系统类型(如ext2,ext3,ext4等等),则会从/etc/mke2fs.conf文件中读取默认配置;
-b 设置硬盘的block大小。
-L 设置卷标;
-j 创建ext3文件系统,mkfs.ext3自带了该选项;
-N 设置inode节点的数量;
-m 设置为文件系统预留的块的百分比;
-c 在创建文件系统前进程硬盘自检;
-U 使用指定的UUID创建文件系统,UUID要符合他的命名格式,这个选项非常有用,可以把现有分区格式化成以前分区的UUID。
举例:创建ext4文件系统并设置卷标为vname:
-------------------------------------------------------
[[email protected] ~]# mke2fs -t ext4 -L vname /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=vname
OS type: Linux
块大小=4096 (log=2) #block默认大小
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
-------------------------------------------------------
3、mkfs.xfs
XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。RedHat7以后的默认文件系统。
命令格式:
mkfs.xfs [选项] [设备]
选项
-b size= 设置硬盘的block大小,默认4096字节,等号后面是自己的大小,不要加单位
-m uuid= 更改分区的UUID号,等号后面接实际像设置的uuid,UUID要符合他的命名格式。
-f 强制覆盖
这么命令的选项很多这里就只介绍下面几个更多的通过man mkfs.xfs来查看
举例:格式化分区block大小为1024B uuid为0dd5db1c-2f1f-45e7-bbc1-0cbd68ca2f2d并强制覆盖现有文件系统
-------------------------------------------------------
[[email protected] ~]# mkfs.xfs -b size=1024 -m uuid=0dd5db1c-2f1f-45e7-bbc1-0cbd68ca2f2d -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=262144 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=1024 blocks=1048576, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=1024 blocks=10240, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
-------------------------------------------------------
4、mkfs.ext3
格式化分区为ext3文件系统,这里就不举例介绍了。
命令格式:
mkfs.ext3 [选项] [设备] #可以不加选项直接将分区格式化成ext3
5、mkfs.vfat
这个命令是格式化U盘的,vfat是文件系统类型,linux叫vfat, windows下叫FAT32 、 这样格完后,windows linux 默认都都能认识了,这里就不举例介绍了。
命令格式:
mkfs.vfat [选项] [设备] #可以不加选项直接将分区格式化成FAT32
6、mkfs.btrfs
Btrfs 是一种新型的写时复制 (COW) Linux 文件系统已经并入内核主线。Btrfs 设计实现高级功能的同时,着重于容错、修复以及易于管理。它由 Oracle, Red Hat, Fujitsu, Intel, SUSE, STRATO 等企业和开发者共同开发, Btrfs 以 GNU GPL 协议授权,同时欢迎任何人的贡献.这里就bu举例介绍了。
命令格式:
mkfs.btrfs [选项] [设备] #可以不加选项直接将分区格式化成btrfs