天天看點

系統及其核心修複

一、boot下各配置檔案說明

圖示:

<a href="http://s4.51cto.com/wyfs02/M02/87/30/wKiom1fWvB6hV1ucAAAeBCPGa6Q752.png" target="_blank"></a>

說明:

1)config-VERSION-release #配置檔案

2)vmlinuz-VERSION-release #虛拟核心核心檔案

3)initramfs-VERSION-release #輔助僞檔案系統  

4)grub #主引導配置目錄

示範:

删除initramfs後修複initramfs檔案

1)在系統重新開機時輸入Esc進人救援模式

2)切根,使用mkinitrd指令生成initramfs-version-release.img配置檔案

chroot /mnt/sysimage

/boot/initramfs-`uname -r`.img `uname -r`

exit  reboot  

<a href="http://s5.51cto.com/wyfs02/M00/87/30/wKiom1fWvpiiFEV0AAAnM8Auceo054.png" target="_blank"></a>

二、/boot/grub/grub.conf配置檔案詳解及其啟動菜單、標明啟動核心加密 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<code># grub.conf generated by anaconda</code>

<code>#</code>

<code># Note that you do not have to rerun grub after making changes to this file</code>

<code># NOTICE:  You have a /boot partition.  This means that</code>

<code>#          all kernel and initrd paths are relative to /boot/, eg.</code>

<code>#          root (hd0,0)</code>

<code>#          kernel /vmlinuz-version ro root=/dev/sda2</code>

<code>#          initrd /initrd-[generic-]version.img</code>

<code>#boot=/dev/sda</code>

<code>default=0</code>

<code>timeout=5</code>

<code>splashimage=(hd0,0)</code><code>/grub/splash</code><code>.xpm.gz</code>

<code>hiddenmenu</code>

<code>title CentOS 6 (2.6.32-642.el6.x86_64)</code>

<code>root (hd0,0)</code>

<code>kernel </code><code>/vmlinuz-2</code><code>.6.32-642.el6.x86_64 ro root=UUID=240533cf-b37f-4460-974f-702bab867da5 nomodeset rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet</code>

<code>initrd </code><code>/initramfs-2</code><code>.6.32-642.el6.x86_64.img</code>

default=0 #預設啟動的菜單項,預設編号為0 

timeout=3 #啟動系統後菜單項等待選擇逾時時間  

splashimage=(hd0,0)/grub/splash.xpm.gz #菜單圖檔  

hiddenmenue #影藏菜單 

password --md5 string  #啟動菜單選項時的密碼        

title #菜單标題   

root (hd0,0) #grub查找stage2及其kernel核心檔案所在裝置分區,為grub的根   

kernel/vmlinuz-version-release ro root=/dev/sda2 #啟動的核心 

initrd /initramfs-version-relase.img #輔助的僞檔案系統ramfs檔案為其加速 

password --md5 string #啟動標明核心時需輸入的密碼

<a href="http://s4.51cto.com/wyfs02/M01/87/30/wKiom1fWw3HityDWAABqiLo5HMo092.png" target="_blank"></a>

這時啟動菜單選項及其單使用者模式都需輸入密碼:

<a href="http://s2.51cto.com/wyfs02/M02/87/2E/wKioL1fWxVbjnMeyAAAWyJU3awE875.png" target="_blank"></a>

實驗一:破壞stage1和stage1_5修複方法及其分析說明:

stage1破壞

dd if=/dev/zero of=/dev/sda bs=1 count=446 #前446位元組為boot loader 

stage1.5破壞   

dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1      

修複方法:

grub-install /dev/sda 

實驗二:删除boot目錄及其修複

1)删除/boot目錄然後修複

rm -rf /boot      

2)CD光牒啟動,進入rescue模式,安裝核心kernel包   

rpm -ivh /mnt/sysimage/mnt/cdrom/Packages/kernel-version-release.rpm --root=/mnt/sysimage --force|--replacepkgs   

3)安裝grub及手動恢複/boot/grub/grub.conf配置檔案  

chroot /mnt/sysimage  

grub-install /dev/sda   

vim /boot/grub/grub.conf  

default=0 

timeout=3 

title=alrenlinux 

root (hd0,0)

kernel /vmlinuz-version-release root=/dev/sda2  

initrd /initrd-version-release  

<a href="http://s3.51cto.com/wyfs02/M02/87/31/wKioL1fXdU-Tm4TIAABQUl3e4ls828.png" target="_blank"></a>

實驗三:删除/boot 和/etc/fstab,恢複之

1)删除boot目錄和/etc/fstab兩檔案

rm -rf /boot /etc/fstab

2)CD光牒啟動和上面的步驟相似,進入rescue救援模式

3)檢查根、

blkid ;fdisk -l    

4)把根挂載到一指定目錄  

mkdir /mnt/sda2        mount /dev/sda2   /mnt/sda2   

5)把boot目錄及其根挂載到/etc/fstab中讓其開機自動挂載 

vi  /mnt/sda2/etc/fstab 

/dev/sda1    /boot    ext4    defaults 1 1  

/dev/sda2    /        ext4    defaults 1 2

6)重新開機機器 

reboot    

之後的步驟和上訴修複删除boot目錄完全一樣簡單叙述如下:

1)CD光牒啟動,進入rescue模式,挂載CD光牒,安裝kernel  

mkdir /mnt/cdrom     mount /dev/cdrom    /mnt/cdrom  

rpm -ivh /mnt/cdrom/Packages/kernel-version-release.rpm --replacepkgs |--force     

2)修複grub及grub幾個階段配置檔案,如發現不能修複,可以使用在grub中輸入setup進行修複  

grub&gt;root (hd0,0) 

grub&gt;setup(hd0) 

3)編輯grub.conf配置檔案   

title alrenlinux  

root (hd0,0) 

kernel /vmlinuz-version-release  root=/dev/sda2    

initrd /initramfs-version-release 

<a href="http://s5.51cto.com/wyfs02/M02/87/34/wKioL1fXttqwCxEyAABLqtNnWRQ291.png" target="_blank"></a>

實驗四:删除boot目錄下的vmlinuz-version-release核心檔案及其initramfs-version-release.img,實作修複。  

1)進入救援模式rescue 

2)挂載CD光牒,把CD光牒裡面vmlinuz拷貝到/boot目錄下 

3)生成initramfs檔案,使用mkinitrd指令生成

mkinitrd /boot/initramfs-`uname -r`.img `uname -r`   

4)配置/boot/grub/grub.conf配置檔案,把vmlinuz版本号去除    

5)重新開機   

本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1852335,如需轉載請自行聯系原作者

繼續閱讀