『壹』 怎樣修復linux系統的引導文件
你是指引導程序還是內核映像?
引導程序通常都是引導配置文件錯誤導致無法困正岩引清枝導,編輯修正錯誤就可以了,不然就卸載/重裝引導程序包,寫入mbr,重新生成配置文件。
如果是內核文件錯誤,則可以重建汪御內核文件和映像,不同發行版都帶有相應工具,具體查閱下放行版網站/隨機文檔說明。
『貳』 如何在Linux下修復開機硬碟引導
開機硬碟引導
有很多不同的引導器的,也可以安裝第三方引導器
winxp是ntldr引導的,
win7是bootmgr引導的,
linux多是grub2引導的,
還有grub4dos,syslinux,……
linux能夠修復grub2的引導,
windows的引導必須使用windows修復盤,或者dos,winpe的修復工具
grub可以直接載入ntldr,bootmgr,引導winxp,win7
『叄』 如何修復Linux引導
多種方式安裝Linux系統
1. 製作安裝啟動盤
方法一、在DOS/Windows下製做
G:\dosutils> rawrite
Enter dis image source file name:bootdisk.img
Enter target diskette drive:a
Please insert a formatted diskette into drive A:and press –ENTER--:[Enter]
注:光碟\images\有以下幾個IMG文件
l bootdisk.img 安裝引導盤映像文件
l drvnet.img 網卡驅動盤
l drvblock.img 塊設備驅動盤
l pcmciadd.img PCMCIA設備驅動盤
方法二、在Linux下製做啟動盤
#dd if=boot.img of=/dev/fd0 bs=1440
2. 光碟安裝Linux系統
(1)使用1#光碟啟動計算機
(2)直接按回車鍵/linux text選擇安裝界面
(3)開始安裝向導
3. 硬碟安裝Linux系統
(1)將安裝光碟的ISO文件復制到硬碟的某個分區中
(2)利用1#光碟/安裝啟動盤啟動計算機
(3)輸入linux askmethod選擇安裝介質
(4)開始安裝向導
4. FTP/HTTP安裝Linux系統
(1)准備安裝文件,製作HTTP/FTP伺服器
(2)利用1#光碟/安裝啟動盤啟動計算機
(3)輸入linux askmethod選擇安裝介質
(4)開始安裝向導
二.啟動linux系統
1.Linux啟動過程分析
(1)BIOS自檢
l 硬體檢測及初始化
l 引導啟動設備
(2)引導啟動設備
l 軟盤(0磁軌第一個扇區)
l 光碟(最外圍存儲軌道)
l 硬碟(MBR)
l USB存儲設備
(3)調用Linux引導程序至內存中
l Linux的引導程序可以使用GRUB/LILO等引導軟體
l GRUB/LILO可以安裝在MBR/引導分區的引導扇區中
(4)運行Linux內核
l 內核放在/boot目錄中,Linux系統可以同時支持多版本內核
l 解壓縮內核
l 檢測硬體
l 載入root文件系統
(5)執行init進程
l 啟動新進程或關閉進程
l 選擇啟動模式
l 建立虛擬終端
(6)用戶登錄
l 輸入用戶名及口令
l 載入用戶配置文件
l 載入shell程序
2.引導盤的創建
方法一:安裝過程中創建
方法二:mkbootdisk
#mkbootdisk --device /dev/fd0 2.4.20-8
方法三:使用dd命令
# dd if=/boot/vmlinuz of=/dev/fd0
3.GRUB
(1)安裝GRUB
l 安裝軟體包
#rpm –ivh grub-0.934.i386.rpm
l 使用安裝命令安裝GRUB到MBR
#grub
grub>root (hdx,y)
grub>setup (hdx[,y])
(2)GRUB的配置
#vi /boot/grub/grub.conf
grub.conf中常用的配置命令有:
default=菜單項序號/saved
設置啟動菜單的默認啟動項
hiddenmenu
隱藏菜單界面
splashimage =圖像文件全路徑名
指定某文件作為啟動菜單的背景圖像
timeout=延遲秒數
設置啟動菜單的啟延時
title 菜單項名稱
開始一個菜單項的配置,設置菜單項的名稱
root (hdx,y)
設置GRUB的根設備為linux內核所在的分區
kernel 內核文件名稱
指定內核文件的名稱及載入內核所需的參數
initrd initrd文件名
指定鏡像文件的位置
map (hdx[,y]) (hdx[,y])
建立虛擬磁碟
rootnoverify (hdx,y)
指定windows啟動引導器的位置
makeactive
標識指定分區為活動分區
chainloader +n/文件名稱
調用指定windows啟動文件
password 口令/--md5 口令密文
設置GRUB啟動菜單和菜單項口令
lock
利用password設置的全局口令鎖定菜單項
savedefault
保存當前啟動菜單項為默認啟動
文件實例:
# grub-md5-crypt(產生口令的MD5密文)
# vi /etc/grub.conf
default=0
timeout=50
splashimage=(hd0,0)/grub/splash.xpm.gz
password --md5 #!dfdasdf34123!#@$!#@
title RedHat Linux 9.0
root (hd0,2)
kernel /Vmlinuz-2.4.20-8 ro root=/LABEL=/
initrd /initrd-2.4.20-8.img
password linux
tile windows 2000
rootnoverify (hd0,0)
chainloader +1
lock
(3)GRUB的FAQ
l 編輯模式的使用
用於臨時修改菜單的選項,在菜單界面中按E鍵進入
l 命令行模式的使用
利用命令行命令設置GRUB,在菜單界面中按C鍵進入
grub命令行中常用的命令有:
grub>root (hdx,y) //設置根設備所對應的分區
grub>kernel 內核文件 //設置內核文件的名稱
grub>initrd 鏡像文件名 //設置鏡像文件名
grub>boot //啟動指定操作系統
grub>rootnoveify (hdx,y) //設置根設備所對應的分區,但不檢查載入點
grub>chainloader 文件名 //載入指定的文件
grub>help //獲取幫助
grub>reboot //重啟系統
grub>md5-crypt //生成口令的MD5密文
grub>setup (hdx[,y]) //安裝GURB到MBR/指定分區的引導扇區中
grub>hide 分區 //隱藏分區
grub>cat 文件名 //顯示文件內容
grub>find 文件名 //查找文件
l 如果MBR中的GRUB引導程序被其它程序覆蓋,應該如該恢復
放入第一張安裝啟動盤,開始啟動計算機:boot:linux rescue(啟動linux的修復模式,載入硬碟上的LINUX系統到/mnt/sysimage)
#grub
grub>root (hdx,y)
grub>root (hdx)
l 恢復GRUB的配置文件
由於grub.conf設置的問題,可以採用以下方法進行恢復:
放入第一張安裝啟動盤,開始啟動計算機:boot:linux rescue(啟動linux的修復模式)
#vi /mnt/sysimage/boot/grub/grub.conf
l 如何利用GRUB進入單用戶模式,找回丟失的root用戶口令
在GRUB菜單界面中按e編輯linux菜單項,給內核添加參數single
l 如何卸載GRUB
#rpm -e grub
C:\>fisk/mbr
l 如何製作GRUB啟動盤
#grub-install /dev/fd0
3.init 進程
(1)init進程的作用
init進程是系統啟動第一個進程,它負責載入其它進程、管理系統的其它進程。
(2)init的配置-----inittab文件
/etc/inittab文件用於設置init進程在執行時載入哪些程序,inittab文件由若干個記錄構成,每條記錄格式如下:
ID:RUNLEVEL:ACTION:COMMAND
以下為默認inittab文件內容:
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 「power failure;power shutting down」
pr:12345:powerokwait:/sbin/shutdown –c 「power restored;shutdown cancelled」
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
說明:
(3) 修改/etc/inittab文件,可以設置默認啟動模式、各運行級別所載入的程序、CTRLALTDEL的動作、開設虛擬用戶終端
(4)/etc/rc.d 的目錄內容
1)/etc/rc.d/init.d目錄
l 保存所有運行等級需要的所有腳本
l 啟動、停止、重啟某些服務
2)/etc/rc.d/rc
l 系統改變運行等級,通過此腳本檢查/etc/rc.d/rcX.d目錄和文件可存在,以及是否正在運行等,以及運行/etc/rc.d/rcX.d中所有S開頭的腳本
3)/etc/rc.d/rcX.d目錄
l 存放每一運行等級默認啟動項,該目錄中的文件鏈接到:/etc/rc.d/init.d
l 文件名格式為K{Two-digit number} {script name}/S{Two-digit number} {script name},K:以stop參數運行,S:以start參數運行;Two:數字代表執行順序
4)/etc/rc.d/rc.local
l 該腳本在2,3,5運行等級結束時執行
5)/etc/rc.d/rc.sysinit
l 系統初始腳本,用於設置系統的時鍾、載入鍵盤、載入系統字體、載入其他文件系統、激活交換分區、生成日誌文件
三.linux系統修復模式
1. 系統修復模式的簡介
使用安裝光碟啟動修復模式,用於檢測和載入硬碟上已安裝的linux系統到/mnt/sysimage目錄中。該模式主要用於修復損壞的系統,當系統出現故障時可使用修復模式.
2.啟動修復模式
使用1#安裝啟動系統
在boot:提示符下輸入linux rescue啟動修復模式,按照啟動向導啟動系統
linux修復模式的應用
修復系統
找加丟失的用戶口令
修復系統配置
『肆』 linux開機grub>命令修復方法
出現grub rescue模式一般是硬碟分區出現變動、導致舊的grub找不到啟動文件而出現的。
出現錯誤具體原因未知,但開機不能引導肯定是grub配置文件出錯,/boot/grub2/grub.cfg
解決方法:
2,grub> 模式下:輸入:ls 查看所有磁碟分區:hd。x,x......用:ls hd(x,x)/grub 找grub所在的分區,有正確執行結果的便是找到linux所在分區後執行setprefix=hdx,x/grubsetroot=hx,x、insmod normal再使用normal命令進入系統後,再修復grub 配置。or:查找boot分區:find /boot/grub/menu.lst 或者 find /boot/grub2/grub.cfg
輸入以下命令:cat hd0,7/boot/grub/grub.conf 關於內核信息的,看一下就明白了。按照下面命令依次輸入指定/boot分區使用命令:grub>root hd0,0grub>kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet 回車grub>initrd /boot/initrd-2.6.18-53.el5.img 回車boot 回車啟動
『伍』 U盤修復 Kali Linux grub引導
本文已重新排版並上傳到個人博客 U盤修復 Kali Linux grub引導
總是愛折騰多系統,出了問題是難免的。
U盤啟動到live模式,打開終端。
fdisk -l
查看輸出結果,晌答然後根據文件類型和分區大小來判定 Linux 系統安裝在哪塊硬碟和安裝的分區。
掛載安裝分激空區 /dev/sda3,sda3為Kali Linux所在分區
mount /dev/sda3 /mnt
掛載其他所需的目錄(使用 –bind)
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
Chroot 到硬碟上的 Linux 系統
chroot /mnt
安裝&更新 Grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
退出 chroot 環境
exit
卸載分明謹瞎區
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
reboot重啟,引導修復完成
『陸』 怎樣修復linux無法啟動故障
1、在系統啟動過程中,會出現圖1所示畫面,按任意鍵,進入GRUB菜單選項。
2、按「e」鍵編輯GRUB引導菜單選項,圖2顯示為按「e」鍵後的GRUB屏幕。
GRUB引導菜單選項
通過箭頭鍵下移到kernel行,並按「e」鍵,得到圖3中顯示的編輯界面:
kernel行編輯界面
在尾行游標處添加single或者s,按回車鍵返回前一個屏幕,按「b」鍵進行引導,則系統自動進入單用戶模式,如果要改變root密碼,則執行命令:
sh-3.1# passwd root
更改成功後,執行命令exit退出重啟即可。
『柒』 Linux 修復grub開機引導(ubuntu)
問題 : 有時候Linux系統/boot分區損壞時,啟動Linux系統時直接進入字元介面的grub引導,並沒有進入到系統或者開機顯示 error:unknow filesystem提示
解決辦法:
Linux開機自動會進入到grub引導介面(如果沒進入到grub引導介面可以按C鍵進入)
第一步:找到系統對應的扇區及/boot/grub目錄
注意 :假設是硬碟介面類型sd,hd0對應是sda hd1對應是sdb
(hd0)≠(hd0)
(hd1,gpt2)=(hd1,2)
ls (hd1,gpt2) 查看(hd1,gpt2)扇區信息(盤符、空間等)
ls (hd1,gpt2)/ 查看(hd1,gpt2)扇區下的內容(文件、文本等)
如果列印每個扇區目錄信息,會出現兩種情況:
1、ls (hd1,gpt2)顯示Unknow filesystem提示說明這個扇區不是我們要找系統分區
2、ls (hd1,gpt2)顯示/boot /proc等系統目錄信息說明這個扇區是我們要找的系統分區
如果找到對應扇區的系統分區,可能會遇到兩種情況:
1、 A目錄下有/boot/grub
2、A目錄下有/boot,B目錄下有/grub (此時在第二步載入系統內核要使用 set prefix=(hd1,gpt2)/grub 命令)
grub > ls
(hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)
第二步:載入系統內核
grub > set root=hd1,2 #此處不需要括弧,加括弧也可以,hd0和hd1是有區別
grub > set prefix=(hd1,2)/boot/grub
grub > linux /vmlinuz root=/dev/sdb2 #vmlinuz必須使用TAB補全(可能有後綴),注意sda或sdb需要看自己的實際情況
grub > initrd /initrd.img-xxx #TAB補全,多內核情況下版本需統一
grub > boot
提示 :如果在boot之後不幸進入BusyBox,說明參數設置有問題,可以仔細查看出錯的日誌,再重啟系統後重復執行第二步操作(重啟系統後上面設置的參數會被清空)。
第三步:修改grub引導
如果成功進入系統,記得要馬上信息grub引導,不然重啟系統後問題還是存在
sudo update-grub2 #grub2命令(高版本使用grub2)
$ sudo grub-install /dev/sdb
第四步:重啟系統
重啟系統後即可正常進入系統
reboot
『捌』 如何修復Linux無法正常啟動故障
沒有操作系統能夠確保100%可靠。終有一天,即使Linux也會無法啟動。本文為你提供一些在Linux工作站無法正常啟動時所採用的策略。
不管你多麼喜愛你的Linux機器,有時候你都必須恢復你的系統。是的,即使一台Linux機器也可能遭受系統崩潰:不管是由於視頻配置錯誤、內核更新出錯、或是由於init腳本配置錯誤,這種情況都是必然的。我看到過大量這種情況——即使在我自己的機器上,大多數是由於X配置出錯——這確實令人沮喪。
在我看來,重新安裝系統並不是最佳救援計劃。有時候,最佳救援計劃甚至不需要從救援磁碟啟動。本文將為如何避免系統崩潰提供一些提示和訣竅,幫助你建立恢復崩潰的Linux機器所需的工具。
使用正確的運行級別
安裝好一個新的Linux系統後,我立即採取措施以確保災難不會輕易發生。其中一個措施就是編輯系統的運行級別。運行級別告訴系統離採用引導過程還有多遠。運行級別分為六個等級:
0級:停止(不設置initdefault)
1級:單用戶模式
2級:多用戶模式,沒有NFS(與3級相同,如果你沒有建立網路)
3級:完整的多用戶模式
4級:不使用
5級:X11
6級:重新啟動(不設置initdefault)
新型的Linux系統幾乎總是默認使用運行級5(X11),表示系統在引導完成後,將會在圖形登錄界面處停止。在某物(或某人)使用X配置前,系統一切正常。
然後你必須找到一個登錄方法。你可以按下[Ctrl][Alt][F7]進入一個基於文本的虛擬窗口,但為什麼要這么麻煩呢?相反,我總是在/etc/inittab文件中將運行級更改為3級。你更改的代碼為:
id:5:initdefault:
它被更改為:
id:3:initdefault:
當X出錯時,這是一個非常簡單的系統恢復方法。
多內核
另一個明顯的磁碟恢復方法是總是安裝一個正常運轉的內核。我通常在一個通過yum更新的內核上工作。有時候,內核會出現一些錯誤,使得我的一台或幾台機器無法啟動。
為避免這種情況,我一直保證在機器上使用至少一個正常運行的內核。要解決這個問題,首先應在/etc/yum.conf文件中添加plugins=1,然後應用這段腳本(由RedHat的Jeremy Katz編寫),並將它命名為n-installonly.py,保存在/usr/lib/yum-plugins文件中。你可以通過修改tookeep變數(默認為2)的方法更新系統所使用內核的數量。
知道系統上有一個正常運轉的內核,你就可以進行安全升級。如果新內核出錯,只需啟動舊內核就可以解決新內核上的問題(不管是刪除、重新編譯還是升級)。
救援模式
如果你在使用Red Hat和LILO引導載入器,你就可以插入產品光碟1,並在引導提示符下輸入Linuxrescue進入救援模式。啟動機器後,你就會看到bash#提示符。在這個模式下,你可以使用許多工具。
如你所見,有檢查硬碟完整性、修復硬碟、檢查內核模塊、裝配設備、以及創建文件系統等的工具。此時是進行救援嘗試的最佳時機(如果你使用的是一個Red Hat,或基於Red Hat的系統)。
另一個救援方法是進入單用戶模式,這里你的計算機引導進入運行級1。系統裝配你的本地文件系統,但不激活網路。你得到一個可用的系統維護外殼。要進入單用戶模式,在LILO提示符下輸入:
Linuxsingle
或
Linuxemergency
建立一張救援CD
如果你正在使用LILO引入載入器,可以使用一個叫做mkrescue的強大工具。這個工具一般用於創建引導軟盤,但也可用來創建ISO。其用法如下。
如果你使用Mandriva:
mkrescue --iso --initrd /boot/initrd-KERNEL-NUMBER.img --
kernel /boot/vmlinuz-KERNEL-NUMBER
注意:這里的KERNEL-NUMBER指內核的版本號。
如果你不能確定內核的版本,可以用以下命令找到intrd和vmlinuz的號碼:
uname –r
運行這個命令後,你就會在運行mkrescue命令的目錄中發現一個rescue.iso文件。現在你可以用以下命令建立鏡像:
首先,檢查建立CD的設備號碼:
cdrecord –scanbus
然後用以下命令建立鏡像:
cdrecord dev=0,0,0 rescue.iso
注意:這里的dev=0,0,0是用上面的scanbus命令查出的號碼。
如果你使用Slackware,使用這些步驟建立一張引導CD:
mkrescue –iso
注意:Slackware自動獲知在ISO中放入何種內核。
然後,你可以用建立Mandriva鏡像同樣的方法建立鏡像。
SystemRescueCD
SystemRescueCD是一個保存在可引導光碟上的Linux系統,用於在系統崩潰後修復系統和數據。它還可在計算機上方便地執行管理任務,如建立和編輯硬碟分區。它由許多系統實用工具(parted、partimage、fstools)和基本實用工具(編輯器、midnight commander文件管理器和網路工具)構成。
它使用起來非常簡單。只需要從光碟啟動你就可以執行一切操作,就像從硬碟啟動一樣。系統內核支持大多數重要的文件系統(ext2/ext3, reiserfs, reiser4, xfs, jfs, vfat, ntfs, iso9660)和網路(samba和nfs)。
SystemRescueCD可能是市面上最優秀的救援系統。你不僅可以從光碟上使用這種救援方法,還可以將這個救援系統放在U盤上使用。
要在一個U盤上建立一個SystemRescueCD,你需要大於256MB的磁碟空間。從Sourceforge下載iso鏡像並把它燒制到光碟上。現在你必須在U盤上創建文件系統。使用dmesg命令找出U盤名稱,然後用以下代碼擦寫U盤:
dd if=/dev/zero of=/dev/sda
這里的/dev/sda是U盤的名稱。
現在在U盤上安裝主引導記錄:
install-mbr /dev/sda
或
install-mbr --force /dev/sda(如果命令出錯)
現在建立分散分區:
parted /dev/sda
(parted) mkpartfs primary fat32 0 100% // use help or help mkpartfs command to see help
(parted) print // check if the write was ok
(parted) quit
現在已經建立好文件系統,然後將用SystemRescueCD鏡像燒制的CD中的文件復制到U盤中。保證你復制的文件等級和CD上的相同。
現在,使得U盤可以用sysLinux命令啟動:
sysLinux/dev/sda1
這里的/dev/sda1是磁碟的名稱。
現在你已經建立了一個你可以整天隨身攜帶的救援U盤。由於你使用Linux,你並不需要經常用到它。
最後總結
Linux是一個非常穩定的環境,但由於該系統中還有許多其它系統,它們可能會出現錯誤。雖然我們很容易會由於使用Linux而洋洋自得(因為它存在諸多優點),但了解如何拯救一個系統崩潰的機器也不失為一種明智的做法。
當然,不是世界上所有的救援系統都能100%地恢復你的系統,因此你可能希望考慮為你的Linux伺服器和桌面系統實施一個災難恢復計劃。
『玖』 linux系統起不來了,怎麼修復
在C盤的根目錄下,選擇「工具」--「文件夾選項」--「查看」--去掉「隱藏受保護的操作系統文件」選取「顯示所有文件和文件夾」,然後你就可以看到boot.ini了
另外,lz看看下面的內容:
修改c盤根目錄下的boot.ini文件(系統文件,要調整文件查看選項才可以看到,方法為:我的電腦/選擇頂部菜單欄的工具/文件夾選項/查看/隱藏受保護的操作系統文件),在最後面添加一行:c:\grldr = "Click this item to install linux."
修改boot文件夾裡面的menu.lst(是字元L,而不是數字1)文件。在最後面添加下面的指令,保存退出,並重新啟動系統。
title Click this item to install linux.
root (磁碟號,分區號)----即為vmlinuz和initrd.img所在分區
kernel /vmlinuz
initrd /initrd.img
boot
補充:若無法正確引導,則可以不用修改menu.lst文件,而改用手動設定方式來啟動,步驟為:
當選擇「Click this item to install linux.」,進入如下界面(如圖一)。鍵入「p」並輸入密碼(默認為123456),取得特權控制功能,接著鍵入「c」,進入grub引導模式進行手工操作
『拾』 怎麼在雙系統下修復linux開機引導文件
1、滑鼠右擊「計算機」選擇屬性,然後選擇點擊左側的「高級系統設置」項;
2、在彈出來的系統亮嘩屬性界面中,切換到「高級」選項卡下,然後點擊啟動和扮氏故障恢復下的「設置」按鈕;
3、接著在彈出敬缺行來的啟動和故障恢復窗口中,將「系統啟動」下的默認操作系統下拉按鈕選擇WIN7系統為默認操作系統即可。