unix - 不小心將根目錄下的所有內容移動到 /old - Solaris 10
正如標題所說,在 Solaris 10 機器上,作為 root (/) 下的 root 重要的所有內容或幾乎所有內容都已移至 /old。所以現在嘗試執行命令時的典型錯誤是
Cannot find /usr/lib/ld.so.1
(更改$PATH
並嘗試更改$LD_LIBRARY_PATH
,$LD_LIBRARY_PATH_64
並$LD_RUN_PATH
導出它們,但似乎沒有任何改變真正的庫路徑)。昨天幾乎嘗試找到可能有幫助的東西,但沒有發現任何東西會真正改變 Solaris 10 的庫路徑,除了可能crle
但無法執行它,因為Cannot find /usr/lib/ld.so.1
.找到了很多用於 Linux 的 root 或 /usr/bin 恢復提示等,但有關 Solaris 10/Unix 的資訊並不普遍而且非常稀少。
無法執行
cp
,ln
或mkdir
sincemv
。Cannot find /usr/lib/ld.so.1
既不能使用其他會話登錄到機器。雖然仍然有一個會話可以使用,並且該視窗被while true; do date; echo hej 1234567; done
. 我們已經討論了使用 Solaris 引導 CD 以及 USB 驅動器上的 Linux 發行版的解決方案。我們已經討論了將硬碟驅動器磁碟切換到另一個機架的解決方案。該
/.../static/.../mv
解決方案已經過測試,但沒有奏效。仍然可以使用的命令是(可能還有更多可以使用的命令):
echo
,<
,>
,>>
,|
,pwd
,cd
.有沒有辦法在沒有的情況下創建目錄或文件夾
mkdir
?有什麼方法可以使用echo
and>
或echo
and>>
來恢復/usr/lib/ld.so.1
嗎?我知道/usr/lib/ld.so.1
為了使命令正常工作,可能需要恢復更多內容。非常感謝您的閱讀,祝您有愉快的一天 =)
如果您不再以 root 身份執行 shell,則必須重新啟動到應急媒體。只要它能夠以讀寫方式掛載根文件系統,任何事情都可以。
如果您仍然可以以 root 身份執行命令,那麼一切都好辦。將環境變數設置
LD_LIBRARY_PATH
為指向包含基本系統工具使用的庫的目錄。至少/usr/lib
在 32 位 Solaris 上,/usr/lib/64
在 64 位 Solaris 上,可能還有其他目錄(我現在無法訪問 Solaris 10 來檢查)。要執行執行檔,請在其前面加上執行時連結器:(/usr/lib/ld.so.1
對於 32 位執行檔)或/usr/lib/64/ld.so.1
(對於 64 位執行檔)——現在移至/old
. 因此,您應該能夠通過以下方式恢復:LD_LIBRARY_PATH=/old/usr/lib export LD_LIBRARY_PATH /old/usr/lib/ld.so.1 /old/usr/bin/mv /old/* /