Linux啟動和內核管理
本章內容:
centos5和centos6的啟動流程
服務管理
grub管理
自制Linux
啟動排錯
編譯安裝內核
Linux的組成:
Linux:kernel+rootfs(根文件系統)
kernel:進程管理、內存管理、網絡管理、驅動管理、文件系統、安全功能。
rootfs:程序和glibc
庫:函數集合,function,調用接頭,過程調用,函數調用。
程序:二進制執行文件。
內核設計流派:
單內核:Linux 把所有功能集成于同一個程序。
微內核:Windows 每種功能使用一個單獨的子系統實現。
Linux內核特點:
支持模塊化:.ko(內核對象)例如:文件系統、硬件驅動、網絡協議等。
支持內核模塊的動態裝載和卸載。
內核組成部分:
核心文件:/boot/vmlinuz-VERSION-release
臨時系統鏡像文件:(偽根系統)
centos5 :/boot/inird-VERSION-release.img
centos7 :/boot/initramfs-VERSION-release.img
模塊文件:/lib/modules/VERSION-release
centos6啟動流程:
post加電自檢—->MBR引導—->GRUB菜單—->加載內核—->運行init進程—->讀取/etc/inittab配置文件—->執行/etc/rc.d/rc.sysinit腳本—->執行/etc/rc.d/rcX.d*—–>執行/etc/rc.d/rc.local腳本——>執行/bin/login程序,進入登錄狀態。
centos啟動流程的三個階段:
系統啟動的stage 1為:MBR中的前446個字節。
系統啟動的stage1.5為:mbr之后的扇區,讓stage1中的bootloader能識別stage2所在分區的文件系統。
系統啟動的stage 2 為:/boot/grub。
kernel: 通過/boot/grub/grub.conf配置文件中kernel行指定的內核路徑去加載內核,根據initrd行指定的ramdisk偽根系統路徑去加載系統根文件系統驅動,以只讀方式掛載根文件系統,運行用戶空間的第一個init進程。讀取/etc/inittab和/etc/init/*.conf配置文件執行系統的登錄運行級別(runlevel)執行/etc/rc.d/rc.sysinit初始化腳本,執行定義的登錄模式執行/etc/rc.d/rcX.d腳本啟動或終止那些服務服務,執行/etc/rc.d/rc.local腳本,最后運行終端程序/sbin/mingetty,終端程序會自動調用/etc/login用戶登錄系統。
ramdisk:initramfs-2.6.32-642.el6.x86_64.img
內核中的特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問。
ramdisk——>ramfs提高速度
centos5:initrd,工具程序:mkinitrd
centos6:initramfs,工具程序:mkinitrd dracut
實驗測試:
光盤急救模式下修復誤刪除/boot下的偽根文件系統initramfs-2.6.32-642.el6.x86_64.img
1) 誤刪除centos6系統中的偽根系統
[root@centos6 boot]# rm -rf initramfs-2.6.32-642.el6.x86_64.img
[root@centos6 boot]# ls
config-2.6.32-642.el6.x86_64 efi grub vmlinuz-2.6.32-642.el6.x86_64
lost+found symvers-2.6.32-642.el6.x86_64.gz System.map-2.6.32-642.el6.x86_64
[root@centos6 boot]#
2)掛載光盤, 執行reboot重啟系統
[root@centos6 boot]# reboot
3)啟動時按ESC鍵,在彈出的Boot Menu中選擇CD-ROM Drive回車。
4)進入光盤引導界面,選擇Rescue installed system 回車。
5)進入到光盤急救模式后,執行 chroot /mnt/sysimage切換到系統的根目錄下。
bash-4.1# chroot /mnt/sysimage
sh-4.1# cd /boot
sh-4.1#mkinitrd initramfs-`uname -r`.img `uname -r`
6)執行兩次exit,選擇reboot重啟。
init初始化:
runlevel系統的運行級別:
運行級別:為系統運行或維護等目的而設定:0-6級別。
各運行級別含義如下(runlevel):
0:關機,使用該級別會關閉主機。
1:單用戶模式,不需要密碼驗證即可登錄系統,多用于維護。
2:字符界面的多用戶模式,啟動網絡功能,但不會啟動nfs,多用于維護。
3:字符界面的完整多用戶模式,大多數服務器運行在此級別。
4:未分配使用。
5:圖形界面的多用戶模式,提供了圖形桌面操作環境。
6:重新啟動,使用該級別將會重啟主機。
默認級別:3 5
命令行切換級別:init #
查看當前系統運行級別:runlevel或 who -r
init讀取/etc/inittab配置文件
初始化運行級別runlevel:id:5:initdefault:
系統初始化腳本:si::sysinit:/etc/rc.d/rc.sysinit
對應運行級別的腳本目錄:l3:3:wait:/etc/rc.d/rc 3 (根據S*順序啟動服務)
定義關機快捷鍵:ca::ctrlaltdel:/sbin/shutdown -t3 -r now
定義UPS電源終端斷電:pf::powerfail:/sbin/shutdown -f -h +2
定義UPS電源終端恢復供電:pr:12345:powerokwait:/sbin/shutdown -c
對應運行級別運行終端程序:3:2345:respawn:/sbin/mingetty tty3
在運行級別5中初始化X服務:x:5:respawn:/etc/X11/prefdm -nodaemon
action–動作類型:
initdefault:設置初始化系統后默認進入的運行級別。
sysinit:設置系統初始化的操作腳本。
wait:init進程將等待該行配置所對應的腳本操作完成后,在繼續執行其他操作。
ctrlaltdel:設置當用戶按下ctrl+alt+delete組合鍵后的操作。
powerfail:設置當系統收到斷電信號時采取何種動作。
powerokwait:設置當系統收到回復供電信號時采取何種動作。
respawn:一旦該行配置所對應的進程被終止,則重新啟動該進程。
系統初始化腳本:/etc/rc.d/rc.sysinit腳本定義的功能:
(1)設置主機名
(2)設置歡迎詞
(3)激活udev和selinux
(4)掛載/etc/fstab文件中定義的文件系統
(5)檢測根文件系統,并以讀寫方式重新掛載根文件系統
(6)設置系統時鐘
(7)激活swap設置
(8)根據/etc/sysctl.conf文件設置內核參數
(9)激活lvm及software raid設備
(10)加載額外設備的啟動程序
(11)清理操作
/etc/rc.d/rcX.d腳本:
rcX.d:X根據id:5:initdefault:執行相對應的腳本。
/etc/rc.d/rc0.d ~ /etc/rc.d/rc6.d
/etc/rc.d/rcX.d目錄中的鏈接文件具有共同的規律:文件名以K或S開頭,中間是數字序號,最后是系統中的服務腳本名。如:K95firstboot、S10network等,所鏈接的原始服務腳本位于/etc/rc.d/init.d/目錄中,其中以S開頭的文件表示啟動對應的服務,以K開頭的表示終止對應的服務,中間的數字表示在啟動時或終止服務時的執行順序。
S*:S##運行次序,數字越小,越先運行,數字越小的服務,通常會被別的服務所依賴。
K*:K##運行次序,數字越小,越先運行,數字越小的服務,通常會依賴別的服務。
/etc/rc.d/rc.local腳本:
rc.local腳本是一個額外的啟動控制文件,由/etc/rc.d/rcX.d/中的S99local鏈接至位于/etc/rc.d/rc/local。rc.local腳本通常有rc腳本在最后進行加載,其作用主要是為管理員自行設置啟動命令提供一種途徑,需要在開機后自動執行的一些命令操作都可以添加到該文件中。
注:rc.local腳本要寫命令的絕對路徑。
centos5、6設置系統服務在不同運行級別中的狀態:
需要調整各種服務在不同運行級別中的自啟動狀態時,可以使用chkconfig或者ntsysv圖形化命令工具。
使用ntsysv圖形化配置工具,使用空格鍵啟動或關閉服務。
[root@centos6 rc5.d]# ntsysv
使用chkconfig配置工具
將chkconfig命令與–list選項配合使用,可以查看特定服務在不同運行級別中的啟動狀態。
示例:
[root@centos6 rc5.d]# chkconfig –list network
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@centos6 rc5.d]#
查看系統中所有服務在個運行級別中的啟動狀態。
[root@centos6 rc5.d]# chkconfig –list
將chkconfig命令與–level選項配合使用,設置指定服務在指定運行級別中的啟動狀態
[root@centos6 rc5.d]# chkconfig –level 235 network off
[root@centos6 rc5.d]# chkconfig –level 235 network on
chkconfig也可以使用不帶–level選項,設置服務的啟動狀態。
[root@centos6 rc5.d]# chkconfig network on
[root@centos6 rc5.d]# chkconfig –list network
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@centos6 rc5.d]#
破解centos5和6的root密碼:
通過單用戶模式破解root密碼
(1)重啟主機之后,在出現grub菜單時按任意鍵取消倒計時,并定位到title行,按e鍵進入編輯模式。
(2)定位到以kernel開頭的行并按e鍵,在行尾添加“single”或“S”或“s”或數字“1”,都可以進入到單用戶模式。
(3)回車后,按b鍵將系統引導進入當用戶模式,進入shell環境。
(4)在單用戶模式shell環境中,直接執行“passwd root”重新設置root用戶密碼。
grub:Grand Unified Bootloader
centos6:使用grub版本grub-0.97-94.el6_7.1.x86_64
centos7:使用grub版本grub2-2.02-0.16.el7.centos.x86_64
grub啟動三個階段:
stage1:mbr扇區前446個字節。
stage1.5:mbr之后的扇區,讓stage1中的bootloader能識別stage2所在分區的文件系統。
stage2:磁盤分區/boot/grub。
grub配置文件:
/etc/grub/grub.conf ———–>軟鏈接/etc/grub.conf
一般stage2放置在/boot/grub目錄下,內核文件放置在/boot目錄下。
1) grub提供啟動菜單,并提供交互式接口。
選項:
a:修改內核參數;
e:編輯模式,用于編輯菜單內容;
c:命令模式,提供交互式接口
2)加載用戶選擇的內核或操作系統
允許傳遞參數給內核
可隱藏啟動菜單
3)為grub菜單提供保護機制
為編輯啟動菜單進行認證
為啟用內核或操作系統進行認證
grub的命令行接口:
手動在grub命令行接口啟動系統:
grub> root (hd0,0) //第一塊硬盤的第一個分區,這里的root表示根。
grub>kernel /vmlinuz-3.10.0-229.el7.x86_64 ro root=/dev/sda5 //啟動的內核
grub>initrd /initramfs-3.10.0-229.el7.x86_64.img //偽根系統
grub>boot //重新引導
注意:如果/boot分區和 / 分區都在一個分區里,那么上例中的kernel 和initrd 的路徑都要在前面加上 /boot/vmlinuz-3.10.0-229.el7.x86_64 ro root=/dev/sda5 和 /initrd /boot/initramfs-3.10.0-229.el7.x86_64.img。
內核kernel參數:
max_loop=100 selinux=0 init=/bin/bash 等
內核參數文檔:/usr/share/doc/kernel-doc-2.6.32/Documentation/kernel-parameters.txt
查看內核參數:
cat /proc/cmdline
grub引導菜單配置文件:
[root@centos6 Desktop]# vim /boot/grub/grub.conf
default=0 //默認從#個內核啟動;
timeout=5 //啟動菜單項等待選擇的時長,默認為5秒;
splashimage=(hd0,0)/grub/splash.xpm.gz //菜單背景圖片路徑;
hiddenmenu //隱藏菜單
title CentOS 6 (2.6.32-642.el6.x86_64) //定義菜單項標題;
root (hd0,0) grub查找stage2及kernel //文件所在設備分區,為grub根;
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda5 rhgb quie//啟動的內核
initrd /initramfs-2.6.32-642.el6.x86_64.img //偽根系統
grub引導菜單加密:
MD5 :密文加密命令:
grub-md5-crypt
openssl passwd -1
在grub.conf配置文件中,grub密碼配置行若添加在第一個“title”行之前,則僅在需要變更grub引導參數的時候才需要提供密碼;若添加在“root(hd0,0)”之前,則在進入該系統的時候即需要提供密碼。
示例:需要編輯grub引導參數時提供的密碼,例如:進單用戶模式,添加內核參數等。
default=0
timeout=5
hiddenmenu
password –md5 $1$u/gGz$sK5b73aj6gQwFn6ATHzie0
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda5
initrd /initramfs-2.6.32-642.el6.x86_64.img
注:在vim末行模式下執行:r!grub-md5-crypt,敲擊兩次密碼。
示例:進系統需要提供grub密碼
default=0
timeout=5
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
password –md5 $1$u/gGz$sK5b73aj6gQwFn6ATHzie0
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda5
initrd /initramfs-2.6.32-642.el6.x86_64.img
注:在vim末行模式下執行:r!grub-md5-crypt,敲擊兩次密碼。
grub修復命令:
(1)grub-install:
可以修復stage 1 stage1.5 stage2,但是在stage2階段中的grub.conf配置文件修復不了。
安裝grub stage1 stage1.5到/dev/DISK磁盤上,并復制grub相關文件到DIR/boot目錄。
grub-install –root-directory=DIR /dev/DISK
(2) grub:
grub>root (hd#,#)
grub>setup (hd#)
可以修復stage1 stage1.5,但修復時需要依賴/boot/grub目錄下的文件。
示例:破壞centos6 stage1 (mbr前446個字節),光盤急救模式下修復。
1)破壞stage1 (mbr前446個字節)
[root@centos6 Desktop]# dd if=/dev/zero of=/dev/sda bs=446 count=1
2)使用hexdump命令查看確認是否破壞:
[root@centos6 Desktop]# hexdump -C -n 512 -v /dev/sda
3)掛載光盤, 執行reboot重啟系統
[root@centos6 boot]# reboot
4)啟動時按ESC鍵,在彈出的Boot Menu中選擇CD-ROM Drive回車。
5)進入光盤引導界面,選擇Rescue installed system 回車。
6)進入到光盤急救模式后,執行 chroot /mnt/sysimage切換到系統的根目錄下。
bash-4.1# chroot /mnt/sysimage
sh-4.1#grub-install /dev/sda
7)執行兩次exit,選擇reboot重啟。
示例:破壞centos6 stage1.5 (mbr引導扇區之后的521個字節)光盤急救模式下修復。
1)破壞centos6 stage1.5 (mbr引導扇區之后的521個字節)
[root@centos6 boot]# dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1
2)使用hexdump命令查看確認是否破壞:
[root@centos6 Desktop]# hexdump -C -n 1024 -v /dev/sda
000001d0 1f 3f 83 fe ff ff 00 a8 0f 00 00 80 38 01 00 fe |?……….8……|
000001e0 ff ff 82 fe ff ff 00 28 48 01 00 40 1f 00 00 fe |…….(H..@….|
000001f0 ff ff 05 fe ff ff 00 68 67 01 00 98 98 0d 55 aa |…….hg…..U.|
00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |……………….|
00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |………………..|
3)掛載光盤, 執行reboot重啟系統
[root@centos6 boot]# reboot
4)啟動時按ESC鍵,在彈出的Boot Menu中選擇CD-ROM Drive回車。
5)進入光盤引導界面,選擇Rescue installed system 回車。
6)進入到光盤急救模式后,執行 chroot /mnt/sysimage切換到系統的根目錄下。
bash-4.1# chroot /mnt/sysimage
sh-4.1#grub
grub>root (hd0,0)
grub>setup (hd0)
grub>quit
sh-4.1#
7)執行兩次exit,選擇reboot重啟。
示例:破壞centos6 stage2 (刪除/boot/grub目錄)
1)刪除/boot/grub目錄
[root@centos6 boot]# rm -rf /boot/grub/
2)使用ls命令查看grub目錄是否存在
[root@centos6 boot]# ls
config-2.6.32-642.el6.x86_64 symvers-2.6.32-642.el6.x86_64.gz
efi System.map-2.6.32-642.el6.x86_64
initramfs-2.6.32-642.el6.x86_64.img vmlinuz-2.6.32-642.el6.x86_64
lost+found
[root@centos6 boot]#
3)掛載光盤, 執行reboot重啟系統
[root@centos6 boot]# reboot
4)啟動時按ESC鍵,在彈出的Boot Menu中選擇CD-ROM Drive回車。
5)進入光盤引導界面,選擇Rescue installed system 回車。
6)進入到光盤急救模式后,執行 chroot /mnt/sysimage切換到系統的根目錄下。
bash-4.1# chroot /mnt/sysimage
sh-4.1#grub-install /dev/sda
sh-4.1#cd /boot/grub
sh-4.1#vim grub.conf
default=0
timeout=5
title=centos6.8
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda5 rhgb quiet
initrd /initramfs-2.6.32-642.el6.x86_64.img
sh-4.1#
7)執行兩次exit,選擇reboot重啟。
誤刪除/sbin/init命令和/etc/inittab配置文件:
示例:刪除/sbin/init命令和/etc/inittab配置文件
1)刪除/sbin/init命令和/etc/inittab配置文件
[root@centos6 Desktop]# rm -rf /sbin/ini
[root@centos6 Desktop]# rm -rf /etc/inittab
2)檢查/sbin/init和/etc/inittab是否存在
[root@centos6 etc]# ls | grep "inittab"
[root@centos6 etc]# ls /sbin | grep "\<init\>"
[root@centos6 etc]#
3)掛載光盤, 執行reboot重啟系統
[root@centos6 boot]# reboot
4)啟動時按ESC鍵,在彈出的Boot Menu中選擇CD-ROM Drive回車。
5)進入光盤引導界面,選擇Rescue installed system 回車。
6)進入到光盤急救模式后,執行 chroot /mnt/sysimage切換到系統的根目錄下。
bash-4.1# chroot /mnt/sysimage
sh-4.1#mount /dev/sr0 /mmt
sh-4.1#cd /mnt/Packages
sh-4.1#rm -qf /sbin/init
upstart-0.6.5-16.el6.x86_64
sh-4.1#rm -qf /etc/inittab
initscripts-9.03.53-1.el6.centos.x86_64
sh-4.1#rpm -ivh –force initscripts-9.03.53-1.el6.centos.x86_64.rpm
sh-4.1#rpm -ivh –force upstart-0.6.5-16.el6.x86_64.rpm
sh-4.1#
7)執行兩次exit,選擇reboot重啟。
服務器啟動故障:
當重啟或開機時,有時會被一些服務卡住,半天過不去,如何解決?
1)這時我們需要記住被卡住的服務名;
2)重啟主機進入單用戶模式;
3)單用戶模式中使用chkconfig命令先禁用被卡住的服務啟動;
4)待主機啟動起來之后在排查被卡服務故障原因;
5)如果還是不行可以在啟動主機時,添加內核參數(selinux=0)禁用內核參數;
實驗測試:
實驗環境:
破壞mbr前446個字節;
破壞stage1_5階段;
刪除/boot目錄,刪除/etc/fstab文件,刪除/etc/inittab文件,刪除/etc/rc.d/rc.sysinit系統初始化腳本文件。
1) 開始破壞grub、刪除目錄及文件:
[root@centos6 ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.000372593 s, 1.2 MB/s
[root@centos6 ~]# dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1
2+0 records in
2+0 records out
1024 bytes (1.0 kB) copied, 0.000450367 s, 2.3 MB/s
[root@centos6 ~]# rm -rf /boot/*
[root@centos6 ~]# rm -rf /etc/fstab
[root@centos6 ~]# rm -rf /etc/inittab
[root@centos6 ~]# rm -rf /etc/rc.d/rc.sysinit
[root@centos6 ~]#
2)檢查是否破壞grub、刪除目錄及文件:
[root@centos6 ~]# hexdump -C -n 1024 -v /dev/sda
[root@centos6 ~]# ls /boot/
[root@centos6 ~]# ls /etc | grep "fstab"
[root@centos6 ~]# ls /etc | grep "inittab"
[root@centos6 ~]# ls /etc/rc.d | grep "rc.sysinit"
[root@centos6 ~]#
3)掛載光盤, 執行reboot重啟系統
[root@centos6 boot]# reboot
4)啟動時按ESC鍵,在彈出的Boot Menu中選擇CD-ROM Drive回車。
5)進入光盤引導界面,選擇Rescue installed system 回車。
6)進入到光盤急救模式后,執行fdisk -l查看一下磁盤分區情況。
bash-4.1#fdisk -l /dev/sda
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 1339 10240000 83 Linux
/dev/sda3 1339 1467 1024000 82 Linux swap / Solaris
/dev/sda4 1467 15666 114052096 5 Extended
/dev/sda5 1467 15666 114051072 83 Linux
7)查看到/dev/sda磁盤的分區情況后,就要找系統根分區了,如果事先知道“/”在哪個分區上,就可以直接掛在根到指定的目錄,如果不知道只能一個一個的掛載看。
?修復/etc/fstab文件:
(1)創建一個目錄掛載根分區;
(2)cd切換到根分區中重建/etc/fstab文件;
(3)執行exit退出,選擇reboot重啟,讓系統重新自動掛載分區到指定目錄;
bash-4.1#mkdir /bo
bash-4.1#mount /dev/sda5 /bo
bash-4.1#cd /bo
bash-4.1#vi etc/fstab
/dev/sda1 /boot ext4 defaults 1 1
/dev/sda5 / ext4 defaults 1 2
bash-4.1# exit
?如果此處分區為邏輯卷:
bash-4.1#lvscan //此時看到的邏輯卷應該是inaction的,不活動的。
inaction ‘/dev/vg0/root’ [20GiB]
inaction ‘/dev/vg0/swap’ [2GiB]
inaction ‘/dev/vg0/usr’ [10GiB]
inaction ‘/dev/vg0/var’ [20GiB]
bash-4.1#vgscan //此時可以看到卷組,不活動的。
Found volume group “vg0”
bash-4.1#vgchange -ay /dev/vg0 //激活vg0卷組上所有邏輯卷。
bash-4.1#ls /dev/vg0/* //查看vg0卷組下所有的邏輯卷。
/dev/vg0/root /dev/vg0/swap /dev/vg0/usr /dev/vg0/var
bash-4.1#mkdir /bo //創建一個根目錄bo。
bash-4.1# mount /dev/vg0/root /bo //掛載根分區到/bo目錄下。
bash-4.1#vi /bo/etc/fstab //編輯/etc/fstab文件。
/dev/sda1 /boot ext4 defaults 1 1
/dev/vg0/root / ext4 defaults 1 2
/dev/vg0/usr /usr ext4 defaults 0 0
/dev/vg0/var /var ext4 defaults 0 0
bash-4.1#exit
注: 執行exit退出,選擇reboot重啟,讓系統重新自動掛載分區到指定目錄;
8)重新進入到急救模式shell環境時可以看到chroot /mnt/sysimage,表示/etc/fstab文件沒有問題。
chroot /mnt/sysimage :表示系統目錄已經掛載到光盤上的根目錄下了。
9)進入到光盤急救模式后,執行 chroot /mnt/sysimage切換到待修復系統的根目錄下。
(1)修復/boot目錄下的文件,恢復內核文件。
bash-4.1#chroot /mnt/sysimage
sh-4.1#mount /dev/sr0 /mnt
sh-4.1#cd /mnt/Packages
sh-4.1#rpm -ivh -force kernel-2.6.32-642.el6.x86_64.rpm
sh-4.1#cd /boot
sh-4.1#grub-install /dev/sda
sh-4.1#vim /boot/grub/grub.conf
default=0
timeout=5
title=centos6.8
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda5
initrd /initramfs-2.6.32-642.el6.x86_64.img
sh-4.1#
10)修復/etc/inittab配置文件和/etc/rc.d/rc.sysinit系統初始化腳本:
sh-4.1# rpm -df /etc/inittab
initscripts-9.03.53-1.el6.centos.x86_64
sh-4.1#rpm -df /etc/rc.d/rc.sysinit
initscripts-9.03.53-1.el6.centos.x86_64
sh-4.1# cd /mnt/Packages
sh-4.1#rpm -ivh –force initscripts-9.03.53-1.el6.centos.x86_64.rpm
11)執行兩次exit,選擇reboot重啟。
原創文章,作者:zhengyibo,如若轉載,請注明出處:http://www.www58058.com/48360