Chinaunix首页 | 论坛 | 博客
  • 博客访问: 171107
  • 博文数量: 65
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-16 08:59
文章分类

全部博文(65)

文章存档

2011年(3)

2010年(3)

2009年(43)

2008年(16)

我的朋友

分类: LINUX

2009-08-03 14:16:38

前一個 root 密碼挽救的方法其實可以用在很多地方,唯一一個無法挽救的情況,那就是 /etc/inittab 這個檔案設定錯誤導致的無法開機!根據開機流程,我們知道 runlevel 0~6 都會讀取 /etc/inittab 設定檔, 因此你使用 single mode (runlevel 1) 當然也是要讀取 /etc/inittab 來進行開機的。那既然無法進入單人維護模式, 就表示這題無解囉?非也非也,既然預設的 init 無法執行,那我們就告訴核心不要執行 init ,改呼叫 bash 啊! 可以略過 init 嗎?可以的,同樣在開機進入 grub 後,同樣在 grub edit 的情況下這樣做
grub edit> kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet init=/bin/bash

因為我們指定了核心呼叫的第一支程式 (init) 變成 /bin/bash,因此 /sbin/init 就不會被執行。 又根據開機流程的說明,我們知道此時雖然可以利用 root 取得 bash 來工作,但此時 (1)除了根目錄外,其他的目錄都沒有被掛載; (2)根目錄被掛載成為唯讀狀態。因此我們還需要進行一些動作才行!如下所示:


 


 

鳥哥僅下達兩個指令,『 mount -o remount,rw / 』用途是將根目錄重新掛載成為可讀寫, 至於『 mount -a 』則是參考 /etc/fstab 的內容重新掛載檔案系統!此時你又可以開機進行救援的工作了! 只是救援完畢後,你得要使用『 reboot 』重新開機一次才行!

BIOS 磁碟對應的問題 (device.map)

由於目前硬碟很便宜啊,所以很多朋友就想說:『那我能不能將 Windows 安裝在 /dev/hda 而 Linux 安裝在 /dev/hdb , 然後調整 BIOS 的開機裝置順序,如此則兩套系統各有各的 loader 安裝在個別硬碟的 MBR 當中了!』。 這個想法非常好,如此一來兩者就不會互相干擾,因為每顆磁碟的 MBR 個別有不同作業系統的 loader 嘛! 問題是,grub 對磁碟的裝置代號使用的是偵測到的順序啊! 也就是說,你調整了 BIOS 磁碟開機順序後,你的 menu.lst 內的裝置代號就可能會對應到錯誤的磁碟上了!啊!真想哭!

沒關係的,我們可以透過 /boot/grub/device.map 這個檔案來寫死每個裝置對 grub 磁碟代號的對應喔! 舉例來說,鳥哥的這個檔案內容如下:

[root@www ~]# cat /boot/grub/device.map
(fd0)   /dev/fd0
(hd0)   /dev/hda

如果你不清楚如何處理的話,也可以利用 grub-install 的功能喔!例如:

[root@www ~]# grub-install --recheck /dev/hda1

這樣 device.map 就會主動的被更新了!這樣瞭解乎?

 

 

阅读(470) | 评论(0) | 转发(0) |
0

上一篇:為個別選單加上密碼

下一篇:gcc编译

给主人留下些什么吧!~~