1. 程式人生 > >Linux用戶管理(五)Linux系統的啟動

Linux用戶管理(五)Linux系統的啟動

linux系統啟動

Linux系統的啟動

一.啟動步驟和GRUB

1Linux啟動過程分

1BIOS自檢

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進程(按“i”單步運行)

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

3GRUB

1GRUB簡介

GRUB是一種基於intel平臺的功能強大的啟動引導器

2GRUB特點

l 支持大硬盤,突破1024柱面的限制

l 支持兩種界面(菜單,命令行)

l 開機畫面

3)安裝GRUB

l 安裝軟件包

#rpm –ivh grub-0.934.i386.rpm

l 使用安裝命令安裝GRUBMBR

#grub

grub>root (hdx,y)

grub>setup (hdx[,y])

4GRUB的配置

#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,)

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

5GRUBFAQ

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]) //安裝GURBMBR/指定分區的引導扇區中

grub>hide 分區 //隱藏分區

grub>cat 文件名 //顯示文件內容

grub>find 文件名 //查找文件

l 如果MBR中的GRUB引導程序被其它程序覆蓋,應該如該恢復

1) 放入第一張安裝啟動盤,開始啟動計算機:boot:linux rescue(啟動linux的修復模式,加載硬盤上的LINUX系統到/mnt/sysimage

2) #grub

grub>root (hdx,y)

grub>root (hdx)

l 恢復GRUB的配置文件

由於grub.conf設置的問題,可以采用以下方法進行恢復:

1) 放入第一張安裝啟動盤,開始啟動計算機:boot:linux rescue(啟動linux的修復模式)

2#vi /mnt/sysimage/boot/grub/grub.conf

l 如何利用GRUB進入單用戶模式,找回丟失的root用戶口令

GRUB菜單界面中按e編輯linux菜單項,給內核後面添加參數single

然後回車再按b進單用戶模式、password root就可以了。

l 如何卸載GRUB

1#rpm -e grub

2C:\>fisk/mbr

二.init 進程

1. init進程的作用

init進程是系統啟動第一個進程,它負責加載其它進程、管理系統的其它進程

2. 系統運行級別

運行級別

說明

0

關機

1

單用戶模式

2

多用戶模式、不支持NFS

3

多用戶模式

4

保留

5

X-WINDOWS

6

重啟

可以使用init在各個運行級別中進行切換,init命令格式如下:

#init <0-6,a,s,q>

3. inittab文件的分析

/etc/inittab文件用於設置init進程在執行時加載哪些程序,inittab文件由若幹個記錄構成,每條記錄格式如下:

IDRUNLEVELACTIONCOMMAND

以下為默認inittab文件內容:

id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc0

l1:1:wait:/etc/rc.d/rc1

l2:2:wait:/etc/rc.d/rc2

l3:3:wait:/etc/rc.d/rc3

l4:4:wait:/etc/rc.d/rc4

l5:5:wait:/etc/rc.d/rc5

l6:6:wait:/etc/rc.d/rc6

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

說明:

(1)Action用於設置調用進程的方式

Respawn

只要進程停止,該進和便重新啟動

Wait

進程運行一次,init等待到它停止

Once

進程運行一次

Boot

系統引導過程中,進程運行,忽略等級

Bootwait

系統引導過程中,進程運行,init等待結束

Off

無任何行動

Initdefault

系統默認運行等級

Sysinit

系統引導則運行,優先於bootbootwait

Powerwait

電源故障後發送信號給init,等待進程終止

Ctrlaltdel

init收到SIGINT信號時,該進程運行

Powerokwait

UPS恢復則向init發送SIGINT信號

2 修改/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 系統初始腳本,用於設置系統的時鐘、加載鍵盤、加載系統字體、加載其他文件系統、激活交換分區、生成日誌文件

三.用戶登錄

1.用戶登錄過程

技術分享



2.用戶登錄命令

1su

功能:切換用戶登錄

格式#su [參數] [-] [用戶名]

參數:-c 命令 :運行指定的命令

-m :不重新設置環境變量

-s shell路徑 :運行指定的shell

- :連同工作環境一起切換

實例$su -

#su user1

$su -c /sbin/init 0 root

2exit

功能:退出用戶環境(ctrl+d

格式#exit

3login

功能:登錄系統

格式:#login [參數] [用戶名]

參數:

p:通知login保持現在的環境參數

h:用來向遠程登錄的主機傳輸用戶名

實例:#login

4logout

功能:退出用戶環境、註消用戶

實例:#logout

5sudo

功能:以其它用戶執行指定的命令,默認是以root身份,只有/etc/sudoers文件中指定的用戶有權執行

格式:#sudo [參數] 命令

參數:

-b  在後臺執行指令

-H 將HOME環境變量設為新身份的HOME環境變量。
-k  結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼。
-l  列出目前用戶可執行與無法執行的指令。
-p  改變詢問密碼的提示符號。
-s  執行指定的shell
-u<用戶>  以指定的用戶作為新的身份。若不加上此參數,則預設以root作為新的身份。
-v  延長密碼有效期限5分鐘。
實例:#sudo /sbin/init 0

說明:/etc/sudoers文件格式為:user host=[all/nopasswd/run as 用戶名] command lint;其中All代表所有文件,nopasswd代表執行文件時不需要要口令

6who

功能:顯示登錄用戶信息

格式:#who [參數]

參數:-l 顯示系統登錄進程

-b 顯示系統最後一次啟動時間

實例:#who

#who -l

7w

功能:顯示登錄用戶信息

格式:#w [用戶]

實例:#w

8whoami

功能:顯示當前終端登錄的用戶名稱

實例#whoami

9last

功能:顯示最近的用戶登錄情況

格式:#last [參數]

參數:num 顯示指定終端上的用戶登錄信息

-num 顯示最近n次的用戶登錄信息

-i 顯示登錄主機的IP地址

實例:#last

#last 3

10wall

功能:向每個用戶終端上的用戶發送消息

格式:#wall [參數]

參數:-n 不顯示消息來源

實例:#wall

#wall -n

11write

功能:向指定終端的用戶發送消息

格式:#write 用戶名 [終端]

實例:#write user1 tty1

註意:/etc/motd為公告板文件,用於記錄所有公告信息;/etc/issue為歡迎信息文件

12help

功能:獲取shell內置命令的幫助信息

格式:#help [內置命令名]

實例:#help

#help times

13man

功能:打開命令手冊文件

格式:#man [命令名/文件名]

實例:#man su


本文出自 “Linux獄長” 博客,請務必保留此出處http://sswqzx.blog.51cto.com/2494644/1971537

Linux用戶管理(五)Linux系統的啟動