Linux分区格式化

格式化(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文件系统
-------------------------------------------------------
[root@CentOS7 ~]# 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的文件系统
-------------------------------------------------------
[root@CentOS7 ~]# 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选项强制覆盖。
[root@CentOS7 ~]# 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
[root@CentOS7 ~]#
-------------------------------------------------------

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:
-------------------------------------------------------
[root@CentOS7 ~]# 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并强制覆盖现有文件系统
-------------------------------------------------------
[root@CentOS7 ~]# 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

三、使用工具partprobe让kernel从新读取分区表信息

当我们新建立一个分区后在没有重启系统的前提下我们对分区进行格式化,有时候会报错,不能对分区进行格式化,出现上面的原因是我们新建的分区,内核还不知道新分区的存在,只有通过partprobe命令通知操作系统分区表的更改或重启系统后当内核从新加载分区表后才能识别这个分区从而进行格式化,这个命令是在parted软件包中的命令。

用法:
partprobe   [选项]    [设备]

 选项:

 -d   不更新内核

 -s   显示磁盘分区汇总信息

 -h   显示帮助信息

 -v   显示版本信息

 [设备]这里可以不体现

举例:通知操作系统分区表的更改同时显示磁盘分区汇总信息
-------------------------------------------
[root@CentOS7 ~]# partprobe -s    #通过这里命令可以很好的了解系统下有多少磁盘,磁盘的分区表类型,磁盘下的分区数。如果不更新内核分区表信息加上-d选项
/dev/sda: gpt partitions 1 2 3
/dev/sdb: msdos partitions 1 2
/dev/sdc: gpt partitions 1
[root@CentOS7 ~]#
-------------------------------------------

发布了136 篇原创文章 · 获赞 38 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/Pipcie/article/details/104964788