一、單用戶模式;
單用戶模式要求我們輸入root用戶的密碼,否則您無法登錄單用戶模式;如果您丟失了root用戶的密碼,并不能用單用戶模式來重設(shè)您的root密碼;
另外單用戶模式還有一個前提是您的grub 或者lilo 是能正常工作的;并且您知道您的系統(tǒng)問題發(fā)生在哪里,當(dāng)以單用戶模式登錄時,您能打開文件系統(tǒng)的寫操作,然后進(jìn)行您想要進(jìn)行的系統(tǒng)修復(fù);
可能有的弟兄會說“我真的不知道系統(tǒng)哪塊出了問題”,呵,如果真的不知道,那我也無能為力了,因?yàn)楸疚臋n主要講述登錄模式,并不是講述如何修復(fù)系統(tǒng)的;
1、以grub 系統(tǒng)引導(dǎo)管理器,單用戶登錄方法;
在grub 啟動后,移動鍵盤到Linux的啟動項(xiàng);按e鍵;然后再移動鍵盤到類似下面的一行,也就是kernel的那行:
kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet
把光標(biāo)移動這行后,再按一下e鍵,進(jìn)入編輯這行;在行尾條一個空格 ,然后輸入 linux single,也就是類似如下的:
kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet linux single
結(jié)束編輯,按回車返回;
接著我們要啟動系統(tǒng),按一下b鍵啟動;
當(dāng)進(jìn)入單用戶模式運(yùn)行后,系統(tǒng)提示我們輸入root密碼;輸入正確后會進(jìn)入系統(tǒng);您可以用df -h 來查看文件系統(tǒng)掛載位置等,也可以用fdisk -l 來查看分區(qū)等;但對文件系統(tǒng)的寫操作,可能還要看下面的;
單用戶進(jìn)入系統(tǒng)后,可能系統(tǒng)是只讀的;要運(yùn)行下面的命令;
#mount -o remount,rw /
2、lilo 引導(dǎo)管理器單用戶模式;
在boot:處輸入
linux single
當(dāng)進(jìn)入單用戶模式運(yùn)行后,系統(tǒng)提示我們輸入root密碼;輸入正確后會進(jìn)入系統(tǒng);您可以用df -h 來查看文件系統(tǒng)掛載位置等,也可以用fdisk -l 來查看分區(qū)等;但對文件系統(tǒng)的寫操作,可能還要看下面的;
單用戶進(jìn)入系統(tǒng)后,可能系統(tǒng)是只讀的;要運(yùn)行下面的命令;
#mount -o remount,rw /
二、linux rescue 修復(fù)模式;
Linux的修復(fù)模式就是 linux rescue;修復(fù)模式并不需要系統(tǒng)密碼,當(dāng)進(jìn)入修復(fù)模式后,系統(tǒng)會提示我們要掛載哪個分區(qū)上的文件系統(tǒng),我們根據(jù)自己的系統(tǒng)情況來選擇就就是了。登錄完成后,系統(tǒng)也會提示所在分區(qū)的文件系統(tǒng)會被掛載到哪個目錄;如果您不知道掛載在哪里,請通過 df -h 來查看;
修復(fù)模式需要安裝盤的第一張或獨(dú)立的修復(fù)盤;比如 Fedora 就有專門的修復(fù)盤;其實(shí)修復(fù)盤在一定意義上來說類似livecd,是不需要安裝到硬盤也能運(yùn)行系統(tǒng);然后通過mount 來掛載文件系統(tǒng);其實(shí)當(dāng)我們執(zhí)行l(wèi)inux rescue 時,象Fedora 這類的系統(tǒng),會有一些提示,比如他提示他要mount 哪個分區(qū),我們選擇一下就行了;
執(zhí)行修復(fù)模式時,需要以下幾個步驟;
其一:在BIOS中,設(shè)置首個啟動驅(qū)動器為CDROM;
其二;找出系統(tǒng)安裝盤的第一張;放入CDROM ;當(dāng)光盤運(yùn)行時,會提示安裝的界面;
在boot:后面輸入 linux rescue ,然后按回車;
boot:linux rescue
進(jìn)入修復(fù)模式,我們能做些什么呢??什么都可以做,比如掛載usb盤進(jìn)行數(shù)據(jù)備份;修改系統(tǒng)中的配置文件... ... 重新設(shè)置root密碼、掛載文件系統(tǒng) ... ... 只要能想到,大多都可以完成;
三、跨越控制臺登錄;
真正的跨越控制臺登錄是不需要輸入root密碼的,如果您把root密碼丟失,就要想到跨越控制臺登錄;我們前面所說的linux rescue 從本質(zhì)上來說,就是跨越控制臺登錄,因?yàn)闊o需要密碼驗(yàn)證就能登錄系統(tǒng);
跨越控制臺登錄主要包括:借grub和lilo 跨越控制臺登錄; linux rescue 模式;第三方livecd 系統(tǒng)和第三方Linux系統(tǒng);
1、通過grub和lilo 引導(dǎo),跨越控制臺登錄;
1)如果您用的是grub進(jìn)行系統(tǒng)引導(dǎo);
在grub 啟動后,移動鍵盤到Linux的啟動項(xiàng);按e鍵;然后再移動鍵盤到類似下面的一行,也就是kernel的那行:
kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet
把光標(biāo)移動這行后,再按一下e鍵,進(jìn)入編輯這行;在行尾條一個空格 ,然后輸入 linux single,也就是類似如下的:
kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet linux init=/bin/bash
結(jié)束編輯,按回車返回;
接著我們要啟動系統(tǒng),按一下b鍵啟動;
可能系統(tǒng)是只讀的;要運(yùn)行下面的命令;
#mount -o remount,rw /
然后我們可以通過 df -h 來查看文件系統(tǒng)的加載情況;既然都把文件系統(tǒng)掛載了,有什么活干不了的呢?重設(shè)root密碼,備份文件... ...
比如重設(shè)root密碼;
#passwd
2)如果您用lilo 進(jìn)行系統(tǒng)引導(dǎo);
在boot:處輸入
boot:linux init=/bin/bash
當(dāng)進(jìn)入系統(tǒng)后,您可以用df -h 來查看文件系統(tǒng)掛載位置等,也可以用fdisk -l 來查看分區(qū)等;但對文件系統(tǒng)的寫操作,可能還要看下面的;
可能系統(tǒng)是只讀的;要運(yùn)行下面的命令;
#mount -o remount,rw /
2、linux rescue ;
請參考前面第二點(diǎn)所說的修復(fù)模式;
3、借linux的livecd光盤 或第三方linux系統(tǒng);
linux的livecd版本是無需安裝的linux 系統(tǒng),在光盤上就可以運(yùn)行的linux 系統(tǒng); livecd 大多是用來修復(fù)之用,livecd 集成了常用的系統(tǒng)操作工具;
第三方Linux系統(tǒng)是指你的機(jī)器上安裝一個以上的Linux系統(tǒng),如果其中一個發(fā)生問題,我們就可以用另一個來修復(fù);
livecd 和第三方linux系統(tǒng)來修復(fù)已經(jīng)被破壞的Linux ,常用的工具有mount 和chroot等等 ;如果您只是簡單的更改存在問題的系統(tǒng)文件,用mount 就足夠了。chroot 工具可以改變/,進(jìn)而進(jìn)入另一個系統(tǒng),這個工具的確有用。
我們還是舉個例子來說明如何通過用mount和chroot;
至于機(jī)器中第三方Linux和Livecd的使用比較簡單,這里就不多說了;
livecd就是在光盤上運(yùn)行的linux ,您可以找一個livecd的發(fā)行版本刻錄一下就能用了,使用簡單方便;
下載地址:
http://www.frozentech.com/content/livecd.php
常用的有 SLAX,Knoppix,Damn Small Linux,Ubuntu ... ...
大體都差不多,下載一個小的備用也行,就看您怎么用了;
通過livecd linux 或其它linux 來修復(fù)已經(jīng)破壞的Linux步驟如下:
1)mount 掛載文件系統(tǒng);
注:執(zhí)行mount 及chroot時,要以root權(quán)限運(yùn)行,以下同;
比如存在問題的系統(tǒng)位于 /dev/hda5 ,如果您不知道哪個分區(qū)是linux的,您可以通過fdsik -l 來查看;
[root@localhost ~]# fdisk -l 注:查看分區(qū)情況;
[root@localhost ~]# pwd 注:確定當(dāng)前工作目錄;
/root 注:當(dāng)前工作目錄為/root
[root@localhost ~]# mkdir systmp 注:在當(dāng)前工作目錄下創(chuàng)建一個臨時目錄;
[root@localhost ~]# mount /dev/hda5 systmp/ 注:掛載hda5到tmpsys目錄中;
[root@localhost ~]# df -h 注:查看是否已經(jīng)掛載;
Filesystem 容量 已用 可用 已用% 掛載點(diǎn)
/dev/hda8 11G 9.8G 581M 95% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/hda5 7.9G 5.9G 2.0G 76% /root/systmp 注:看好了,是掛載到了/root/systmp目錄中;
既然把/dev/hda5分區(qū)的文件系統(tǒng)已經(jīng)掛載了,我們就能對已經(jīng)掛載的文件系統(tǒng)進(jìn)行寫操作;如果是簡單的備份和文件修改,是完全能行的;
注意:在寫操作的過程中,要倍加不心,在操作某個文件的時候,要先備份;當(dāng)出現(xiàn)不能mount的情況,可能是您的當(dāng)前所用的內(nèi)核不支持相應(yīng)的文件系統(tǒng);如果系統(tǒng)要求指定文件系統(tǒng)的時候,請看如下的例子;
mount -t 文件系統(tǒng)類型 磁盤分區(qū) 掛載目的目錄
對于linux的文件系統(tǒng)類型主要有:reiserfs,ext3,ext2;具體用什么文件系統(tǒng)類型,你最明白;如果您還是不知道,就一個一個的嘗試;比如我的hda5是reiserfs的,可以用下面的命令來掛載;
[root@localhost ~]# mount -t reiserfs /dev/hda5 systmp/
2)chroot 到已經(jīng)掛載的文件系統(tǒng);
chroot這個工具很有用,很多Linux都支持chroot切換到另一個文件系統(tǒng)中,然后進(jìn)行一系列系統(tǒng)包的安裝和系統(tǒng)配置;這并不是說任何文件系統(tǒng)都能chroot切入 ,首先這個文件系統(tǒng)中得具備系統(tǒng)運(yùn)行的一定的工具和環(huán)境,比如/bin和/sbin 目錄是擁有等....
用中文表達(dá)不清楚,還是舉例來說明;
比如我的機(jī)器中有兩個Linux系統(tǒng),一個運(yùn)行正常,另一個有點(diǎn)問題(比如是root密碼忘記了),我想通過正常的系統(tǒng)來修復(fù)另一個;首先我們進(jìn)行的是mount ,也就是前面所說的,然后下一步就是chroot ;通過chroot 切換到要修復(fù)的文件系統(tǒng)中;
比如存在問題的系統(tǒng)位于 /dev/hda5
[root@localhost ~]# fdisk -l
[root@localhost ~]# pwd
/root
[root@localhost ~]# mkdir systmp
[root@localhost ~]# mount /dev/hda5 systmp/
[root@localhost ~]# df -h
Filesystem 容量 已用 可用 已用% 掛載點(diǎn)
/dev/hda8 11G 9.8G 581M 95% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/hda5 7.9G 5.9G 2.0G 76% /root/systmp
[root@localhost ~]# chroot systmp 注:chroot到hda5分區(qū)的系統(tǒng)中;
bash-3.00# 注:已經(jīng)登錄;
bash-3.00# df -lh 注:查看文件系統(tǒng)掛載情況;
Filesystem 容量 已用 可用 已用% 掛載點(diǎn)
/dev/hda5 7.9G 5.9G 2.0G 76% /
proc 7.9G 5.9G 2.0G 76% /proc
sysfs 7.9G 5.9G 2.0G 76% /sys
上面我們就通過chroot 命令完成了通過一個系統(tǒng)到另一個系統(tǒng)的跨控制臺登錄;Livecd 如果要完成此任務(wù),也是通過這樣過程完成的。
我們既然已經(jīng)登錄到有問題的系統(tǒng)了,可以進(jìn)行相應(yīng)的修復(fù)工作,比如對root密碼的恢復(fù),軟件包的安裝,相應(yīng)文件的修改... ... 我想您應(yīng)該知道怎么做,對不對???
有些發(fā)行版的安裝盤類似livecd ,比如slackware 的安裝盤的第一張,當(dāng)他啟動到讓你輸入用戶名和密碼進(jìn)行安裝時,我們不必輸入什么,或者直接輸入root ,就能進(jìn)入cdrom 虛擬環(huán)境了;這時我們就用前面所說mount加載文件系統(tǒng),然后chroot掛載的文件系統(tǒng);
四、后記; 正在寫文件系統(tǒng)的管理,可能要花幾天時間;努力之中;
五、關(guān)于本文;
看到論壇的弟兄還在大呼丟了root密碼怎么恢復(fù),雖然壇里也有不少文檔,但大多沒有形成系統(tǒng),為了解決問題而重寫此文,可能有的弟兄需要這樣的文檔;既然有“市場”,我就寫,沒有什么大不了的;有的弟兄認(rèn)為是小題大作,就當(dāng)我鍛煉身體好了;這樣的文檔誰都會寫,沒有什么難的;