第七周

1、簡述linux操作系統啟動流程

inux系統啟動流程大致是這樣的:

post ->BIOS(Boot Sequence) –> MBR(GRUB) –> Kernel(ramdisk) –> rootfs –> /sbin/init(/etc/inittab)

BIOS

主板在接通電源后,BIOS會第一個獲得系統的控制權。BIOS首先會對系統硬件進行檢測(POST, Power On Self Test, 上電自檢),自檢測過程大致為:加電-CPU-ROM-BIOS-System Clock-DMA-64KB RAM-IRQ-顯卡等。如果關鍵部件有問題,計算機會發出報警聲。

自檢一切正常后BIOS會調用一些設備自身ROM中的初始化代碼,對這些設備進行初始化,比如顯卡。這時可以看到一些初始化信息,介紹生產廠商、芯片類型等內容。

最后,BIOS會根據COMS中設置的啟動順序(Boot Sequence),依次嘗試啟動。當啟動設備是硬盤時,BIOS會把系統控制權交給硬盤MBR中的bootloader。

MBR

MBR是Master Boot Record的簡寫, 即主引導記錄。MBR記錄一般在磁盤 0 磁道 1 扇區,共512個字節。前446個字節是BootLoader(引導程序),后 4*16 的 64 個字節是存放分區信息的,最后 2 個字節是校驗信息,一般是 55AA。

大多數Linux系統使用GRUB作為BootLoader。GRUB可以引導多種操作系統,它可以識別磁盤文件系統的格式,所以只需要內核文件名和內核所在分區就可以加載內核,通過/boot/grub/grub.conf文體來配置這些信息。

GRUB分為3個階段:

bootloader:1階段

Stage1 的代碼保存在MBR中前446字節。

 

partition:filesystem driver 1.5階段

Stage1_5的代碼允許GRUB識別多種類型的文件系統,識別每個文件系統的代碼的代碼保存在/boot/grub/*stage1_5 的文件中。

 

partition:/boot/grub,2階段

Stage 2 代碼讀取/boot/grub/grub.conf文件,決定如何加載內核

Kernel

GRUB的最后階段stage2會根據/boot/grub/grub.conf文件中的配置加載kernel到內存中,并將系統控制權交給kernel。

initrd是”initial RAM disk”的縮寫,隨kernel一起被GRUB加載進內存,在系統引導過程中掛載的一個臨時根文件系統。因為Kernel為了精簡,只保留了最基本的模塊,因此,Kernel上并沒有各種硬件的驅動程序,也就無法識rootfs所在的設備,故產生了initrd這個文件,該文件裝載了必要的驅動模塊。

rootfs

真正的根文件系統,作為接手initrd的。

/sbin/init

/sbin/init進程是Linux啟動的第一個進程,PID=1。是所有傳統的 centos 5 中sysvinit 已經淡出歷史舞臺,新系統普遍采用 UpStart 和 systemd 。

運行級別

運行級別:為了系統的運行或維護等目的而設定的機制;

0-6 :7個級別;

0:關機 shutdown

1:單用戶模式,root用戶,無須認證,維護模式;

2:多用戶模式,會啟動網絡功能,但不會啟動NFS,維護模式;

3:多用戶模式,完全功能模式,文本界面,

4:預留級別,

5:多用戶級別,完全功能模式,圖形界面

6:重啟,reboot

2、簡述grub啟動引導程序配置及命令行接口詳解

GRUB(boot loader)

grub:0.x:grub legacy

grub: 1.x:grub2

grub legacy

stage1:mbr

stage1.5:mbr之后的扇區,讓stage1中的bootloader能識別stage2所在的分區上的文件系統;

stage2:磁盤分區(/boot/grub)

配置文件:/boot/grub/grub.conf,<—/etc/grub.conf

stage2及內核等通常放置于一個基本磁盤分區:

功用:

1.提供菜單,并提供交互式接口

e:編輯模式,用于編輯菜單:

c:命令模式,交互式接口:

2.加載用戶選擇的內核或操作系統

允許傳遞參數給內核

可隱藏此菜單

3.為菜單提供了保護機制

為編輯菜單進行認證

為啟用內核或操作系統進行認證

如何識別設備:

(hd#,#)

hd#:磁盤編號,用數字標識:從0開始編號

#:分區編號,用數字表示;從0開始編號 ?如:(hd0,0)

grub的命令行接口

help:獲取幫助列表

help keyword:獲得詳細幫助信息

find (hd0,0)/path/to/somefile:

root(hd0,0)

kernel /path/to/kernel_file:設定本次啟動時用到的內核文件:額外還可以添加許多內核支持使用的 ? ? ? ? ? ? ? ? cmdline參數:例如 ? init=/path/to/init,selinux=0

initrd /path/to/initramfs_file:設定為選定的內核提供額外文件的ramdisk;

boot:引導啟動選定的內核

手動在grub命令行幾口啟動系統

grub>root (hd0,0)

grub>kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE

grub>initrd /initramfs-VERSION-RELEASE.img

grub>boot

配置文件:/boot/grub/grub.conf

配置選項:

default=#:設定默認啟動的菜單項:編號從零開始

timeout=#:指定菜單項等待選項選擇的時長

splashimage=(hd0,0)/path/to/xpm_pic_file:指明菜單背景圖片文件路徑

heddenmenu:隱藏菜單

password [–md5] string:慘淡編輯認證

title title:定義菜單標題,可出現多次

root (hd0,0):grub查找stage2及kernel文件所在設備分區:為grub的根

kernel?/vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE:啟動的內核

initrd /initramfs-VERSION-RELEASE.img:內核匹配的ramfs文件

password [–md5] string:啟動選定的內核或操作系統時進行認證

grub-md5-crypt命令用來生成password密碼

進入單用戶模式:

1.編輯grub菜單(選定要編輯的title,而后使用e命令)

2.在選定的kernel后附加 1,s,S或single都可以

3.在kernel所在行,鍵入b命令

安裝grub:

1.grub-install

grub-install –root-directory=ROOT /dev/DISK

2.grub

grub>root (hd0,0)

grub>setup (hd0

3、實現kickstart文件制作與光盤鏡像制作

?安裝引導

??????ks:指明kickstart文件的位置;

???????????ks=

????????????????? ?DVD drive:ks=cdrom:/path/to/kickstart_file

?????????????????????Hard Drive:ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE

?????????????????????HTTP Server:ks=http://HOST:[PORT]/PATH/TO/KICKSTART_FILE

?????????????????????FTP Server:ks=ftp://HOST:[PORT]/PATH/to/KICKSTART_FILE

?????????????????????HTTPS Server:ks=https://HOST:[PORT]/PATH/TO/KICKSTART_FILE

??????kickstart文件的格式

???????????? 命令段:

?????????????????????指定各種安裝前配置選項,如鍵盤類型等;

???????????? 1.命令段中的必備命令:

?????????????????????authconfig:認證式配置

??????????????????????????authconfig –enableshadow –passalgo=sha512

?????????????????????bootloader:定義bootloader的裝置位置及相關配置

??????????????????????????bootloader –location=mbr –driveorder=sda -append=”crashkernel=auto rhgb quiet”

?????????????????????keyboadr:設置鍵盤類型

??????????????????????????keyboard us

?????????????????????lang:語言類型

??????????????????????????lang zh_CN.UTF-8

????????????????? ? part:分區布局;

???????????????????????????????part /boot –fstype=ext4 –size=500

???????????????????????????????part pv.008002 –size=51200

????????????????? ? rootpw:管理員密碼

???????????????????????????????rootpw –iscrypted ? ? ??????

???????timezone:時區

???????????????????????????????timezone Asia/Shanghai

?????????????????????補充:分區相關的其他指令

????????????????? ? clearpart:清除分區

??????????????????????????clearpart –none –drives=sda:清空磁盤分區;

?????????????????????volgroup:創建卷組

??????????????????????????? ?volgroup myvg –pesize=4096 pv.008002

?????????????????????logvol:創建邏輯卷

???????????????????????????????logvol /home –fstype=ext4 –name=lv_home –vgname=myvg –size=5120

?????????????????????生成加密密碼的方式:

????????????????????????????????????openssl passwd -1 salt `openssl rand -hex 4`

????????????????? ?2.可選命令:

??????????????????????????install OR upgrade:安裝或升級;

??????????????????????????text:安裝界面類型,text為tui,默認為GUI

??????????????????????????network:配置網絡接口

????????????????????????????????????network –onboot yes –device eth0 –bootproto dhcp –noipv6

??????????????????????????fairwall:防火墻

????????????????????????????????????firewall –disabled

??????????????????????????selinux:SELinux

????????????????????????????????????selinux:disabled

???????????

???????????? 程序包段

?????????????????????指明要安裝程序包,以及包組,也包括不安裝的程序包;

??????????????????????????%packages

??????????????????????????@group_name

??????????????????????????package

??????????????????????????-package

??????????????????????????%end

???????????? 腳本段

?????????????????????%pre:安裝前腳本

????????????????????????????????????運行環境:運行安裝介質上的微型linux系統環境;

?????????????????????%post安裝后腳本

????????????????????????????????????運行環境:安裝完成的系統;

?????????????????????

???????????系統安裝后禁用防火墻:

????????????????CentOS 6

??????????????????????????service iptables stop?????

???????????????????????????chkconfig iptables off

???????????? ? CentOS 7

??????????????????????????systemctl stop firewall

???????????系統安裝完成后禁用SELinux

?????????????????????編輯/etc/sysconfig/selinux或/etc/selinux/config文件,修改SELINUX參數的值為下面其中之一:

??????????????????????????permissive

??????????????????????????disabled

?????????????????????立即生效:

??????????????????????????getenforce

??????????????????????????setenforce 0

???????????定制kickstart文件:

?????????????????????yum install system-config-kickstart

?????????????????????system-config-kickstart ?圖形化的ks配置命令

???????????檢查語法錯誤:

????????????????ksvalidator

????????????光盤鏡像制作

1、將制作好的kickstart文件改名;

2、將光盤掛載上:

[root@dns ~]# mkdir /media/cdrom [root@dns ~]# mount /dev/cdrom /media/cdrom

3、新建myboot文件夾,將kickstart文件和isolinux文件一起放入;

[root@dns ~]# mkdir myboot [root@dns ~]# cp -r /media/cdrom/isolinux/ myboot/ [root@dns ~]# cp ks.cfg ./myboot/isolinux/ [root@dns ~]# rm -f ./myboot/isolinux/isolinux.cfg ?[root@dns ~]# cd ./myboot/isolinux/ [root@dns isolinux]# chmod +w *

4、最后執行光盤鏡像制作命令:

[root@dns ~]# mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V “centos 6 x86_64 boot” -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot/

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/102976

(0)
dxwssldxwssl
上一篇 2018-07-15
下一篇 2018-07-15

相關推薦

  • 新開始,新航程

    ? ? ? ?每一個夏天都是變動的季節,這個夏季我畢業了。大學最后的時光是在實驗室度過的,每天都被瓶瓶罐罐所包圍,鼻子里不時的飄進乙酸乙酯的香味,研究完了生物柴油的催化,是時候該為自己的未來找一條出路了。 ? ? ? ? 大二的時候出于對計算機的著迷,一不小心點進了51cto,從此就走上了不歸路。從計算機網絡到linux,再到mysql,我在這個世界里樂此不…

    Linux筆記 2018-07-21
  • DNS服務、BIND

    DNS:domain name service,協議(C/S,udp53,tcp53) BIND:bekerley internat name domain 注意:named程序的啟動用戶是named用戶,非root用戶,因此需要注意權限和屬主。 本地名稱解析配置文件:hosts linux:/etc/hosts windows:%WINDOWS%/syst…

    2018-03-26
  • Linux 文本工具

    grep

    2018-04-11
  • linux下練習及答案

    1.顯示當前時間,格式:201-06-18 ?10:20:30 2.顯示前天是星期幾 3.設置當前日期為2019-08-07 06:05:10 4、在本機字符終端登錄時,除顯示原有信息外,再顯示當前登錄終端號,主機名和當前時間 6.今天19:30自動關機,并提示用戶 7.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄 …

    2018-03-31
  • shell腳本編程示例

    #!/usr/bin/expectspawn scp /etc/fstab 192.168.8.100:/appexpect {“yes/no” { send “yes\n”;exp_continue }“password” { send “magedu\n” }}expec…

    2018-05-12
  • Linux學習從入門到打死也不放棄,完全筆記整理(持續更新)

    這是一片學習筆記的匯總,同步51cto,查看內容請點擊各章節介紹。

    Linux筆記 2018-04-07
欧美性久久久久