服務(wù)器崩了,六個多小時才救回數(shù)據(jù)(附解決經(jīng)驗分享)
系統(tǒng):centos7
硬盤結(jié)構(gòu):256G SSD系統(tǒng)盤+1T HDD存儲盤
崩潰原因(猜測):運行stable diffusion時需要依賴libz.so.1庫,下載時無意間覆蓋了原系統(tǒng)的庫文件,導致系統(tǒng)fatal error,無法正常啟動
直接原因:覆蓋文件時系統(tǒng)有提示,但筆者直接使用root權(quán)限強制覆蓋了,后來檢查代碼(從網(wǎng)上文檔copy的),其中含有-f選項,即強制覆蓋,也是原因之一。
嘗試解決:
筆者先是嘗試以“單用戶模式”登入系統(tǒng)(類似win pe模式,禁用大部分程序以保證系統(tǒng)的運行正常)。
兩種啟動方式:一是在進入centos系統(tǒng)前按e編輯啟動項,增加init=/bin/sh;二是插入裝有centos系統(tǒng)的啟動u盤,進入“救援模式”。經(jīng)筆者體驗,二者并無明顯區(qū)別,后者的救援模式可以將原系統(tǒng)文件移至/mnt/system文件夾中,似乎更為方便些
但遺憾的是,即使更改libz.so.1的軟鏈接也無法使系統(tǒng)正常開機,在反復折騰一個下午后,筆者終究放棄了該想法,轉(zhuǎn)考慮數(shù)據(jù)恢復的問題。
數(shù)據(jù)恢復:
文件存儲盤的數(shù)據(jù)恢復十分簡單,因為本質(zhì)上只是系統(tǒng)崩了無法加載文件,硬盤的物理性質(zhì)與軟件分區(qū)并無異常,因此筆者登入單用戶模式掛載該硬盤成功后便不再考慮(事實證明,直接將其連接到linux系統(tǒng)上就可以讀取其中信息)
系統(tǒng)盤的數(shù)據(jù)就很麻煩了,通過lsblk命令可以看到硬盤分區(qū)結(jié)構(gòu)(以下為示意圖)

系統(tǒng)盤sdb被分成了sdb1 sdb2 sdb3三個分區(qū),且sdb3(即存儲用戶數(shù)據(jù) /home文件夾下內(nèi)容)使用的是lvm文件格式,直接使用mount命令掛載不成功,且網(wǎng)上教程中的fsck命令也無法修復該文件系統(tǒng),到此筆者折騰許久未找到方法,甚至一度想要舍棄這部分數(shù)據(jù)。
不過天無絕人之路,筆者想嘗試進入live CD系統(tǒng)(一種linux版本的pe系統(tǒng)),圖形化的查看下文件盤的資料,順便碰碰運氣之時,在網(wǎng)上看到了GParted Live這樣一個開源磁盤分區(qū)工具
在其官網(wǎng)可以下載到iso文件(https://gparted.org/livecd.php)
使用u盤啟動該系統(tǒng)時可以從其自帶的file system中找到/dev/centos-home類似這樣的block文件,經(jīng)確認,該文件可被mount命令掛載,并且內(nèi)部文件屬于原/home文件夾下的文件,至此,系統(tǒng)盤的文件也恢復成功(將塊文件直接復制到其他硬盤即可)
損失:
幾乎一整天的時間(雖然中間有在等待可以打會游戲……)
雖然文件保下來了,但之前部署的各種docker 與 qq機器人等服務(wù)配置都沒了,又得走一遍流程
前文中剛配好的cuda與stable diffusion又沒了!!
收獲:
說實話不想寫這部分……但確實有一定的好處吧。
一是借此擺脫了centos系統(tǒng)(重裝了ubuntu 22.04),雖說centos7到2024年才停止維護,但說實話這個系統(tǒng)不是很好用,尤其是裝驅(qū)動極為困難(想起了之前折騰許久裝無線網(wǎng)卡驅(qū)動失敗最終扯了根超長網(wǎng)線的傷心事)。
二是重裝了顯卡驅(qū)動,上篇文章提到筆者收了一款p104-100的礦卡并為其安裝了cuda,但由于沒找到官方的linux驅(qū)動就只能湊活著用(實測跑圖速率約為2060的三分之一),后來查到資料說p104用的1070 1080同款顯存顆粒,因此可以使用1080的驅(qū)動,筆者嘗試后似乎確實如此(跑圖速率之后再行測試)
三是吃一塹長一智吧,linux系統(tǒng)使用root權(quán)限時確實需要謹慎謹慎再謹慎!!
ps:因為原本的個人博客也搭在服務(wù)器上的,甚至還定制化了不少,現(xiàn)在也懶得搞了,暫時先在這里發(fā)著(反正b站一時半會兒崩不了~)