Mount

從命令行呼叫 mount 時自動執行 fsck

  • November 1, 2014

我有一個安裝和解除安裝 USB 驅動器的備份腳本。

我只是注意到它警告我:

EXT3-fs warning: maximal mount count reached, running e2fsck is recommended

我的問題:執行掛載命令時,如何讓它自動執行 e2fsck?

這就是它的外觀/etc/fsck

UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38   /media/backup_disk_1  auto  defaults,rw,noauto  0 3

<pass>也是,所以3我希望fsck在需要時執行。

編輯

根據給定的答案,這就是我最終這樣做的方式:

(在 Bash 腳本中)

function fsck_disk {
 UUID=$1
 echo "Checking if we need to fsck $UUID"
 MCOUNT=`tune2fs -l "UUID=$UUID" 2> /dev/null | sed -n '/Mount count:\s\+/s///p'`
 if [ "$MCOUNT" -eq "$MCOUNT" ] 2> /dev/null
 then
   echo "Mount count = $MCOUNT"
   if (( $MCOUNT > 30 ))
   then
     echo "Time to fsck"
     fsck -a UUID=$UUID \
          1>> output.log \
          2>> error.log
   else
     echo "Not yet time to fsck"
   fi
 fi
}

fsck_disk a60b1234-c123-123e-b4d1-a4a111ab2222

根據man fstab

第六個欄位(fs_passno)。fsck(8) 程序使用該欄位來確定重新啟動時執行文件系統檢查的順序。根文件系統應指定 fs_passno 為 1,其他文件系統應指定 fs_passno 為 2。驅動器內的文件系統將按順序檢查,但不同驅動器上的文件系統將同時檢查以利用硬體中可用的並行性. 如果第六個欄位不存在或為零,則返回零值,並且 fsck 將假定不需要檢查文件系統。

3虛空也是如此。此外,fstab並非每次安裝設備時都會檢查對啟動時間的影響。因此,要在引導期間進行檢查,請將第 6 個欄位更改為2。如果您想檢查每個安裝,您可以通過簡單的腳本甚至製作別名來完成(例如

alias bk_mount='fsck -a UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38 && \
               mount /media/backup_disk_1'

引用自:https://unix.stackexchange.com/questions/164384