Linux用戶管理(五)Linux系統的啟動
Linux系統的啟動
一.啟動步驟和GRUB
1.Linux啟動過程分析
(1)BIOS自檢
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
3.GRUB
(1)GRUB簡介
GRUB是一種基於intel平臺的功能強大的啟動引導器
(2)GRUB特點
l 支持大硬盤,突破1024柱面的限制
l 支持兩種界面(菜單,命令行)
l 開機畫面
(3)安裝GRUB
l 安裝軟件包
#rpm –ivh grub-0.934.i386.rpm
l 使用安裝命令安裝GRUB到MBR
#grub
grub>root (hdx,y)
grub>setup (hdx[,y])
(4)GRUB的配置
#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,2)
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
(5)GRUB的FAQ
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]) //安裝GURB到MBR/指定分區的引導扇區中
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
2)C:\>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文件由若幹個記錄構成,每條記錄格式如下:
ID:RUNLEVEL:ACTION:COMMAND
以下為默認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 | 系統引導則運行,優先於boot或bootwait |
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.用戶登錄命令
(1)su
功能:切換用戶登錄
格式:#su [參數] [-] [用戶名]
參數:-c 命令 :運行指定的命令
-m :不重新設置環境變量
-s shell路徑 :運行指定的shell
- :連同工作環境一起切換
實例:$su -
#su user1
$su -c /sbin/init 0 root
(2)exit
功能:退出用戶環境(ctrl+d)
格式:#exit
(3)login
功能:登錄系統
格式:#login [參數] [用戶名]
參數:
-p:通知login保持現在的環境參數
-h:用來向遠程登錄的主機傳輸用戶名
實例:#login
(4)logout
功能:退出用戶環境、註消用戶
實例:#logout
(5)sudo
功能:以其它用戶執行指定的命令,默認是以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代表執行文件時不需要要口令
(6)who
功能:顯示登錄用戶信息
格式:#who [參數]
參數:-l 顯示系統登錄進程
-b 顯示系統最後一次啟動時間
實例:#who
#who -l
(7)w
功能:顯示登錄用戶信息
格式:#w [用戶]
實例:#w
(8)whoami
功能:顯示當前終端登錄的用戶名稱
實例:#whoami
(9)last
功能:顯示最近的用戶登錄情況
格式:#last [參數]
參數:num 顯示指定終端上的用戶登錄信息
-num 顯示最近n次的用戶登錄信息
-i 顯示登錄主機的IP地址
實例:#last
#last 3
(10)wall
功能:向每個用戶終端上的用戶發送消息
格式:#wall [參數]
參數:-n 不顯示消息來源
實例:#wall
#wall -n
(11)write
功能:向指定終端的用戶發送消息
格式:#write 用戶名 [終端]
實例:#write user1 tty1
註意:/etc/motd為公告板文件,用於記錄所有公告信息;/etc/issue為歡迎信息文件
(12)help
功能:獲取shell內置命令的幫助信息
格式:#help [內置命令名]
實例:#help
#help times
(13)man
功能:打開命令手冊文件
格式:#man [命令名/文件名]
實例:#man su
本文出自 “Linux獄長” 博客,請務必保留此出處http://sswqzx.blog.51cto.com/2494644/1971537
Linux用戶管理(五)Linux系統的啟動