我的 ext4 檔案系統遇到了幾個問題,這似乎是由於傑巴德2寫日記。我發了個相關帖子這裡我正在重新措辭,希望有人能夠提供幫助。
作為一個最小的範例,我從一個空的 8GB USB 記憶棒開始並使用gparted建立一個 ext4 分割區。 gparted在建立ext4檔案系統時所使用的指令是:
mkfs.ext4 -j -O extent -L DataTraveler8gb /dev/sde1
我使用 gparted 檢查檔案系統:
e2fsck -f -y -v /dev/sde1
我安裝它:
sudo mount /dev/sde1 /media/test
該磁碟是空的,但該磁碟 (/dev/sde1) 上的日誌記錄非常活躍。其他磁碟都是 ext4 SSD,格式類似。 iotop 的快照:
% sudo iotop -oPa
Total DISK READ: 0.00 B/s | Total DISK WRITE: 2027.21 K/s
PID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
262 be/3 root 0.00 B 56.00 K 0.00 % 0.18 % [jbd2/sda1-8]
29069 be/3 root 0.00 B 0.00 B 0.00 % 0.16 % [jbd2/sde1-8]
891 be/3 root 0.00 B 4.00 K 0.00 % 0.03 % [jbd2/sdc1-8]
jbd2 對 /dev/sde1 做了什麼?
如果我對更大的 2Tb 磁碟執行相同的步驟,iotop 表示一旦我掛載該空磁碟,jbd2 就會以 Mb/s 的速率不斷寫入該空磁碟。
在具有作業系統和 /home 的其他磁碟上,我嘗試尋找進程是否正在修改任何檔案以導致此行為,但找不到任何檔案。我還將許多磁碟密集型進程移至使用 tmpfs。並使用了 noatime。
我的這台機器上還有另一個非 SSD 硬碟 /dev/sdb,它也是 ext4,但沒有經過 gparted 格式化(同事給我的)。它沒有出現在 iotop 中。所以我假設 gparted 有問題。
任何建議表示讚賞。此外,有關如何修改現有分區來解決問題而不必從頭開始的任何提示都會很棒。
有一些與 jbd2 相關的帖子,但沒有幫助(例如這裡)。
答案1
看來 ext4 通過後置大量初始化直到安裝(也許是 uninit_bg 選項?)來執行“快速格式化”,我懷疑 jbd2 在您第一次格式化驅動器後正在執行此操作。其中一則評論這裡建議 jbd2 在建立後寫入分割區的時間與其大小成正比,並建議每 200 GB 寫入 10 分鐘,這表示每 TB 寫入 50 分鐘。我昨天格式化了一個 3TB ext4 驅動器,jbd2 一直在寫入,但現在已經停止了。
btrfs 不會這樣做,順便說一句,但我還不相信它對於外部驅動器- 例如,您需要一個最新的內核(我認為是3.4+),否則如果您刪除驅動器,內核將會崩潰(並且可能會遺失資料)無需先卸載它(如果斷電,當然會發生這種情況)。