Linux基礎命令---mke2fs

来源:https://www.cnblogs.com/wj78080458/archive/2018/10/28/9864483.html
-Advertisement-
Play Games

mke2fs 在磁碟分區上創建ext2、ext3、ext4文件系統,預設情況下會創建ext2。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、語法 mke2fs [選項] [設備] mke2fs [ -c | -l filenam ...


mke2fs

      在磁碟分區上創建ext2、ext3、ext4文件系統,預設情況下會創建ext2。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

 

1、語法

      mke2fs  [選項]  [設備]

      mke2fs  [ -c | -l filename ]  [ -b block-size ]  [ -f fragment-size ]  [ -g blocks-per-group ]  [ -G number-of-groups ]  [ -i bytes-per-inode ]  [ -I inode-size ]  [ -j ] [-J  journal-options]  [ -K ]  [ -N number-of-inodes ] [ -n ]  [ -m reserved-blocks- percentage ]  [ -o creator-os ]  [ -O feature[,...]]  [ -q ]  [ -r fs-revision-level]  [ -E  extended-options]  [ -v ]  [ -F ]  [ -L volume-label ]  [ -M last-mounted-directory ] [ -S ]  [ -t fs-type ]  [ -T usage-type ]  [ -U UUID ]  [ -V ] device  [ blocks-count ]

mke2fs  -O journal_dev  [ -b block-size ]  [ -L volume-label ]  [ -n ]  [ -q ]  [ -v ]  external-journal [ blocks-count ]

 

     device是與設備相對應的特殊文件(例如:g/dev/hdXX)。blocks-count是設備上的塊數。如果省略,mke2fs會自動配置文件系統的大小。如果調用為mkfs.ext3,則創建日記,好像指定了“-j”選項。新創建的文件系統參數的預設值(如果沒有被下麵列出的選項覆蓋)由“/etc/mke2fs.conf”配置文件控制。

 

2、選項列表

選項

說明

-V

顯示命令版本信息

-b block-size

指定文件系統上塊的大小(kb),有效值1024、2048、4096。如果省略,塊大小將由文件系統大小和文件系統的預期使用量(請參閱-T選項)來決定。如果塊大小為負值,則mke2fs將使用啟髮式方法來確定適當的塊大小,同時限制塊大小至少為block-size位元組。這對於某些硬體設備非常有用(這些硬體設備要求塊大小為2k的倍數)。

-c

壞道檢測。如果該選項被指定兩次,則使用較慢的讀寫測試,而不是快速只讀測試。

-E extended-options

為文件系統設置擴展選項。擴展選項是逗號分隔的,可以使用等號複製。在mke2fs的早期版本中,“-E”選項以前是“-R”。為了向後相容,仍然接受“-R”選項。支持下麵的擴展選項:

1)stride=stride-size。使用stride-size個塊來配置RAID數組,這是在移動到下一個磁碟之前讀取或寫入磁碟的塊數,有時被稱為塊大小。這主要影響文件系統元數據在mke2fs時的存放位置,以避免將它們放置在單個磁碟上,這可能會影響性能。塊分配程式也可能使用它。

2)stripe-width=stripe-width。使用stripe-width個塊來配置RAID數組,這通常是stride-size *n,其中N是RAID中包含數據磁碟的數目(例如,對於RAID 5,有一個奇偶校驗磁碟,所以N將是數組中磁碟數量減去1),這允許塊分配器在寫入數據時防止修改RAID中的奇偶。

3)resize=max-online-resize。預留足夠的空間,以便塊組描述符能夠增長以支持具有線上調整塊大小的文件系統。

4)lazy_itable_init[= <0 to disable, 1 to enable>]。如果使能了,並且也啟用了uninit_bg功能,那麼inode表將不會被mke2fs完全初始化。這明顯加快了文件系統的初始化速度,但它要求內核在文件系統首次掛載時在後臺完成對文件系統的初始化。如果省略了選項值,則預設為1以啟用延遲inode表初始化。

5)test_fs。在文件系統超級塊中設置一個標誌,指示可以使用試驗性內核代碼(如ext4dev文件系統)掛載它。

6)discard。嘗試在mkfs時丟棄塊(在固態設備和稀疏/稀疏的Provi-Sied存儲中丟棄塊是有用的)。當設備宣傳丟棄數據時,將所有尚未歸零的inode表標記為零。這大大加快了文件系統初始化的速度。此設置為預設設置。

7)nodiscard。在mkfs時不會丟棄塊。

-f fragment-size

設置文件系統碎片的大小。mke2fs接受“-f”選項,但目前忽略它,因為第二個擴展文件系統還不支持片段

-F

強制mke2fs創建文件系統,即使指定的設備不是塊特殊設備上的分區,或者其他參數沒有意義。。由於這個指令很危險,因此必須確認兩次

-g blocks-per-group

指定塊組中的塊數。用戶通常沒有任何理由設置此參數,因為預設設置對文件系統是最佳的。開發測試用例的開發人員通常使用此選項。

-G number-of-groups

指定組的數量,這些組將被打包在一起用來創建更大的虛擬塊組。組數必須是2的冪,並且只能在啟用Flex_BG文件系統功能時指定。

-i bytes-per-inode

mke2fs為磁碟上每一個inode位元組創建一個inode。bytes/inode比越大,創建的inode就越少。這個值一般不應該小於文件系統的塊大小,因為在這種情況下,將產生比以往任何時候都多的inode。在文件系統創建後不可能擴展該文件系統上的inode數,因此要小心確定此參數的正確值。

-I inode-size

指定每個inode的大小(以位元組為單位)。mke2fs預設創建256位元組的inode。在2.6.10之後的內核和一些早期的供應商內核中,可以使用大於128個位元組的inode存儲擴展屬性以提高性能。inode表將消耗,這將減少文件系統中的可用空間,也會對性能產生負面影響。大型inode中存儲的擴展屬性在舊內核中是不可見的,這樣的文件系統將根本無法用2.4內核掛載。在創建文件系統之後,不可能更改此值。

-j

創建ext3文件系統。如果沒有指定“-j”選項,則預設日誌參數將用於創建存儲在文件系統中的適當大小的日誌

-J journal-options

使用命令行中指定的選項創建ext 3日誌。選項是逗號分隔的,可以使用相等號對參數賦值。支持以下兩個參數,而且這兩個參數只能指定一個。

size=journal-size。指定內部日誌的大小,單位是MB。日誌的大小必須至少為1024個文件系統塊(如果使用1k塊,則為1MB,如果使用4k塊,則為4MB),並且可能不超過102,400個文件系統塊。

device=external-journal。將文件系統附加到位於指定“external-journal“的日誌塊設備上,“external-journal“必須已使用以下命令創建:mke2fs -O journal_dev external-journal。請註意,“external-journal“必須具有與新文件系統相同的塊大小。此外,雖然支持將多個文件系統附加到單個“external-journal“,但linux內核和e2fsck(8)目前還不支持共用“external-journal“。

-K

保留,不要試圖在mkfs時丟棄塊

-l filename

從文件中讀取磁碟壞塊信息。註意,必須使用mke2fs使用的塊大小來生成壞塊列表中的塊號。因此,mke2fs的-c選項是一種簡單得多且不容易出錯的方法,用於在格式化磁碟之前檢查是否存在錯誤塊,因為mke2fs將自動將正確的參數傳遞給壞塊程式。

-L new-volume-label

設置文件系統捲標,捲標最大16個位元組

-m reserved-blocks-percentage

指定為超級用戶保留的文件系統塊的百分比。這樣可以避免碎片,並允許root有用的守護進程(如syzabd(8)在非特權進程被阻止寫入文件系統後繼續正確運行。預設百分比為5%。

-M last-mounted-directory

設置文件系統最後的掛載目錄。一些實用程式可以從上一次掛載目錄中選擇鍵,以確定文件系統應該安裝在何處。

-n

不創建文件系統,而是演示創建文件系統時該怎麼做

-N number-of-inodes

重寫應為文件系統保留的inode數量的預設值。

-o creator-os

重寫文件系統的“creator operating system”欄位的預設值。預設情況下,creator欄位設置為mke2fs編譯出的操作系統的名稱。

-O feature[,...]

創建具有給定功能的文件系統(文件系統選項),覆蓋預設的文件系統選項。預設情況下啟用的特性由base_features關係指定,或者在/etc/mke2fs.conf配置文件中的[defaults]部分中指定,或者在-T選項指定的用法類型的[fs_type]子節中指定,並由文件系統的[fs_types]子節中的特性關係進一步修改使用類型。

文件系統特性集將使用此選項指定的特性集進行進一步編輯,或者如果未給出此選項,則由正在創建的文件系統類型的default_features關係進行編輯,或者在配置文件的[defaults]部分中進行編輯。

文件系統功能集由一系列要啟用的以逗號分隔的特性組成。要禁用一個功能,只需在特征名前加上插入符號(‘^’)。偽文件系統功能“none”將清除所有文件系統功能。feature可以是以下內容:

1)dir_index。使用hashed b-trees來加快大目錄中的查找速度

2)extent。使用間extent塊來存儲inode中數據塊的位置。這是一種更有效的編碼,它加快了文件系統的訪問速度,特別是對於大型文件。

3)filetype。將文件類型信息存儲在目錄條目中。

4)flex_bg。允許將每個塊組元數據(分配點陣圖和inode表)放置在存儲介質上的任何位置。此外,mke2fs將每個塊組元數據放在每個“flx_bg group”的第一個塊組中。可以使用-G選項指定flx_bg組的大小。

5)has_journal。創建ext 3日誌,和“-j”選項一樣。

6)journal_dev。在給定設備上創建外部ext 3日誌,而不是常規ext 2文件系統。

7)large_file。文件系統可以包含大於2GB的文件。(創建文件>2GB時,現代內核會自動設置此特性。)

8)resize_inode。保留空間,這樣塊組描述符表在將來可能會增長。對於使用regze2fs線上調整大小很有用。預設情況下,mke2fs將嘗試預留足夠的空間,以便文件系統可以增長到其初始大小的1024倍。

9)sparse_super。創建一個較少SuperBlock備份的文件系統(在大型文件系統上節省空間)。

10)uninit_bg。在不初始化所有塊組的情況下創建一個文件系統。這個特性還允許校驗和功能,以及每個塊組中highest-inode-used統計信息。這個特性可以顯著加快文件系統的創建時間(如果啟用了lazable_init),還可以大大減少e2fsck的時間。它只受最近Linux內核中的ext 4文件系統的支持。

-q

靜默執行,通常用在腳本文件中。

-r revision

為新的文件系統設置文件系統修訂號。

-S

只寫超級塊和組描述符。如果所有的超級塊和備份超級塊都損壞了,並且需要一種最後的恢復方法,這是很有用的。它導致mke2fs重新初始化超級塊和組描述符,同時不觸及inode表、塊和inode點陣圖。e2fsck程式應該在使用此選項後立即運行,並且無法保證任何數據都是可輓救的。使用此選項時指定正確的文件系統塊大小至關重要,否則不可能恢復。

-t fs-type

指定文件系統類型,預設ext2。此選項根據“/etc/mke2fs.conf(5)”中的fstypes配置節控制預設使用哪些文件系統選項

如果使用“-O”選項顯式地添加或刪除應該在新創建的文件系統中設置的文件系統選項,則所請求的fs-type可能不支持所產生的文件系統。(例如,“mke2fs -t ext3 -O extents /dev/sdXX”將創建一個不受ext3實現支持的文件系統。 “"mke2fs -t ext3 -O^has_journal /dev/hdXX”將創建一個沒有日誌的文件系統,因此Linux內核中的ext 3文件系統代碼將不支持該文件系統。)

-T usage-type[,...]

指定文件系統的使用方式,以便mke2fs可以選擇最佳的文件系統參數。所支持的usage-type在配置文件“/etc/mke2fs.conf(5)”中定義。用戶可以使用逗號分隔列表指定一個或多個usage-type。

-U

用指定UUID創建系統

-v

顯示詳細執行過程

 

3、實例

創建ext2文件系統

[root@localhost ~]# mknod /dev/sdb4 b 1 1      //創建一個設備

 

[root@localhost ~]# mke2fs /dev/sdb4          //創建文件系統,沒有指定類型,預設是ext2

mke2fs 1.41.12 (17-May-2010)

文件系統標簽=

操作系統:Linux

塊大小=1024 (log=0)

分塊大小=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

4096 inodes, 16384 blocks

819 blocks (5.00%) reserved for the super user

第一個數據塊=1

Maximum filesystem blocks=16777216

2 block groups

8192 blocks per group, 8192 fragments per group

2048 inodes per group

Superblock backups stored on blocks: 

    8193

正在寫入inode完成                            

Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 26 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override. 

 

[root@localhost ~]# mount /dev/sdb4 /media/disk            //將文件系統掛載

 

[root@localhost ~]# df T      //查看已經使用的文件系統

Filesystem                   Type    1K-blocks     Used Available Use% Mounted on

/dev/mapper/VolGroup-lv_root ext4     25552764 13250844  11003900  55% /

tmpfs                        tmpfs      829656      268    829388   1% /dev/shm

/dev/sda1                    ext4       495844    32996   437248   8% /boot

/dev/sr0                     iso9660     56618   56618         0 100% /media/VBox_GAs_5.2.18

/dev/sdb1                    vfat        15863      140     14904   1% /media/disk

/dev/sdb4                   ext2        15863      140     14904   1% /media/disk            //可以看到這裡是ext2類型的

     


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在os層numa關閉時,打開bios層的numa會影響性能,QPS會下降15-30%; 在bios層面numa關閉時,無論os層面的numa是否打開,都不會影響性能。 安裝numactl: #yum install numactl -y #numastat 等同於 cat /sys/devices/ ...
  • Tmux是一個優秀的終端復用軟體,類似GNU Screen,但來自於OpenBSD,採用BSD授權。使用它最直觀的好處就是,通過一個終端登錄遠程主機並運行tmux後,在其中可以開啟多個控制台而無需再“浪費”多餘的終端來連接這台遠程主機。是BSD實現的Screen替代品,相對於Screen,它更加先進 ...
  • homebrew 安裝 formula 的不同歷史版本——以安裝 node 為例 系統環境 macOS Mojave 10.14 Homebrew 1.8.0 Homebrew/homebrew core (git revision 586b0f; last commit 2018 10 27) H ...
  • Ubuntu18.04 安裝 oh my zsh 目錄 [TOC] 安裝zsh 安裝curl 安裝oh my zsh 使用zsh替換bash shell 記住這個需要重啟才能生效 $ chsh s or $ sudo usermod s /bin/zsh username shell 通過修改~/. ...
  • 寫的很明白了 提示缺少GCC PERL MAKE,安裝 重試。。。。。 重啟VM 搞定。。。。 ...
  • 那啥,半個月沒開電腦了,這幾天打開發現系統沒聲了 那咋辦呢,修一修唄 搜索了下問題,還挺簡單的 1 jiang@ryzen:~$ sudo apt install pavucontrol 打開 1 jiang@ryzen:~$ sudo pavucontrol 大概就是長這樣 基本上只要在 回放 和 ...
  • 出現問題: 最近打開系統之後沒聲兒,抽空解決以下,誰知道安裝的時候出現了這個問題,一看就是鎖被占了唄 直接重啟大法。。。。。不行,看來是鎖分配出問題了,找了個解鎖命令 不行,沒用。。。。 思考一下:這些被占用的目錄都是關於包安裝的,簡單的說,包安裝的第一步應該就是拿到目錄然後下載一些包的信息,然後下 ...
  • 1 前景回顧 1.1 進程調度 記憶體中保存了對每個進程的唯一描述, 並通過若幹結構與其他進程連接起來. 調度器 面對的情形就是這樣, 其任務是在程式之間共用CPU時間, 創造並行執行的錯覺, 該任務分為兩個不同的部分, 其中一個涉及 調度策略 , 另外一個涉及 上下文切換 . 內核必須提供一種方法, ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...