mkfs是“make file system”的縮寫。該命令通常用于在Linux系統服務器中管理存儲設備。您可以將mkfs視為用于將磁盤格式化為特定文件系統的命令行工具。
mkfs -t [fs type] [target device]
您還可以按以下方式使用mkfs命令。
mkfs.[fs type] [target device]
在本教程中,我將大體討論什么是文件系統。我還將提供有效使用mkfs命令的示例。
由于mkfs命令處理磁盤和分區,因此它要求您是root用戶或sudo用戶,具有運行admin命令的訪問權限。
注意:mkfs是功能強大的工具。重要的是要了解更改文件系統的潛在后果。選擇錯誤的設備節點將刪除該設備上的所有數據。使用此命令需要您自擔風險。
1、什么是文件系統?
文件系統(fs)是指管理設備上數據的結構和邏輯。文件系統控制數據的存儲和檢索方式。
文件系統有很多類型,每種都有各自的優缺點。這是最常見的文件系統類型:
FAT*
NTFS
ext*
APFS
HFS*
您可能之前曾經遇到過一種或多種這些文件系統類型。您甚至可以將類型與各自的操作系統關聯。
一般而言,FAT / NTFS是為Windows設計的,Ext是與Linux系統一起使用的,而APFS / HFS是macos文件系統。這些中的每一個都以不同的方式處理文件結構的邏輯,這可能導致問題。
這就是為什么在聲明文件系統類型或“格式化”設備之前考慮這一點至關重要的原因。每個用例都是不同的,由您決定哪種文件系統最適合您的需求。
2、mkfs命令示例
讓我向您展示mkfs命令的一些最常見用法。
請不要在您的實際系統上盲目嘗試任何這些命令。它將格式化目標設備/磁盤分區,擦除所有數據。
3、不帶任何選項的mkfs創建ext2文件系統
如果您沒有為目標設備指定文件系統類型,它將使用默認的ext2文件系統。
sudo mkfs /dev/sdb1
4、用mkfs指定文件類型
使用ext2并不是很方便或不可取。如今,大多數Linux系統建議使用ext4。您可以通過以下方式指定文件系統:
sudo mkfs -t ext4 /dev/sdb1
您也可以像這樣使用它:
sudo mkfs.ext4 /dev/sdb1
5、檢查設備上的壞塊
您還可以檢查設備上的壞塊,但請記住,檢查通常需要很長時間。
sudo mkfs -c /dev/sdb1
6、檢查設備的文件系統類型
您可能要檢查剛剛使用mkfs命令格式化的設備的文件系統類型。您可以將file命令用于此目的。
sudo file -sL /device
這是一個示例,顯示了它可以顯示什么樣的輸出:
Linux@handbook:~$ sudo file -s /dev/nvme0n1p2
/dev/nvme0n1p2: Linux rev 1.0 ext4 filesystem data, UuiD=34daa4b7-a2c4-4983-b5cc-df9baa6a6543 (extents) (64bit) (large files) (huge files)
7、現實生活中的用例:使用mkfs命令在USB設備上創建文件系統
現在您已經有了一些背景信息,您可以開始使用mkfs。
我能想到的最實用的演示是格式化USB閃存驅動器。這些相同的原理將適用于您選擇的任何類型的存儲。
8、查找您的設備
首先,您需要找到您的設備。您可以使用的一種方法是sudo fdisk -l。這將列出當前已安裝的所有磁盤節點。
您的輸出顯然會有所不同。在確定所需的驅動器時,請格外小心。如果不確定,請卸載磁盤,然后fdisk -l再次運行命令。如果您擁有正確的設備,則斷開連接時不會列出該設備。
9、驗證分區
我使用的設備是Patriot Memory USB,位于/dev/sdb。除了識別正確的磁盤外,您還需要確保更改了所需分區的fs。
我使用fdisk工具刪除現有數據并編寫新的分區表。在執行此操作時,我創建了一個要寫入的新分區。該分區將成為我們的目標:/dev/sdb1。
10、卸載
在嘗試更改文件系統之前,需要使用以下umount命令將其卸載。
christopher@Linux-handbook:~$ sudo umount /dev/sdb1
11、創建文件系統
既然已經驗證了目標并卸載了驅動器,則可以繼續創建文件系統。
我在-v此處添加了詳細選項,以在運行時顯示更多信息。
該過程可能需要一些時間,但除非目標大于2 TB,否則應在20分鐘內完成。
我在最后一個項目上掛了幾個程序問題。不幸的是,沒有進度指示器,也沒有拋出任何錯誤。
12、驗證新創建的文件系統
首先,檢查您剛剛使用的設備的文件系統。是您想要的那個嗎?
sudo file -sL /dev/sdb1
重要的是,要確保將在使用該設備的系統上識別該設備。我創建了一個名為test的文件夾,并在其中創建了一個名為test.txt的文件。
為了節省時間,您可以在此處復制并粘貼我的命令。
mkdir test && cd test
touch test.txt
echo “THIS IS ONLY A TEST” > test.txt
cat test.txt
如果一切正常,則應該能夠將驅動器安裝到所需的系統并訪問文件。如果無法訪問系統上的文件,則可能存在兼容性問題。