Linux常見的緊急情況的處理方法(轉)
1、使用急救盤組進行維護
急救盤組(也稱為boot/root盤組),是系統管理員必不可少的工具。用它可以獨立地啟動和執行一個完整的Linux系統。 實際上,急救盤組中的第2張盤上就有一個完整的Linux系統,包括root檔案系統;而第1張盤則存放了可啟動的核心。
使用急救盤組維護系統很簡單。只需用這兩張盤啟動系統後,進入急救模式,這時使用的是root賬戶。為了能訪問硬碟上的檔案,需要手工安裝硬碟檔案系統。例如,用下面的命令可在/mnt目錄中安裝/dev/hda2盤上的ext2fs型別的Linux檔案系統:
# monut -t ext2/dev/hda2/mnt
注:現在根目錄是急救盤上的根目錄。為了訪問硬碟檔案系統中的檔案,必須先把它安裝到某個目錄下。這樣,如果將硬碟上檔案系統安裝在/mmt目錄下,則硬碟上原來的/etc/passwd檔案的路徑就是/mnt/etc/passwd
2、檔案系統被破壞時的處理方法
當檔案系統被破壞時,如果使用的是ext2fs型別的檔案系統,就可從軟盤運e2fsck命令來修正檔案系統中被損壞的資料。對於其他型別的檔案系統,可以使用相應的fsck命令。 當從軟盤上檢查檔案系統時,最好不要mount安裝
注:檔案系統被破壞的常見原因是超級塊被損壞,超級塊是檔案系統的“頭部”。它包含檔案系統的狀態、尺寸和空閒磁碟塊等資訊。如果損壞了一個檔案系統的超級塊(例如不小心直接將資料寫到了檔案系統的超級塊分割槽中),那麼系統可能會完全不識別該檔案系統,這樣也就不能安裝它了,即使採用e2fsck命令也不能處理這個問題。
不過,ext2fs型別的檔案系統將超級塊的內容進行了備份,並存放於驅動程式的塊組(block group)邊界。可以用如下的命令通知e2fsck使用超級塊的備份
# e2fsck -b 8193
是指檔案系統所在的分割槽,-b 8193選項用於顯示使用存放在檔案系統中的8193塊的超級塊的備份資料。
3、恢復丟失的檔案
如果不小心刪除了重要的檔案,那麼沒有辦法直接恢復。但是還可以將相應的檔案從急救盤複製到硬碟上。例如,如果刪除了檔案/bin/login,此時系統無法正常進到登入介面,可以用急救盤組啟動系統,將硬碟檔案系統安裝到/mnt目錄下,然後使用下述命令:
#cp -a /bin/login /mnt/bin
“-a”選項用於告訴cp在複製時保持檔案的訪問許可權。當然如果被刪除的基本檔案不在“急救盤組”中,也就不能用這種方法了。如果以前做過系統備份的話,那麼也可以用以前的備份來恢復。
4、函式庫破壞時的處理方法
如果不小心將系統函式庫檔案破壞了,或者破壞了/lib目錄下符號連結,那麼將導致依賴這些庫的命令無法執行。最簡單的解決辦法是用急救盤組啟動系統,在/mnt目錄中安裝硬碟檔案系統,然後修復/mnt/lib目錄下的庫。
5、無法用root賬號登入系統
由於系統管理員的疏忽,或者由於系統受到駭客的入侵,系統管理員可能無法用root帳號登入系統。
對於第1種情況,可能是系統管理員忘記了root密碼,用急救盤組就可以解決問題。
對於第2種情況,由於很可能是密碼被駭客修改了,因此係統管理員無法進入系統,也就是說,Linux系統完全失去了控制,因此應儘快重新獲得系統的控制權。在取得 root許可權後,還應檢查系統被破壞的情況,以防被駭客再次入侵。
需要做的最主要的工作就是重新設定root的密碼,獲得Linux作業系統的控制權。首先用急救盤組啟動系統,然後將硬碟的檔案系統安裝到/mnt目錄下,編輯/mnt/etc/passwd檔案,將其對應於root賬戶的一行加密口令域置空,如下所示:
root::0:0:root:/root:bin/bash
注:如果系統使用 shadow工具,就需要對檔案/etc/shadow進行上述的操作,使root登入系統不需要口令。
這樣,root賬戶就沒有口令了。當重新從硬碟啟動Linux系統時,就可以用root賬戶登入(系統不會要求輸入密碼)。進入系統後,再用命令passwd設定新的口令。
6、Linux系統不能啟動
一般來說,如果系統管理員不能正常進入系統,就需要考慮使用急救盤組進入急救模式排除系統的故障。但在沒有製作急救盤組的情況下,Linux系統不能啟動,該怎麼辦?
在個人計算機使用 Linux系統時,通常都是Linux和MS Windows 9x或MS Windows NT並存的。由於重新安裝其他的作業系統,經常會導致原有的Linux不能啟動。這主要是因為,這些作業系統預設為計算機中沒有其他的作業系統,因而改寫了硬碟的主開機記錄(MBR),沖掉了Linux的LILO系統載入程式。
如果有急救盤組,那麼很簡單,用第一張啟動盤啟動硬碟的Linux系統,重新執行LILO命令,就可以將LILO系統載入程式寫回硬碟的主開機記錄。再次開機即可。
如果沒有系統啟動盤,怎樣恢復硬碟上的Linux呢?在這種情況下,如果知道Linux在硬碟上的確切安裝分割槽,且有loadlin程式,就可以重新返回Linux。 loadlin程式是DOS下的程式,執行它可以從DOS下直接啟動Linux,快速進入Linux環境。在 Red Hat Linux 6.0光碟的 dosutil/目錄下就有這個程式。除此之外,還需要一個 Linux啟動核心的映像檔案。在 Red Hat linux 6.0光碟的 images/目錄下有這個檔案——vmlinuz。
例如,在Windows 98系統下面,進入DOS的單使用者模式,然後執行下述的loadlin命令,即可重新進入Linux系統:
loadlin vmlinuz root=/dev/hda8
/dev/hda8是Linux的root檔案系統所在的硬碟分割槽位置。命令執行後,就引導Linux系統。用root登入後,執行LILO命令,則重新將LILO裝入MBR,回到以前多作業系統並存使用的狀態。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939873/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料常見的處理方法有哪些大資料
- Java程式異常處理的特殊情況Java
- 人形動畫常見IK的處理動畫
- NO.A.0001——zabbix常見故障的處理
- FE.UX-常見CSS邊界情況防禦處理UXCSS
- 常見的死鎖情況及解決方法
- 【緊急情況】:回宿舍放下書包的我,花了20分鐘敲了一個搶購指令碼指令碼
- 5種常見的 DNS 故障診斷及問題處理方法DNS
- 常見的wait等待事件及處理(zt)AI事件
- 統信UOS系統常見故障及處理方法
- 大語言模型訓練資料常見的4種處理方法模型
- SSL證書稽核失敗的常見原因及處理方法(綜合篇)
- Python程式設計中一些常見的錯誤和處理方法Python程式設計
- oracle常見異常等待——latch處理思路Oracle
- 常見的Linux分支Linux
- 常見的linux命令Linux
- 幾種常見的延遲執行處理方式
- Linux記憶體不足的處理方法Linux記憶體
- 異常的處理
- React TSLint中常見的問題及處理方法React
- Java中處理SocketException: Connection reset”異常的方法JavaException
- MySQL儲存過程的異常處理方法MySql儲存過程
- 常見佇列等待事件處理思路佇列事件
- Redis 快取常見問題處理Redis快取
- 2_Bean的生命週期和常見的後處理器Bean
- Python中的常見方法Python
- Flutter處理Webview與H5通訊的常見方式FlutterWebViewH5
- Python指令碼的常見引數獲取和處理方式Python指令碼
- 三層switch轉一層switch的處理方法
- nodejs程式異常退出處理方法NodeJS
- 邦芒面試:處理面試突發狀況的方法面試
- 常見的 Linux 系統版本Linux
- 異常-throws的方式處理異常
- 常見處理器MCU、MPU、DSP、FPGA等嵌入式處理器FPGA
- 異常-Throwable的幾個常見方法
- [轉載] Java異常處理習題Java
- Java異常處理的兩種方式以及自定義異常的使用方法Java
- git上傳檔案時報錯常見的處理辦法Git
- Swift4 異常處理Try_Catch的使用之初見Swift