Signals

將 SIGINT 發送到負責收縮的 resize2fs 到底有多危險?

  • October 11, 2020

我繼承了一個舊的 PC 伺服器(quad Pentium 4),它只有和(RAID1 和 2 個 1T SATA 磁碟)的分區/,但需要更新發行版(來自 CentOS 6.9)。我決定創建一個新分區,以便可以格式化包含的分區。/boot``swap``/

但是我忘記添加-p標誌了resize2fs,現在它靜靜地盯著我看,我不知道它需要多長時間(它已經存在了 50 多個小時)。現在,我知道縮小文件系統可能需要很長時間,但是雖然我可以等待100 小時,但像800 小時這樣的時間是不可能的

這是我目前的想法:

  • 繼續Ctrl+ C&& e2fsck
  • 掛載分區並手動刪除價值超過 100G 的數據,這些數據對我們毫無用處。
  • 從頂部開始resize2fs -p ...

但我無法就將SIGINT發送到.resize2fs

我確實有重要資訊的額外備份,但仍然希望在不破壞文件系統的情況下這樣做。是的,我知道從頭開始安裝發行版並恢復我的備份可能會更快。

更新:我決定打斷它。一切似乎都很好,但問題仍然存在。我還是很好奇。

絕對是一個有趣的問題,雖然你的結果非常好(正如我所希望的,因為捕捉SIGINT並不完全是火箭科學,中途暫停只是重新定位一些數據塊似乎也不難),但也有足夠多的非成功案例,例如 10yo Debian 錯誤https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574292

但是即使那個 bug 已經有 10 年的歷史了,我只是執行了一個模擬e2fsckresize2fs通過strace,而前者安裝了一大堆信號處理程序,包括SIGINTand SIGTERMresize2fs但仍然沒有。

所以如果有人發現這個問題:以上述為軼事證據並繼續提防。:-) 請注意,手冊頁確實提到了一個標誌,用於在出現錯誤時創建撤消文件。

(而我,我只是希望我在螢幕會話中執行這個調整大小操作……但至少我確實有-p

編輯

等等,我剛剛意識到,為什麼不使用 SSH,製作一個 LVM 快照e2fsck,並且在調整大小仍在執行時?我在“重定位塊”階段連續做了 5 次,雖然每次檢查時我都得到“包含有錯誤的文件系統,強制檢查”,但它從未發現任何錯誤。現在當然不要問我關於數據完整性的問題。

編輯

tytso@ 本人在https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574292#30上的相當有趣的回應

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