1、Linux 組成
kernel: 進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能等等
rootfs: 程序和glibc
內核設計流派:
單內核(monolithic kernel)-Linux-把所有功能集成于同一個程序
微內核(micro kernel)-Windows, Solaris-每種功能使用一個單獨子系統實現
1)、Linux內核特點:
支持模塊化(.ko內核模塊文件)如文件系統,硬件驅動,網絡協議等
支持內核模塊的動態裝載和卸載
2)、內核組成部分:
核心文件:/boot/vmlinuz-VERSION-release
ramdisk輔助的偽根系統(工具程序mkinitrd):
CentOS 5: /boot/initrd-VERSION-release.img
CentOS6,7: /boot/initramfs-VERSION-release.img
/boot/initramfs-2.6.32-642.el6.x86_64.img
$ mkinitrd initramfs-`uname -r`.img `uname -r`可以恢復丟失的ramdisk系統
模塊文件:/lib/modules/VERSION-release
/lib/modules/2.6.32-642.el6.x86_64
2、centos6 啟動流程
1).加載BIOS 的硬件信息,獲取第一個啟動設備
2).讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息
3).加載核心操作系統信息,核心開始解壓縮,并嘗試驅動所有的硬件設備
4).核心執行init 程序并獲取運行信息
5).Init執行/etc/rc.d/rc.sysinit 文件
6).啟動核心的外掛模塊(/etc/modprobe.conf)
7).Init執行運行各個批處理文件(scripts)
8).Init執行/etc/rc.d/rc.local
9).執行/bin/login 程序,等待用戶登錄
10).登錄之后開始以Shell控制主機
啟動流程:
POST:Power-On-Self-Test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、CD-ROM光驅等硬件情況的檢測;
ROM:BIOS,Basic Input and Output System,保存著有關計算機系統最重要的基本輸入輸出程序,系統信息設置、開機加電自檢程序和系統啟動自舉程序等;
RAM:CMOS互補金屬氧化物半導體,保存各項參數的設定,按次序查找引導設備,第一個有引導程序的設備為本次啟動設備;
bootloader:引導加載器,引導程序
windows:ntloader,僅是啟動OS
linux:功能豐富,提供菜單,允許用戶選擇要啟動系統或不同的內核版本,把用戶選定的內核裝載到內存中的特定空間中,解壓、展開,并把系統控制權移交給內核
LILO:Linux Loader
GRUB:GRand Unified Bootloader
GRUB 0.X:GRUB Legacy,GRUB2
MBR(446-bootloader,64-分區表,2-55aa)
GRUB:
primary boot loader: 1st stage,1.5 stage
secondary boot loader:2nd stage,分區文件
stage1: mbr
stage1_5: mbr之后27扇區,讓stage1中bootloader能識別stage2所在的分區上的文件系統
stage2:磁盤分區(/boot/grub/)
kernel-自身初始化:探測可識別到的所有硬件設備,加載硬件驅動程序(可能借助于ramdisk 加載驅動),以只讀方式掛載根文件系統,運行用戶空間的第一個應用程序/sbin/init
啟動流程(到/etc/rc.d/rc.sysinit的任何步驟出現問題,系統均不能正常啟動):
POST(BIOS)加電自檢–>
BootSequence(BIOS)選取確定引導設備(磁盤、優盤、光盤等等)–>
Bootloader(MBR)第一階段讀取引導設備mbr的446字節即是bootloader, 在5/6上是grub程序,目的是在未來引導boot分區;一點五階段讀取mbr的后續27個扇區的數據,識別boot所在的分區,進而加載boot分區驅動等;第二階段讀取grub文件夾文件–>kernel(ramdisk)–>
rootfs識別根系統(只讀)–> switchroot
啟動第一個進程init(systemd)–>(/etc/inittab)–>設置默認運行級別–>
運行系統初始腳本/etc/rc.d/rc.sysinit完成系統初始化–>
關閉對應級別下需要關閉的服務,啟動需要啟動的服務–>設置登錄終端
3、init 程序的類型及配置文件:
SysV: init,CentOS5之前
配置文件/etc/inittab
Upstart: init,CentOS6
配置文件/etc/inittab
/etc/init/*.conf
Systemd:systemd,CentOS7
配置文件/usr/lib/systemd/system
/etc/systemd/system
4、/sbin/init (CentOS6之前)
運行級別:為系統運行或維護等目的而設定0-6共7個級別
0:關機
1:單用戶模式(root自動登錄),single,維護模式
2: 多用戶模式,啟動網絡功能,但不會啟動NFS,維護模式
3:多用戶模式,正常模式,文本界面
4:預留級別,可同3 級別
5:多用戶模式,正常模式,圖形界面
6:重啟
默認級別:3, 5
切換級別:init #
查看級別:runlevel; who -r
Init的初始化即是讀取其配置文件:/etc/inittab
[root@localhost ~]# runlevel
N 5
[root@localhost ~]# init 3
[root@localhost ~]# runlevel
5 3
[root@localhost ~]# who -r
run-level 3 2016-09-08 21:44 last=5
[root@localhost ~]# init 6 重啟系統
[root@localhost ~]# init 0 關閉系統
5、inittab和相關文件
1)、CentOS5的inittab文件
配置文件:/etc/inittab
每一行定義一種action以及與之對應的process,格式如下:
id:runlevel:action:process
action:
wait: 切換至此級別運行一次
respawn:此process 終止,就重新啟動之
initdefault:設定默認運行級別,process省略
sysinit:設定系統初始化方式,此處一般為指定系統初始化腳本/etc/rc.d/rc.sysinit
ca::ctrlaltdel:/sbin/shutdown -t3 -r now,為了防止重啟誤操作,可把此行注釋掉
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc0.d
l1:1:wait:/etc/rc.d/rc1.d
……
l6:6:wait:/etc/rc.d/rc6.d
說明:rcN –>意味著讀取/etc/rc.d/rcN.d/,其中的文件都是軟鏈接,指向/etc/init.d中的文件
K##*:##運行次序,數字越小,越先運行,并且數字越小的服務,通常依賴到別的服務
S##*:##運行次序,數字越小,越先運行,數字越小的服務,通常為被依賴到的服務
關于K##*與S##*文件的開機處理,可參看#cat /etc/rc.d/rc文件:
for srv in /etc/rc.d/rcN.d/K*;do
$srv stop
done
for srv in /etc/rc.d/rcN.d/S*;do
$srv start
Done
2)、CentOS6的inittab和相關文件
/etc/inittab
設置系統默認的運行級別id:3:initdefault:
/etc/init/control-alt-delete.conf
/etc/init/tty.conf
/etc/init/start-ttys.conf
/etc/init/rc.conf
/etc/init/prefdm.conf
6、系統初始化腳本/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)清理操作
7、chkconfig命令
查看服務在所有級別的啟動或關閉設定情形:
#chkconfig [–list] [name]
[root@localhost ~]# chkconfig –list atd
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
如果要添加服務在系統啟動時于特定級別下自動運行,可以進行如下步驟:
首先添加的自定義服務SysV腳本放置于/etc/rc.d/init.d (/etc/init.d)
然后執行如下命令加載服務進入級別列表#chkconfig –add name
服務腳本的格式如下:
#!/bin/bash
#LLLL表示初始在哪個級別下啟動,-表示都不啟動
# chkconfig: LLLL n1 n2
#description:
示例如下
[root@localhost init.d]# pwd
/etc/init.d
[root@localhost init.d]# vim testsvr.sh
#1/bin/bash
#chkconfig: 35 88 26 意思是在啟動級別3和5下啟動,S*編號為88,K*編號為26
#description:testsvr scription
case $1 in
start)
echo testsvr start
;;
stop)
echo testsvr stop
;;
status)
echo testsvr status
;;
*)
echo xxx
;;
esac
[root@localhost init.d]# chmod +x testsvr.sh
[root@localhost init.d]# chkconfig –add testsvr.sh
[root@localhost init.d]# chkconfig –list testsvr.sh
testsvr.sh 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@localhost init.d]# ls /etc/rc.d/rc3.d
S88testsvr.sh
[root@localhost init.d]# ls /etc/rc.d/rc2.d
K26testsvr.sh
[root@localhost init.d]# service testsvr.sh start
testsvr start
[root@localhost init.d]# service testsvr.sh status
testsvr status
[root@localhost init.d]# service testsvr.sh stop
testsvr stop
刪除服務于級別列表:
#chkconfig –del name
修改指定服務的級別類型:
#chkconfig [–level levels] name <on|off|reset>
–level LLLL: 指定要設置的級別,省略時表示2345
[root@localhost init.d]# chkconfig –list testsvr.sh
testsvr.sh 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@localhost init.d]# chkconfig testsvr.sh on
[root@localhost init.d]# chkconfig –list testsvr.sh
testsvr.sh 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost init.d]# chkconfig –level 24 testsvr.sh off
[root@localhost init.d]# chkconfig –list testsvr.sh
testsvr.sh 0:off 1:off 2:off 3:on 4:off 5:on 6:off
#ntsysv –level=2 修改2級別下的服務開機是否啟動
#ntsyav 修改當前級別下服務開機是否啟動
8、xinetd管理的服務
service命令:手動管理服務
瞬態(Transient)服務被xinetd 進程所管理,進入的請求首先被xinetd代理
配置文件:/etc/xinetd.conf 、/etc/xinetd.d/<service>
可用chkconfig 控制的瞬態服務啟動關閉:
chkconfig tftp on
chkconfig tftp off
9、正常級別(2345級別)下S99local
注意:正常級別下,最后啟動的一個服務S99local沒有鏈接至/etc/rc.d/init.d下的服務腳本,而是指向了/etc/rc.d/rc.local 腳本
不便或不需寫為服務腳本放置于/etc/rc.d/init.d/目錄,且又想開機時自動運行的命令,可直接放置于/etc/rc.d/rc.local 文件中,/etc/rc.d/rc.local 在指定運行級別腳本后運行
10、破解root口令
在啟動過程中,在菜單頁按下任意鍵,然后選擇a選項,輸入1、s、S、single任意可進入單用戶模式,可進行口令的修復
11、grub legacy
stage1: mbr
stage1_5: mbr之后27扇區,讓stage1中的bootloader能識別stage2所在的分區上的文件系統
stage2:磁盤分區(/boot/grub/)
配置文件:/boot/grub/grub.conf <– /etc/grub.conf
其中default=#設定默認啟動第幾個title對應的操作系統,單項(title) 編號從0開始
timeout=#超時時間-菜單項等待選擇時長,超時時間過后自動啟動默認的操作系統
splashimage=(hd#,#)/PATH/TO/XPM_FILE 菜單背景圖片文件路徑
[root@centos6-8 ~]# cp /boot/grub/splash.xpm.gz /root
[root@centos6-8 ~]# gzip -d splash.xpm.gz
[root@centos6-8 ~]# more splash.xpm
#yum install ImageMagick
#covret -resize 640×480 -colors 14 win.jig win.xpm
#gzip win.xpm
#vim /ect/grub.conf
hiddenmenu啟動時默認菜單是不可見的,啟動中按任意鍵后可見
password [–md5] STRING:啟動菜單編輯時認證
示例passwd centos 設置啟動菜單編輯時要輸入密碼centos
示例加密密碼passwd –md5 加密密碼字符串
生成加密密碼#grub-md5-crypt
#openssl passwd -salt “xxx” -1
title TITLE:定義菜單項“標題”
root (hd#,#):grub查找stage2及kernel文件所在設備分區,為grub“根”
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核
initrd /PATH/TO/INITRAMFS_FILE:內核匹配的ramfs文件
password [–md5] STRING:啟動選定的內核或操作系統時進行認證
stage2及內核等通常放置于一個基本磁盤分區
功用:
(1)提供啟動菜單、并提供交互式接口
a:編輯內核參數,不能夠編輯kernel和initrd核心數據
內核參數不影響正常啟動
參數rhgb定義圖形界面啟動
參數quite定義啟動時不顯示內核加載過程信息
參數init=/PATH/TO/xxx定義系統啟動時的第一個程序(例如init=/bin/bash,啟動后直接進入bash程序,此時可以進行簡單的操作,但是因網絡服務還沒有啟動,沒有網絡,而且根系統為只讀,執行命令#mount -o remount,rw /后,根系統就可以讀寫操作,可以進行系統的基本修復作業)
此外還有max_loop=#、selinux=0/1、net.ifnames=0等等
e: 編輯模式,用于編輯菜單
c: 命令模式編輯菜單,交互式接口
(2)加載用戶選擇的內核或操作系統
允許傳遞參數給內核
可隱藏啟動菜單
(3)為菜單提供了保護機制
為編輯啟動菜單進行認證
為啟用內核或操作系統進行認證
#cat /var/log/boot.log可以查看啟動過程日志信息
#cat /proc/cmdline 查看內核參數
內核參數文檔:/usr/share/doc/kernel-doc-2.6.32/Documentation/kernel-parameters.txt
grub 的命令行接口
help:獲取幫助列表
help KEYWORD:詳細幫助信息
root (hd#,#)
kernel /PATH/TO/KERNEL_FILE root=/dev/DEVICE:設定本次啟動時用到的內核文件,額外還可添加內核支持使用的cmdline參數,例如max_loop=100 selinux=0 init=/path/to/init(init=/bin/bash)
initrd /PATH/TO/INITRAMFS_FILE:設定為選定的內核提供額外文件的ramdisk
boot:引導啟動選定的內核
識別硬盤設備:
(hd#,#)
hd#:磁盤編號,用數字表示,從0開始編號
#:分區編號,用數字表示,從0開始編號
(hd0,0)第一塊硬盤,第一個分區
(hd0,1)第一塊硬盤,第二個分區
手動在grub命令行接口《啟動系統》示例:
grub> root (hd#,#)
grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot
12、grub安裝(修復范圍)
(1) grub-install命令(救援模式下修復)
能夠安裝grub stage1和stage1_5到/dev/DISK 磁盤上,并復制GRUB的相關文件(不包括grub.conf文件)到 DIR/boot目錄下
#grub-install –root-directory=DIR /dev/DISK
(2)grub命令(交互式修復)-修復時依賴/boot/grub下的*1_5文件
grub> root (hd#,#) 指定根所在位置
grub> setup (hd#) 指定安裝磁盤位置
grub>quit
13、自制linux系統示例
新建磁盤/dev/sdb
#fdisk分出/dev/sdb1和/dev/sdb2
#mkfs.ext4 /dev/sdb1
#mkfs.ext4 /dev/sdb2
#mkdir /mnt/boot
#mkdir /mnt/sdb2
#mount /dev/sdb1 /mnt/boot
#mount /dev/sdb2 /mnt/sdb2
#cd /mnt/boot
#cp /boot/initramfs-2.6.32-642.el6.x86_64.img /boot/vmlinuz-2.6.32-642.el6.x86_64 .
#grub-install –root-directory=/mnt /dev/sdb
# cd /mnt/boot/grub
#vim grub.conf 寫入如下:
default=0
timeout=5
title custom-centos
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda2 selinux=0 init=/bin/bash
initrd /initramfs-2.6.32-642.el6.x86_64.img
#cd /mnt/sdb2
#mkdir {etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media}
#cd
#mkdir bin
#cd bin
#vim cpcmd.sh 復制命令的腳本
#cd
#vim .bash_profile 寫入如下:
PATH=$PATH:$HOME/bin:/root/bin
#. .bash_profile
#cd bin
#cpcmd.sh 復制命令bash、ls、df、mount、umount、blkid、lsblk、rpm等等
#cd
#vim /mnt/sdb2/etc/fstab 寫入如下:
/dev/sda1 /boot ext4 defaults 1 1
/dev/sda2 / ext4 defaults 1 2
14、救援恢復/etc/inittb文件
從光盤引導(boot.iso或者安裝光盤#1)
從USB盤引導(由boot.iso制作)
系統在引導期間,很重要的一個過程就是通過init進程讀取其配置文件/etc/inittab,啟動系統基本服務程序及默認運行級別的服務程序完成系統引導,如果/etc/inittab誤刪除或修改錯誤,Linux將無法正常啟動,此時,只有通過救援模式才可以解決此類問題
? 有備份文件的恢復方法
? 沒有備份文件的恢復辦法
有備份文件的恢復辦法:
進入救援模式,執行chroot命令后,如果有此文件的備份(強烈建議系統中的重要數據目錄,如/etc、/boot等要進行備份),直接將備份文件拷貝回去,退出重啟即可;如果是配置文件修改錯誤,如比較典型的/boot/grub/grub.conf及/etc/passwd的文件修改錯誤,也可以直接修正恢復;
假設有備份文件/etc/inittab.bak,則在救援模式下執行:
sh-3.1# chroot /mnt/sysimage
sh-3.1# cp /etc/inittab.bak /etc/inittab
沒有備份文件的恢復辦法:
如果一些配置文件丟失或軟件誤刪除,且無備份,可以通過重新安裝軟件包來恢復
首先查找到/etc/inittab 屬于哪一個RPM包
# chroot /mnt/sysimage
# rpm -qf /etc/inittab
initscripts-9.03.49-1.el6.centos.x86_64
掛載存放RPM 包的安裝光盤(在救援模式下,光盤通常掛載在/mnt/source目錄下)
# mount /dev/sr0 /mnt/source
CentOS6系統的RPM包存放在光盤Packages目錄下
要修復的硬盤系統的根目錄是/mnt/sysimage
若當前目錄不是/mnt/sysimage,那么需要使用–root選項指定其為根目錄來覆蓋安裝/etc/inittab文件所在的RPM包
# rpm -ivh /mnt/source/Packages/initscripts-9.03.49-1.el6.centos.x86_64.rpm –replacepkgs|force
其中的rpm 命令選項“–replacepkgs”表示覆蓋安裝,執行完成后即已經恢復了此文件
如果想只提取RPM包中的/etc/inittab文件進行恢復,可以在進入救援模式后,執行命令:
# rpm2cpio /mnt/source/Packages/initscripts-9.03.49-1.el6.centos.x86_64.rpm|cpio
-idv ./etc/inittab
命令中./etc/inittab的.表示提取PRM包中/etc/inittab到當前目錄
# cp etc/inittab /mnt/sysimage/etc
注意此命令執行時不能將文件直接恢復至/etc目錄,只能提取到當前目錄下,且恢復的文件名稱所在路徑要寫完整的路徑,提取文件成功后,將其復制到根分區所在/mnt/sysimage目錄下相應位置即可
練習(救援模式的根與硬盤系統的根):
1、/boot/grub/grub.conf中的kernel和initrd核心信息破壞,啟動中按如下步驟臨時修復:
在錯誤界面,按照提示按任意鍵進入啟動菜單頁;
讀下面的提示信息,選擇按e鍵進入編輯模式;
讀下面的提示信息,選擇e鍵編輯選擇的命令;
讀上面的提示信息,進行相應的操作,例如修改后按enter鍵保存修改等等
然后按照提示啟動即可
當然也可以進行救援修復,只不過較為復雜
2、破壞第一階段,救援恢復啟動步驟如下:
#dd if=/dev/zero of=/dev/sda bs=1 count=1
進入救援模式;
$chroot /mnt/sysimage
$grub-install /dev/sda
然后退出重啟即可
或者如下修復
grub命令-交互式修復;
grub> root (hd0,0)
grub> setup (hd0)
grub>quit
然后重啟即可
3、刪除/boot目錄下的grub后,救援恢復啟動步驟如下:
進入救援模式;
$chroot /mnt/sysimage
$grub-install /dev/sda
然后切換至/boot/grub下,$vim grub.conf參考寫入以下內容:
default=0
timeout=5
title centos6.8-shan
kernel (hd0,0) /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda2
initrd (hd0,0)/initramfs-2.6.32-642.el6.x86_64.img
然后退出重啟即可
4、刪除/boot目錄下的vmlinuz-2.6.32-642.el6.x86_64、initramfs-2.6.32-642.el6.x86_64.img,
救援恢復啟動步驟如下(使用光盤恢復):
進入救援模式;
$chroot /mnt/sysimage
$mount /dev/sr0 /mnt/cdrom
$cd /mnt/cdrom
$cd isolinux/
$cp vmlinuz /boot
$cd /boot
$mv vmlinuz vmlinuz-`uname -r`
$mkinitrd initramfs-`uname -r`.img `uname -r`
然后退出重啟即可
5、刪除/boot目錄下的vmlinuz-2.6.32-642.el6.x86_64,救援恢復啟動步驟如下(使用網絡恢復):
進入救援模式中選擇建立網絡;
$chroot /mnt/sysimage
$scp 192.168.1.109:/boot/vmlinuz* /boot
然后退出重啟即可
6、刪除/boot目錄,救援恢復啟動步驟如下:
進入救援模式;
$chroot /mnt/sysimage
$rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-642.el6.x86_64.rpm –force
只需在根目錄下或者指定根目錄,就會自動安裝到/boot下
$grub-install /dev/sda
然后切換至/boot/grub下,$vim grub.conf參考寫入以下內容:
default=0
timeout=5
title centos6.8-shan
kernel (hd0,0) /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda2
initrd (hd0,0)/initramfs-2.6.32-642.el6.x86_64.img
然后退出重啟即可
或者進入救援模式直接執行:
$mount /dev/sr0 /mnt/cdrom
$rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-642.el6.x86_64.rpm
–root=/mnt/sysimage –force
此處使用–root=/mnt/sysimage指定根目錄,而且—force選項可用—replacepkgs替代
$chroot /mnt/sysimage
$grub-install /dev/sda
然后切換至/boot/grub下,$vim grub.conf參考寫入以下內容:
default=0
timeout=5
title centos6.8-shan
kernel (hd0,0) /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda2
initrd (hd0,0)/initramfs-2.6.32-642.el6.x86_64.img
然后退出重啟即可
7、刪除/etc/fstab 和/boot目錄的所有文件,救援恢復啟動步驟如下:
/etc/fstab文件中最重要的掛載,也是能夠影響系統啟動的掛載是/和/boot,其它的掛載都可以在系統啟動后再行掛載
修復順序:先修復/etc/fstab,再修復/boot,因為修復/boot需要根的掛載
進入救援模式;
#df 查看掛載情況
#blkid或者#fdisk -l 查看分區情況
#mkdir /mnt/tmp
#mount /dev/sda* /mnt/tmp
臨時掛載試查找哪個分區是boot分區和根分區
假如查找結果/dev/sda1是boot分區,/dev/sda2是根分區
#mount /dev/sda2 /mnt/tmp
臨時掛載根分區,并在根分區中手動建立/etc/fstab文件
#cd /mnt/tmp/etc
#vi /etc/fstab
/dev/sda1 /boot ext4 defaults 1 1
/dev/sda2 / ext4 defaults 1 2
重新啟動,再次進入救援模式
$chroot /mnt/sysimage
$rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-642.el6.x86_64.rpm –force
$grub-install /dev/sda
然后切換至/boot/grub下,$vim grub.conf參考寫入以下內容:
default=0
timeout=5
title centos6.8-shan
kernel (hd0,0) /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/sda2
initrd (hd0,0)/initramfs-2.6.32-642.el6.x86_64.img
然后退出重啟即可
原創文章,作者:18612763863,如若轉載,請注明出處:http://www.www58058.com/45927