首頁 > 運維 > linux運維 > 主體

Linux系統常見問題解決方法

巴扎黑
發布: 2017-08-10 11:28:43
原創
2223 人瀏覽過

[導讀] 在Windows的系統下,當系統發生一些故障的時候,我們就會用一些常見補救的措施來修復系統,在Linux系統下也有一些比較常用的解決常見故障的措施,使用起來也是比較方便的。首先我們要建立一個急救盤組,包括準備

在Windows的系統下,當系統發生一些故障的時候,我們就會用一些常見補救的措施來修復系統,在Linux系統下也有一些比較常用的解決常見故障的措施,使用起來也是比較方便的。

首先我們要建立一個急救盤組,包括準備好bootdisk和rootdisk兩個軟盤,它可以提供一個獨立的啟動和運行完整的Linux系統的支援。如果你是系統管理員的話,那麼這肯定是你必不可少的日常維護工具。急救盤組的第一張磁碟存放了Linux系統可啟動的核心程式系統,急救盤組中的第二張磁碟上則有一個完整的Linux系統,其中包括「root」檔案系統。

使用急救盤組維護系統,操作起來是比較簡單的。在啟動系統的時候,需要用這兩個碟來啟動系統,這樣可以進入急救模式,這時我們使用的是「root」帳號。但是我們為了能存取硬碟上已有的文件,就需要手動安裝硬碟的檔案系統。現在系統的根目錄指的是急救盤上的根目錄。為了能夠存取硬碟檔案系統中的文件,就必須先把文件安裝到自己規定的某個目錄下。這樣,如果將硬碟上檔案系統安裝在/mnt目錄下,則硬碟上原來的/etc/passwd檔案的路徑就是/mnt/etc/passwd。例如,使用下面的指令可在/mnt目錄中安裝/dev/hda2磁碟上的ext2fs類型的Linux檔案系統: # monut -t ext2/dev/hda2/mnt。

我們最常犯的錯誤,可能就是不小心刪除了一些比較重要的文件,而且已經不能直接恢復了。但是,急救盤組裡有對應的文件,我們就可以將這個文件從急救盤組找到並複製到硬碟上。例如,如果刪除了檔案/bin/login,此時系統將無法正常進入登入介面,我們就可以先用急救盤組啟動系統,並將硬碟檔案系統安裝到/mnt目錄下,然後再使用下述指令:

#cp -a /bin/login /mnt/bin
登入後複製

其中「-a」選項是用來告訴「cp」在拷貝檔案時保持檔案的存取權限。當然如果刪除的基本檔案不在急救盤組中,也就不能用這種方法了。但是如果以前做過該系統備份的話,那麼就可以用以前的備份來還原了。

檔案系統被破壞也是比較常見的,如果使用的是「ext2fs」類型的檔案系統,我們就可從磁碟機執行「e2fsck」指令來修復被損壞的檔案系統。對於其他類型的檔案系統,可以使用對應的“fsck”命令。檔案系統被破壞的常見原因是檔案系統的"頭部"( 也就是「超級區塊」)損壞,它包含了檔案系統的狀態、尺寸和空閒磁碟區塊等資訊。如果損壞了一個檔案系統的“頭部”,那麼系統可能會完全不識別該檔案系統,這樣也就不能安裝它了,即使採用“e2fsck”命令也不能處理這個問題。不過,「ext2fs」類型的檔案系統將「超級區塊」的內容進行了備份,並存放於驅動程式的區塊組(block group)邊界。可以用如下的命令告訴“e2fsck”使用超級塊的備份:

# e2fsck -b 8193 <partition>
登入後複製

如果不小心將系統函數庫文件破壞了,或者破壞了/lib目錄下符號鏈接,那麼將導致依賴這些庫的命令無法正常執行。最簡單的解決方法是用急救盤組重新啟動系統,在/mnt目錄中安裝硬碟檔案系統,然後修復/mnt/lib目錄下的庫。

如果超級使用者將密碼忘記,就無法進入系統,也無法管理和使用系統,用急救盤組就可以解決問題。如果可能是密碼被駭客修改了,造成了系統管理員無法正常進入系統,也就是說,Linux系統完全失去了控制,因此應盡快重新獲得系統的控制權。一般的解決方法就是格式化硬碟來重新安裝系統,但這有點小題大作了。準備好bootdisk和rootdisk兩個軟碟,從軟碟啟動,啟動到“root”碟並出現“shell”提示字元。將Linux根目錄分區「mount」至/mnt目錄,例如你的Linux在硬碟第一分區,就在命令列中輸入mount /dev/hda1 /mnt,然後進入mnt目錄,將其中的etc/passwd檔改名,輸入mv /mnt/etc/passwd /mnt/etc/passwd.bak就可以了;接著使用指令cp /etc/passwd /mnt/etc/passwd將軟碟上的/etc/passwd檔複製到硬碟中的「 etc」目錄下,這樣重新由硬碟啟動,登入時就不會詢問超級密碼;最後使用mv/etc/passwd.bak passwd指令將passwd檔改回,再執行passwd指令重新設定密碼就可以了。系統管理員應該不定期修改密碼,防止長期使用一個號碼,而被他人盜用。

在个人计算机使用Linux系统时,通常都是Linux和MS Windows 9x或MS Windows NT等并存的。由于安装了其他的操作系统,经常会导致原有的Linux系统不能正常启动。这主要是因为,这些操作系统默认为计算机中没有其他的操作系统,因而改写了硬盘的主引导记录(MBR),冲掉了Linux的LiLo系统引导程序。

如果有急救盘组,当然很简单,可以用第一张启动盘启动硬盘的Linux系统,重新运行LiLo命令,就可以将LiLo系统引导程序写回硬盘的主引导记录,重新启动机器即可。但是如果没有制作系统启动盘,没有急救盘组如何恢复硬盘上的Linux系统呢?在这种情况下,如果知道Linux系统在硬盘上的确切安装分区,且有loadlin程序,就可以重新返回Linux系统。 loadlin程序是在DOS下运行的程序,运行它可以从DOS下直接启动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,至此就可以回到以前多操作系统并存使用的状态了。

也许你不是一个系统管理员,但是随着个人计算机配置的日益提高,在自己的计算机上安装Linux系统已经不是什么新鲜的事了。假设我们的计算机上同时装有Windows和Linux两个操作系统,应该如何启动Linux呢?是否每次都需要重启计算机,通过LiLo引导?其实如果我们在DOS下,有一种简单快速启动Linux的方法,那就是Load Linux。“loadlin.exe”是在DOS下的可执行程序,它可以在纯DOS环境下迅速启动Linux,而且无需重启计算机,通常我们可以在光盘的/kernels目录下找到这个程序。如果不知这个程序被放置于安装盘的何处,可以使用“find -name loadlin*”命令来寻找。找到之后将其复制到DOS分区中,同时还需要复制一份你所使用的Linux内核文件。可以通过Windows直接从光盘复制,也可在Linux环境下使用mcopy命令将文件copy到DOS分区;接着再编写一个Linux.bat的批处理文件,文件内容如下:

c:loadlin c:vmlinuz root=/dev/hda1 ro
登入後複製

其中我们假设loadlin.exe和vmlinuz这两个内核文件都在c盘根目录,而root为Linux根设备,而且Linux处于硬盘第一分区,所以设备名为/dev/hda1,ro意为readonly。以后在DOS下要启动Linux时,运行Linux.bat就可以了。这样启动Linux快速高效,大大减少了系统自检时等待的时间。

如果我们在Xwindows状态下运行Linux时,由于硬件本身的问题或者自己操作上的不当,有时侯可能会导致系统突然失去响应,也就是我们常见到的一种死机现象,其实此时系统并没有死机。我们可以用两个常用的方法来消除这种现象:第一,用键盘上的复合键Ctrl+Alt+Backspace来关闭当前正在运行的任务;第二,首先按住键盘上的Ctrl+Alt+F2复合键,让系统切换到另一个操作台,然后登录到系统,再执行#ps -ax|grep startx命令,这将会列出你的Xserver的进程标识(PID),接着在命令行中输入如下命令就能消除Xwindows下的死机现象:#kill -9 PID_Number,最后通过Alt+F1复合键返回原来的平台。

常见的错误及解决办法还有很多,在这里只是提及了一部分,如果大家还有需要补充的或是本文中有需要纠正的地方欢迎提出,让我们一起提高。


以上是Linux系統常見問題解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!