將 SIGINT 發送到負責收縮的 resize2fs 到底有多危險?
我繼承了一個舊的 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
並不完全是火箭科學,中途暫停只是重新定位一些數據塊似乎也不難),但也有足夠多的非成功案例,例如 10yo Debian 錯誤https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574292但是即使那個 bug 已經有 10 年的歷史了,我只是執行了一個模擬
e2fsck
並resize2fs
通過strace
,而前者安裝了一大堆信號處理程序,包括SIGINT
andSIGTERM
,resize2fs
但仍然沒有。所以如果有人發現這個問題:以上述為軼事證據並繼續提防。:-) 請注意,手冊頁確實提到了一個標誌,用於在出現錯誤時創建撤消文件。
(而我,我只是希望我在螢幕會話中執行這個調整大小操作……但至少我確實有
-p
)編輯
等等,我剛剛意識到,為什麼不使用 SSH,製作一個 LVM 快照
e2fsck
,並且在調整大小仍在執行時?我在“重定位塊”階段連續做了 5 次,雖然每次檢查時我都得到“包含有錯誤的文件系統,強制檢查”,但它從未發現任何錯誤。現在當然不要問我關於數據完整性的問題。編輯
tytso@ 本人在https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574292#30上的相當有趣的回應