系統啟動和內核管理-1

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

(0)
1861276386318612763863
上一篇 2016-09-13
下一篇 2016-09-13

相關推薦

  • MySQL/MariaDB DML操作之Select

    前言 上文我們已經講解了MySQL/MariaDB的基礎知識和DDL相關操作,接下來我們來說一下MySQL/MariaDB的DML操作,因select查詢較復雜也較重要,所以本文主要是對select查詢的詳解。 DML操作 DML之select 投影查詢 select col_name,[col_name1,…] from …

    Linux干貨 2015-05-07
  • 程序包管理之YUM解析

    前言:    yum是rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,如果直接使用rpm直接安裝程序包也可以,但是需要自己手工解決程序包依賴性的問題,可能程序包的依賴性非常復雜,那么直接使用rpm安莊,就會非常麻煩,而使用YUM安裝就會自動解決依賴性的問題。大大簡化了安裝過程。  YUM客戶端配置文件: …

    Linux干貨 2016-08-24
  • linux 目錄結構

    該文章主要來自于網絡資料進行整理 目錄結構參考地址: http://www.iteye.com/topic/1125162 http://yangrong.blog.51cto.com/6945369/1288072 http://itlab.idcquan.com/linux/administer/939529_1.html http://itlab.id…

    系統運維 2015-12-19
  • 初識Linux之——Linux是如何誕生的

    初識Linux之——Linux是如何誕生的 對于大多數初次接觸Linux的童鞋,可能會非常好奇什么是Linux?它是做什么的?為什么那么多高手都喜歡Linux?Linux是如何產生出來的呢?本文將為大家解答釋疑,讓大家對Linux有一個清晰的概念。 Linux是什么 簡單來說,如Windows7、Windows10、安卓、IOS等,Linux是一個計算機操作…

    Linux干貨 2016-10-14
  • linux中更改文件權限的實驗

      三種基本權限    r 讀 數值表示為4 w寫 數值表示為2 X 可執行數值表示為1              簡單舉例: -rw-rw-r–共十個字符,分成四段 第一個字符“-”表示普通文件;這個位置還可能會出現“l”鏈接;“d”表示目錄 第…

    2017-07-15
  • Nginx配置與應用詳解

    前言 Nginx是由俄羅斯軟件工程師Igor Sysoev開發的一個高性能的HTTP和反向代理服務器,具備IMAP/POP3和SMTP服務器功能。Nginx最大的特點是對高并發的支持和高效的負載均衡,在高并發的需求場景下,是Apache服務器不錯的替代品。目前,包括新浪、騰訊等知名網站都已使用Nginx作為Web應用服務器。本文帶來的是Nginx配置與應用詳…

    Linux干貨 2015-06-15
欧美性久久久久