格式化(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 ~]#
-------------------------------------------