ld.so.1庫檔案被破壞和刪除導致系統不能正常使用的解決
今天一個同事在一臺Solaris測試機上測試時,誤將/usr/lib/ld.so.1檔案給覆蓋了。進而導致系統中命令無法使用:
bash-2.03# ls
Bus Error
ls: Cannot read /usr/lib/ld.so.1
Killed
# dmesg
dmesg: Cannot read /usr/lib/ld.so.1
Killed
不過還好,這時沒有將當前的session斷開,否則就只有通過光碟恢復了。下面是恢復命令:
/usr/sbin/static/cp /etc/lib/ld.so.1 /usr/lib/
使用/usr/sbin/static/cp靜態命令將/etc/lib目錄下的ld.so.1備份檔案拷貝到ld.so.1目錄下即可。
上面的情況是使用者現有session沒有斷開的情況下的恢復情況,如果系統當前session斷開後,使用者是無法再登入系統的,這時只能重啟系統(而且執行reboot命令也會提示錯誤,只能通過按鈕重啟),通過光碟啟動的方法恢復了:
恢復的方法,用光碟或者其他方式啟動安裝介面,在介面上直接啟動一個終端程式。
1. 當前的usr/lib目錄下是光碟中mount的目錄。可以做為恢復系統中損壞的ld.so.1檔案用。
2. 接下來要做的是找到原來系統中usr/lib目錄,一般這個裝置是在/dev/dsk下c1t*的裝置檔案,一般不會是c1t0d0s0的。如果以前有各個目錄的裝置名記錄可以直接mount,不然只有一個一個來了。有可能在mount的時候會提示需要fsck,fsck命令是:fsck -F ufs /dev/rdsk/c1t0d0s0(裝置名稱,根據實際情況來改)
mount命令:mount /dev/rdsk/c1t0d0s0 /mnt (裝置名稱也是要一個一個改的哦)
mount成功後需要到mnt目錄下檢視,是不是有lib目錄,因為我們找的就是這個。
3. 找到這個裝置後,就先ls –l 看一下,是不是沒有執行權,沒有當然加一下嘍。方法:chmod +x ld.so.1
4. 這裡要做的是先umount後再重新啟動機器。
Umount命令: umount /mnt
Fsck也可以用在發生系統不能啟動的情況下,可以一個一個修復裝置,一般的小問題都可以解決。
下面介紹一下Solaris動態連結庫:
大家都知道,在WINDOWS系統中有很多的動態連結庫(以.DLL為字尾的檔案,DLL即Dynamic Link Library)。這種動態連結庫,和靜態函式庫不同,它裡面的函式並不是執行程式本身的一部分,而是根據執行程式需要按需裝入,同時其執行程式碼可在多個執行程式間共享,節省了空間,提高了效率,具備很高的靈活性,得到越來越多程式設計師和使用者的青睞。
Solaris系統裡面有些庫檔案,當編譯的時候,如果把庫檔案也編譯到檔案中,那檔案本身就可以執行,但這樣的缺點是生成的檔案十分大。所以很多情況下使用動態連線庫,就是編譯出的檔案不包含庫,而只包含到庫的指標,這樣在執行的時候會到指定的地方呼叫這個庫,這樣就減少了檔案的大小。Solaris包含的實時聯結器ld.so.1,就是動態物件的執行階段連結程式。許多系統命令都要通過該檔案實時將相關東西動態裝載進核心,如果用truss來跟蹤某個命令來執行的話,都會發現絕大多數命令都要呼叫到ld.so.1庫檔案。
如果ld.so.1檔案丟失將造成系統大多數命令都不能執行,為了防止這種情況,Solaris將一些重要的庫檔案備份在”/etc/lib”目錄下,並在 /usr/sbin/static下儲存了五個常用和關鍵系統的命令,這些命令不受該庫檔案的影響(也就是說即使該庫檔案被損壞,這些命令依然可以執行),此時如果系統還沒有當機或者沒有reboot,可以通過以下的方法來恢復:
# /usr/sbin/static/cp /etc/lib/ld.so.1 /usr/lib/
/usr/sbin/static目錄下的這個五個命令為:
cp、 ln、 mv、 rcp、 tar
這幾個命令都是靜態鏈連線的命令檔案,不受庫檔案的影響:
# file *
cp: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
ln: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
mv: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
rcp: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
tar: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
--The End--
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7220098/viewspace-214885/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux檔案系統破壞,導致系統無法啟動解決辦法Linux
- 恢復被破壞的 Windows XP 系統檔案Windows
- 檔案系統被破壞時的處理方法(轉)
- 電腦檔案被佔用無法刪除?Win10系統檔案被佔用無法刪除的解決方法Win10
- dual系統表被刪除的解決方法
- Linux檔案系統被破壞時的處理方法(轉)Linux
- 控制檔案被破壞的資料庫恢復方法資料庫
- Windows10系統下檔案被佔用無法刪除的解決方法Windows
- MySQL Linux伺服器快照克隆引起的binlog日誌無法正常刪除導致檔案系統滿MySqlLinux伺服器
- win10系統刪除檔案提示檔案正在使用無法刪除如何解決Win10
- AIX刪除檔案系統AI
- Standby OS i/o問題導致Primary 庫不能正常歸檔問題
- MySQL socket檔案被刪除MySql
- BIOS被病毒破壞了的解決方法(轉)iOS
- 系統檔案丟失怎麼辦 系統檔案損壞的解決辦法
- 記錄一次 HotPE 導致的檔案系統損壞及修復
- win10無法複製和刪除U盤檔案怎麼辦_win10 u盤不能複製和刪除檔案的解決方法Win10
- Kindeditor 漏洞導致網站被植入木馬檔案的解決辦法網站
- 資料庫檔案壞塊損壞導致開啟時報錯的恢復方法資料庫
- win10無法複製和刪除隨身碟檔案怎麼辦_win10 u盤不能複製和刪除檔案的解決方法Win10
- win10系統driverstore檔案怎麼刪除_win10系統刪除driverstore檔案的方法Win10
- Arch,Manjaro系統中Atom不能刪除檔案.提示gvfs-trash…JAR
- mac檔案刪除不了的解決辦法Mac
- win10電腦刪除檔案時提示檔案正在使用無法刪除怎麼解決Win10
- 刪除檔案或目錄提示"檔案或目錄無法刪除"的解決方法!
- 【北亞資料恢復】伺服器由於重灌系統導致邏輯卷改變,檔案系統破壞的資料恢復資料恢復伺服器
- 刪除正在使用的檔案
- 恢復ext4檔案系統被誤刪的檔案
- 刪除檔案提示檔案正在被另一個人或程式使用的解決方法
- Linux系統中檔案被刪除後的恢復方法(ext4)Linux
- UNIX系統被刪檔案的恢復策略(轉)
- Redo log檔案被刪除恢復
- 不能重新命名檔案及不能刪除檔案和資料夾許可權設定
- WPS被曝會刪除使用者本地檔案
- Linux教程-使用mc恢復被刪除檔案(轉)Linux
- UNIX 檔案太多,不能刪除的問題解決(ksh: /usr/bin/find: arg list too long)
- 非法刪除資料檔案導致資料庫不能開啟ORA-01122 ORA-01251資料庫
- git的忽略檔案和刪除檔案操作Git