Solaris

unix - 不小心將根目錄下的所有內容移動到 /old - Solaris 10

  • September 23, 2021

正如標題所說,在 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,lnmkdirsince mvCannot find /usr/lib/ld.so.1既不能使用其他會話登錄到機器。雖然仍然有一個會話可以使用,並且該視窗被while true; do date; echo hej 1234567; done. 我們已經討論了使用 Solaris 引導 CD 以及 USB 驅動器上的 Linux 發行版的解決方案。我們已經討論了將硬碟驅動器磁碟切換到另一個機架的解決方案。

/.../static/.../mv解決方案已經過測試,但沒有奏效。

仍然可以使用的命令是(可能還有更多可以使用的命令):echo, <, >, >>, |, pwd, cd.

有沒有辦法在沒有的情況下創建目錄或文件夾mkdir?有什麼方法可以使用echoand>echoand>>來恢復/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/* /

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