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