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
隱藏菜單界面
splashp_w_picpath =圖像文件全路徑名
指定某文件作為啟動菜單的背景圖像
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???????????????
???????????? splashp_w_picpath=(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/sysp_w_picpath)
2)? #grub
grub>root? (hdx,y)?
grub>root? (hdx)
l? 恢復GRUB的配置文件
由于grub.conf設置的問題,可以采用以下方法進行恢復:
1)? 放入第一張安裝啟動盤,開始啟動計算機:boot:linux rescue(啟動linux的修復模式)
2)#vi?? /mnt/sysp_w_picpath/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
轉載于:https://blog.51cto.com/sswqzx/1971537
總結
以上是生活随笔為你收集整理的Linux用户管理(五)Linux系统的启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Head First 设计模式》学习笔
- 下一篇: Linux中main是如何执行的