Linux課程學習筆記來源於網易雲課堂:Linux 入門基礎
1 Linux系統啓動流程:
BIOS à MBR: Boot Code(引導代碼)à 執行引導程序 - GRUBà 加載內核 à執行inità runlevel
2 BIOS
BIOS(Basic Input Output System),基本輸入輸出系統,一般保存在主板的BIOS芯片中
計算機啓動的時候第一個運行的就是BIOS,BIOS負責檢查硬件並且查找可啓動的設備
可啓動的設備在BIOS設置中進行定義,如USB、CDROM、HD
3 MBR
BIOS找到可啓動設備後執行引導代碼
引導代碼爲MBR的前446字節
4 GRUB
1) Grub是現在linux使用的主流引導程序
2) grub可以用來引導幾乎所有操作系統
3) 相關文件保存在/boot/grub中
stage1 MBR
stage1_5 //stage1執行完之後再執行的
stage2 //stage1_5執行完之後再執行的
內核
4) 配置文件爲/boot/grub/grub.conf,通過vim顯示,#後的是註釋語句
5) 配置格式:
default=0 //啓動默認配置0
timeout=3 //開機時的,默認時間倒計時,如果不需要,可以改成0
splashimage=(hd0,1)/boot/grub/splash.xpm.gz //啓動時的背景圖片,可以自己定製,設置爲.xpm格式,放在/boot/grub/目錄下
hiddenmenu //隱藏菜單
title centos //名字可以隨便改
root(hd0,1) //啓動分區,在第一個硬盤(hd0)的第2各分區下
kernel /vmlinuz-2.6.32-279.el6.x86_64 roroot=UUID=b18ec4b9-367b-4e76-b180-e7e518f6adf2 rd_NO_LUKS rd_NO_LVMLANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgbquiet
//先啓動內核kernel,在/boot/vmlinuz-2.6.32-279.el6.i686目錄下。後面的都是參數設置。
initrd /initramfs-2.6.32-279.el6.x86_64.img
5 kernel(內核)
1) MBR的引導代碼將負責找到並加載linux內核
2) Linux內核保存在/boot/vmlinuz-2.6.32-279.el6.1686
3) 一般還會加載內核模塊打包文件:/boot/initramfs-2.6.32-279.el6.i686.img
4) Linux爲了保持kernel的精簡,將一些不常用的驅動、功能編譯成模塊,在需要的時候動態加載,而這些模塊被打包保存爲一個initramfs文件。
5) 早期版本的linux使用initrd文件,initramfs是initrd的替代優化版本,比initrd更加節省空間、更加靈活。
6) 命令dmesg可以查看本次啓動時內核的輸出信息。同樣的信息也保存在/var/log/dmesg文件中
6 INIT
內核啓動完畢就會運行init進程
1) init 是linux系統中運行的第一個進程,是所有進程的附進程。
2) init負責使用/etc/rc.d/rc.sysinit負責對系統進行初始化,掛載文件系統,並且根據運行級別啓動相應服務
3) linux運行級別:
0 關機
1 單用戶模式
2 不帶網絡的多用戶模式
3 多用戶模式(沒有圖形界面)
4 未使用
5 xll圖形化多用戶
6 重新啓動
top 命令可以查看PID,其中1爲init
4) 默認的運行級別可以通過文件/etc/inittab 下修改,修改其中的id:5:initdefualt中的數字即可,或者在/etc/init/目錄下修改,此目錄下有較多的設置文件。
5) 每個級別對應的啓動服務保存在/etc/rc.d/rc[0123456].d中
6) runlevel 顯示當前及上一個運行級別
7) 命令init可以改變當前運行級別,init3 可以切換到3級別
7 單用戶修改root密碼
1) 爲內核傳遞參數‘1’或者“single”系統進入單用戶
2) 單用戶模式下不啓動任何服務
3) 單用戶模式直接以root用戶登錄,並且不需要密碼
4) 可以使用passwd修改root密碼
忘記root密碼時,可以在啓動界面的時候,通過上下鍵進入pause界面,傳遞參數‘1’或者“single”系統進入單用戶。
8 GRUB加密
通過啓動界面(重新啓動,通過物理按鍵)進入單用戶模式,存在安全隱患,需要通過GRUB加密對引導進行加密。
1) 通過在grub.conf中的啓動配置中加入如下參數即可對grub進行加密:
Password –md5$1$aoWpTe$/MWUUYbBIF.2RUZK8nbWU0 //$後面的是通過grub進行加密後的密碼
2) 加密後的密碼可以通過grub-md5-crypt生成