日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux主引導(dǎo)記錄:了解引導(dǎo)過程,保證系統(tǒng)安全運(yùn)行(linux主引導(dǎo)記錄)

Linux主引導(dǎo)記錄是指Linux操作系統(tǒng)在啟動時(shí)從硬盤讀取的引導(dǎo)程序,它由MBR(主引導(dǎo)記錄)、BootLoader(引導(dǎo)程序)和內(nèi)核文件組成。其中MBR是硬盤的之一個(gè)扇區(qū),負(fù)責(zé)加載BootLoader,而BootLoader則負(fù)責(zé)加載內(nèi)核文件,使Linux操作系統(tǒng)得以啟動。在Linux系統(tǒng)中,主引導(dǎo)記錄和引導(dǎo)程序的角色非常重要,需要我們深入了解其實(shí)現(xiàn)過程和相關(guān)原理,以保證系統(tǒng)的安全運(yùn)行。

從策劃到設(shè)計(jì)制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、申請域名、網(wǎng)頁空間、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。

一、MBR

MBR是硬盤的之一個(gè)扇區(qū),它的作用是在Linux操作系統(tǒng)啟動時(shí),將操作系統(tǒng)的引導(dǎo)程序讀取到內(nèi)存中。MBR分為三個(gè)部分,分別是BootStrap、Partition Table和MBR驗(yàn)證區(qū)。

1. BootStrap:其作用是在主引導(dǎo)記錄被加載到內(nèi)存中后,將引導(dǎo)程序的執(zhí)行入口轉(zhuǎn)移到Partition Table所指向的分區(qū)。BootStrap的大小為446字節(jié)。

2. Partition Table:用于存儲操作系統(tǒng)所在的分區(qū)地址信息,可以存儲4個(gè)分區(qū)的地址。每個(gè)分區(qū)占16字節(jié),其中前4個(gè)字節(jié)表示該分區(qū)的起始磁頭號、起始扇區(qū)號和起始柱面號;后4個(gè)字節(jié)表示該分區(qū)的結(jié)束磁頭號、結(jié)束扇區(qū)號和結(jié)束柱面號;而中間8個(gè)字節(jié)則用來存儲分區(qū)的屬性。

3. MBR驗(yàn)證區(qū):其作用是驗(yàn)證主引導(dǎo)記錄的正確性,通常是由硬盤制造廠商固化在硬盤中的一段程序,用于防止MBR被惡意程序篡改,保障硬盤的安全性。

二、BootLoader

BootLoader是引導(dǎo)程序,它的作用是在讀取MBR存儲的分區(qū)信息后,將操作系統(tǒng)的內(nèi)核文件加載到內(nèi)存中,并啟動操作系統(tǒng)。常用的Linux BootLoader有GRUB和LILO。

1. GRUB(GRand Unified Bootloader):是目前Linux系統(tǒng)中最為流行的BootLoader,它支持多種文件系統(tǒng)格式,并且可以直接引導(dǎo)Windows系統(tǒng)等其他操作系統(tǒng)。GRUB代碼被分解成多個(gè)階段,具有更好的分段靈活性,可以通過命令行來展開補(bǔ)丁和修改MBR。

2. LILO(LInux LOader):是Linux系統(tǒng)中最早的BootLoader之一,它可以從硬盤和軟盤啟動操作系統(tǒng)。LILO代碼較為簡單,功能相比GRUB有所不足,但啟動速度較為快速。

三、內(nèi)核文件

內(nèi)核文件是Linux操作系統(tǒng)的核心,它包含了Linux操作系統(tǒng)的全部功能模塊。在啟動Linux操作系統(tǒng)時(shí),BootLoader首先加載內(nèi)核文件,其大小一般在1MB左右,并將其解壓縮后加載到內(nèi)存中,然后啟動Linux系統(tǒng),最終實(shí)現(xiàn)整個(gè)啟動過程。

在正式進(jìn)入操作系統(tǒng)內(nèi)核之前,BootLoader會加載一個(gè)小型的initrd文件系統(tǒng),以讓內(nèi)核能夠訪問到必要的設(shè)備驅(qū)動程序,如網(wǎng)卡驅(qū)動、USB驅(qū)動等等。

Linux主引導(dǎo)記錄、引導(dǎo)程序和內(nèi)核文件是Linux系統(tǒng)啟動過程中的關(guān)鍵部分,深入了解其實(shí)現(xiàn)原理和相關(guān)機(jī)制,具有重要意義。除了MBR驗(yàn)證區(qū)外,主要需要保護(hù)的是BootLoader和內(nèi)核文件,這兩者易于被攻擊者利用,在操作上也需要更加謹(jǐn)慎。正確理解并實(shí)踐優(yōu)秀的安全策略,是確保Linux系統(tǒng)穩(wěn)定運(yùn)行和保證網(wǎng)絡(luò)安全的關(guān)鍵。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220

求助:LINUX常用SHELL命令

分類: 電腦/網(wǎng)絡(luò) >> 操作系統(tǒng)/系統(tǒng)故障

問題描述:

歡迎大家的投稿!!!!!!!

解析:

LINUX常用命令

1 文件與目錄操作命令

1.1文件內(nèi)容查詢命令

grep、fgrep、egrep

CODE:語法:grep

選項(xiàng):

QUOTE:

-E 每個(gè)模式作為一個(gè)擴(kuò)展的正則表達(dá)式對待

-F 每個(gè)模式作為一組固定字符串對待,而不作為正則表達(dá)式

-i 比較時(shí)不區(qū)分大小寫

-l 顯示首次匹配匹配串所在的文件名并用換行符將其分開。當(dāng)在文件中多次出現(xiàn)匹配串時(shí),不重復(fù)顯示次文件名;

-x 只顯示整行嚴(yán)格猛衫匹配的行

1.2文件查找命令 find、locate

語法:

CODE:find 起始目錄 尋找條件 操作

以名稱和文件屬性查找

QUOTE:

-name‘字串‘ 查找文件名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、。

-lname‘字串‘ 查找文件名匹配所給字串的所有符號鏈接文件,字串內(nèi)可用通配符*、?、。

-gid n 查找屬于ID號為n的用戶組的所有文件。

-uid n 查找屬于ID號為n的用戶的所有文件。

-group‘字串‘ 查找屬于用戶組名為所給字串的所有的文件。

-user‘字串‘ 查找屬于用戶名為所給字串的所有的文件。

-path‘字串‘ 查找路徑名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、。

-perm 權(quán)限 查找具有指定權(quán)限的文件和目錄,權(quán)限的表示可以如711、644。

-type x 查找類型為 x的文件,

語法:locate 相關(guān)字

1.3文件的復(fù)制、刪除和移動命令

文件復(fù)制命令

CODE:cp 源文件或目錄 目標(biāo)文件或目錄

選項(xiàng):

QUOTE:

– a 通常在拷貝目錄時(shí)使用

-d 拷貝時(shí)保留連接

-f 刪除已經(jīng)存在的目標(biāo)文件而不提示

-i 和f選項(xiàng)相反

-p 此時(shí)cp除復(fù)制源文件內(nèi)容外,還將其修改的時(shí)間和訪問權(quán)限也復(fù)制到新文件中

-r 若給出的源文件是一目錄文件,此時(shí)cp將遞歸復(fù)制該目錄下的所有的子目錄和文件,此時(shí)目標(biāo)文件必須為一個(gè)目錄名;

-l 不作拷貝,只是鏈接文件

文件移動命令

CODE:mv 源文件或目錄 目標(biāo)文件或目錄

QUOTE:

-i 交互式操作

-f 禁止交互式操作

文件刪除命令

CODE:rm 文件…

QUOTE:

-f 忽略不存在的文件,從不給出提示

-r 指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除

-i 進(jìn)行交互式刪除

1.4文件鏈接命令

CODE:ln 目標(biāo) 或 ln 目標(biāo) 目錄

QUOTE:

選項(xiàng):

– s 建立符號鏈接

1.5目錄的創(chuàng)建和刪除命令

mkdir 創(chuàng)建一個(gè)目錄

語法:

CODE:mkdir dirname

選項(xiàng):

– m 對新建目錄設(shè)置存取權(quán)限

-p 可以是一個(gè)路徑名稱。此時(shí)若路徑中的某些目錄尚不存在,加上此選項(xiàng)后,系統(tǒng)將自動建立好那些尚不存在的目錄,即一次可以建立多枝裂腔個(gè)目錄。

rmdir 刪除空目錄

語法:

CODE:rmdir dirname

QUOTE:

選項(xiàng):

– p 遞歸刪除目錄dirname,當(dāng)子目錄刪除后其父目錄為空時(shí),也一同被刪除。

1.6改變工作目錄,顯示目錄內(nèi)容命令

1、改變工作目錄:

CODE:cd

2、顯示當(dāng)前工作的目錄的絕對路徑:

CODE:pwd

3、顯示源行目錄內(nèi)容:

CODE:ls

QUOTE:

選項(xiàng):

– a 顯示指定目錄下所有子目錄與文件,包括隱藏文件;

-c 按照文件的修改時(shí)間排序

-C 分成多列顯示各項(xiàng)

-d 如果參數(shù)是目錄,只顯示其名稱而不顯示其下的個(gè)文件

-F 在目錄名后面標(biāo)記“/”,可執(zhí)行文件后面標(biāo)記“*”,符號鏈接后面標(biāo)記“@”,管道(或FIFO)后面標(biāo)記“|”,socket文件后面標(biāo)記“=”。

-l 以長格式來顯示文件的詳細(xì)信息

-L 若指定的名稱為一個(gè)符號鏈接,則顯示鏈接所指向的文件

-t 顯示時(shí)按修改時(shí)間而不是名字排序

-u 顯示時(shí)按文件上次存取的時(shí)間而不是名字排序

4、改變文件或目錄的訪問權(quán)限命令

CODE:chmod 文件名?

QUOTE:

Who選項(xiàng):

– u表示用戶,即文件和目錄的所有者

-g表示同組用戶

-o(other)表示其他用戶

-a (all)表示所有用戶

QUOTE:

操作符號:

+ 添加某個(gè)權(quán)限 – 取消某個(gè)權(quán)限

= 賦予給定權(quán)限并取消其他所有的權(quán)限(如果有的話)

QUOTE:

mode 選項(xiàng):

– r 可讀

-w 可寫

-x 可執(zhí)行

CODE:chgrp group filename? 改變目錄或文件所屬的組

CODE:chown 用戶或組 文件

1.7備份與壓縮命令

1、tar命令 為文件和目錄創(chuàng)建檔案

語法:

CODE:tar 文件或者目錄

QUOTE:

u 主選項(xiàng)

c 創(chuàng)建新的檔案文件。如果用戶想備份一個(gè)目錄或是一些文件,則選此項(xiàng)

r 把要存檔的文件追加到檔案文件的末尾

t 列出檔案文件的內(nèi)容,查看已經(jīng)備份了哪些文件;

u 更新文件

x 從檔案文件中釋放文件;

u 輔助選項(xiàng)

b 該選項(xiàng)為磁帶機(jī)設(shè)定的,其后跟一位數(shù)字,用來說明區(qū)塊的大小,系統(tǒng)預(yù)設(shè)值為20

f 使用檔案文件或設(shè)備,這個(gè)選項(xiàng)通常是必選的

k 保存已經(jīng)存在的文件。例如把某個(gè)文件還原,在還原的過程中,遇到相同的文件,不會進(jìn)行覆蓋;

m 在還原文件時(shí),把所有文件的修改時(shí)間設(shè)定為現(xiàn)在;

M 創(chuàng)建多卷的檔案文件,以便在幾個(gè)磁盤中存放;

v 詳細(xì)報(bào)告tar處理的文件信息

w 每一步都要求確認(rèn)

z 用gzip來壓縮/解壓縮文件

2、gzip命令 壓縮/解壓縮命令

語法:

CODE:gzip 壓縮(解壓縮)的文件名

QUOTE:

選項(xiàng):

-c 將輸出寫到標(biāo)準(zhǔn)輸出上,并保留原有文件

-d 將壓縮文件解壓

-l 顯示每個(gè)壓縮文件的詳細(xì)信息

-r 遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮

-t 測試、檢查壓縮文件是否完整

-v 對每一個(gè)壓縮和解壓的文件,顯示文件名和壓縮比

3、unzip 命令

用MS windows下的壓縮軟件winzip壓縮的文件在linux系統(tǒng)下展開

語法:

CODE:unzip 壓縮文件名.zip

QUOTE:

選項(xiàng):

-x 文件列表 解壓縮文件,但不包括指定的file文件

-v 查看壓縮文件目錄,但不解壓

-t 測試文件有無損壞 ,但不解壓

-d 目錄 將壓縮文件解到指定目錄下

-z 只顯示壓縮文件的注解

-n 不覆蓋已經(jīng)存在的文件

-o 覆蓋已經(jīng)存在的文件且不要求用戶確認(rèn)

-j 不重建文檔的目錄結(jié)構(gòu),把所有文件解壓到同一目錄下

1.8在LINUX環(huán)境下運(yùn)行DOS命令

linux系統(tǒng)提供了一組稱為mtools的可移植工具,可以讓用戶輕松地從標(biāo)準(zhǔn)的DOS軟盤上讀寫文件和目錄。

QUOTE:

mcd 目錄名 改變MSDOS目錄

mcopy 源文件 目標(biāo)文件 在MSDOS和UNIX之間復(fù)制文件;

mdel 目錄名 刪除MSDOS目錄

mdir 目錄名 顯示MSDOS目錄

mformat 驅(qū)動器號 在低級格式化的軟盤上創(chuàng)建MSDOS文件系統(tǒng)

rnlabel 驅(qū)動器號 產(chǎn)生MSDOS卷標(biāo)

mmd 目錄名 刪除MSDOS目錄

mren 源文件 目標(biāo)文件 重新命名已存在的MSDOS文件

mtype 文件名 顯示MSDOS文件的內(nèi)容

2 設(shè)備管理命令

1)linux采用下面的形式定義一個(gè)IDE硬盤:

CODE:/dev/hd

2)SCSI硬盤使用同樣的機(jī)制表示:

CODE:/dev/sd

3)對于一般的LINUX分區(qū),可以用mkfs將其格式化并生成文件系統(tǒng),命令如下:

CODE:mk2fs –c ; ;

4)裝載文件系統(tǒng):

CODE:mount –t ext2 partition mountpiont

其中,

QUOTE:

-t為指定裝載文件系統(tǒng)的類型;

-o指定一些選項(xiàng),如只讀ro,可讀可寫rw等等;

partition定義分區(qū)名稱;

mountpiont定義文件系統(tǒng)被裝載的目錄名稱。

5)裝載CD-ROM文件系統(tǒng):

CODE:mount –t iso9660 –r /dev/cdrom /mnt/cdrom

6)裝載軟驅(qū)文件系統(tǒng):

CODE:mount –t msdos –rw /dev/fd0 /dev/mnt/floppy

7)卸載文件系統(tǒng)

CODE:umount /mnt/cdrom

磁帶設(shè)備的安裝要注意以下幾點(diǎn):

QUOTE:

1、 首先要選擇一個(gè)唯一的SCSI ID號,然后再將設(shè)備鏈接到適當(dāng)?shù)奈恢?/p>

2、 選擇驅(qū)動程序。

3、 生成設(shè)備文件。SCSI磁帶設(shè)備的主要設(shè)備號是9,次要設(shè)備號是0。設(shè)備文件名通常是/dev/nrst0(不支持回繞的磁帶設(shè)備)或/dev/nst0(支持回繞的磁帶設(shè)備)

用 ls /dev/*rst*

檢查磁帶設(shè)備文件是否存在,如果不存在,用

mknod –m 666 /dev/nrst0 c 9 9

mknod –m 666 /dev/rst0 c 9 0 生成

4、 可以對塊長度、緩存、磁帶密度等參數(shù)進(jìn)行一些設(shè)置,例如

mt setblk 20 將塊長度指定為20

mt setblk 0 指定塊程度沒有限制

5、 通過檢查系統(tǒng)的啟動信息可以確定系統(tǒng)是否識別了新的磁帶設(shè)備。用dmesg命令,查看是否有以下類似的信息:

aha274x:target 4now synchronous at 4.4Mb/s

Vendor:TANDBERG Model:TDC 3800 Rev: =05:

Type: Sequential-Access ANSI SCSI revision: 02

Detected scsi tape st0 at scsi0, id4, lun0

Scsi : detected 1 SCSI tape 1 SCSI crom 1 SCSI disk total

3 軟件包管理命令

3.1軟件安裝的步驟

在LINUX系統(tǒng)上安裝軟件的步驟有:

QUOTE:

1、 查找所要安裝軟件的源文件

2、 把源文件解開放到一個(gè)目錄中,命令如下:

tar zxvf ;

3、 針對本操作系統(tǒng)配置源文件??梢允蔷庉媘ake文件或其他文件,也可能是運(yùn)行該軟件自帶的自動配置工具,如./configure

4、 make源文件,通常是運(yùn)行make命令,即執(zhí)行 make

5、 安裝二進(jìn)制文件和其他支撐文件,運(yùn)行命令: make install

6、 最后,完成所有其他必須的配置

3.2軟件包管理命令

QUOTE:

rpm –ivh ;

安裝指定的軟件包,并在安裝過程中用#表示安裝的進(jìn)度

rpm –Uvh ;

更新一個(gè)已經(jīng)存在的或還沒安裝好的軟件包,并刪除所有該軟件包的舊版本。

rpm –e

卸載一個(gè)rpm軟件包

rpm –qa

查看系統(tǒng)中已經(jīng)安裝的軟件包

rpm –q ;

查看系統(tǒng)中某個(gè)軟件包的版本號;

rpm –qlp ;

列出某個(gè)軟件包中的所有文件

rpm –qf ;

找出一個(gè)文件屬于哪個(gè)軟件包

4 LINUX系統(tǒng)常用命令

4.1 與系統(tǒng)管理有關(guān)的命令

Wall (Write All)

QUOTE:

對全部已 登錄的用戶發(fā)送信息,用戶可以先反要發(fā)送的信息寫好存入一個(gè)文件中,然后輸入:

# wall ;:指定作為初始化進(jìn)程的文件。

initrd=;:指定作為初始內(nèi)存磁盤的設(shè)備。

ro:指定根文件系統(tǒng)為只讀。

rw:指定根文件系統(tǒng)為可讀可寫。

2 Init進(jìn)程

在內(nèi)核初始化自身和找到的硬件設(shè)備后,在后臺啟動進(jìn)程init(/in/init),init進(jìn)程號1運(yùn)行。

在UNIX世界中有許多啟動過程的版本,一些是基于系統(tǒng)V,一些是基于BSD。大多數(shù)Linux版本使用系統(tǒng)V的實(shí)現(xiàn)方法,在這里描述的就是這樣。

init是由文件/etc/inittab內(nèi)容和功能控制的,隨啟動模式是單用戶或多用戶而不同。

QUOTE:

單用戶模式:init進(jìn)程忽略/etc/inittab文件,在執(zhí)行少數(shù)幾個(gè)腳本程序后調(diào)用/dev/console shell。這樣,用戶就可以有了一個(gè)shell,而且可以執(zhí)行一定限度的任務(wù)。

多用戶模式:init進(jìn)程把系統(tǒng)帶入/etc/inittab文件指定的運(yùn)行級別。Init通過標(biāo)準(zhǔn)的Linux方法進(jìn)入一個(gè)指定的進(jìn)行級別。

3.進(jìn)行級別

Linux與其他UNIX操作系統(tǒng)一樣,可以任何時(shí)刻處于任何一個(gè)運(yùn)行級別。這些運(yùn)行級別提供的功能不同,為主要是由于其運(yùn)行的服務(wù)方程序(后臺daemon)的不同造成的。Linux共有6種運(yùn)行級別。

QUOTE:

0:關(guān)閉計(jì)算機(jī)或終止計(jì)算機(jī)運(yùn)行,這個(gè)級別就是系統(tǒng)停止運(yùn)行。

1:單用戶啟動級別,系統(tǒng)只有一個(gè)用戶,就是root,該用戶在控制臺登錄。

2:多用戶運(yùn)行級別,但無網(wǎng)絡(luò)功能。在這個(gè)運(yùn)行級別,網(wǎng)絡(luò)功能沒有啟動,但是系統(tǒng)允許多個(gè)用戶登錄,可以通過虛擬控制臺或串行線路。

3:多用戶模式,有網(wǎng)絡(luò)功能。在這個(gè)運(yùn)行級別,所有標(biāo)準(zhǔn)網(wǎng)絡(luò)服務(wù)均被啟動。

4:目前沒有實(shí)現(xiàn)。

5:X11運(yùn)行級別,在這個(gè)運(yùn)行級別,X服務(wù)器軟件運(yùn)行,提供圖形界面的登錄方式。

6:系統(tǒng)重新啟動。

查詢當(dāng)前運(yùn)行級別:runlevel;

4在啟動過程中運(yùn)行的腳本

在init進(jìn)程運(yùn)行時(shí),它負(fù)責(zé)查看缺省的運(yùn)行級別,并進(jìn)入該運(yùn)行級別。這是通過運(yùn)行在/etc/rc.d/rcX.d目錄下的腳本程序來實(shí)現(xiàn)的,其中X代表運(yùn)行的級別,即一個(gè)運(yùn)行級別對應(yīng)一個(gè)目錄。不同的字母開頭的文件有不同的作用。其中:

以K開頭的腳本程序是系統(tǒng)離開某個(gè)運(yùn)行級別時(shí)執(zhí)行的,作用是停止某種服務(wù)。當(dāng)系統(tǒng)從某個(gè)支持級別變?yōu)槠渌墑e時(shí),首先要進(jìn)行原運(yùn)行級別所對應(yīng)的所有K程序。

以S開頭的腳本程序是系統(tǒng)進(jìn)入某個(gè)運(yùn)行級別時(shí)所執(zhí)行的,作用是啟動某種服務(wù)。當(dāng)系統(tǒng)改變?yōu)槟硞€(gè)運(yùn)行級別時(shí),就要運(yùn)行新運(yùn)行級別所對應(yīng)的所有S程序。

5增加啟動腳本程序

用戶可能有一些特定的硬件設(shè)備要初始化,或需要在系統(tǒng)啟動時(shí)初始化一些其他應(yīng)用程序,用戶可以增加自己的初始化腳本程序來完成這些工作。通常步驟是:

復(fù)制一個(gè)已經(jīng)存在的腳本,這樣可以得到一個(gè)通用的框架格式。

修改這個(gè)腳本,以完成自己的需求,要注意使程序可以處理啟動和關(guān)閉的參數(shù),盡管可能關(guān)閉處理什么也不需要干。

把這個(gè)肢本拷貝到/etc/rc.d/init.d目錄下,命名為”serv”。

按下面的方法在相應(yīng)的目錄下建立運(yùn)行控制鏈接:

CODE:ln –s ../init.d/serv/etc/rc.d/rc3.d/s99 serv

進(jìn)行測試。

6 LILO和其他的啟動模塊

要啟動Linux,啟動模塊是必須的。一般用于Linux的啟動模塊是LILO,LILO用自己的主引導(dǎo)區(qū)代替一般的主引導(dǎo)區(qū)。LILO可以通過修改/etc/lilo.conf文件內(nèi)容來進(jìn)行配置,對引導(dǎo)區(qū)內(nèi)容的更新通過lilo命令來完成。

下面給也了一個(gè)裝有DOS,TurboLinux3.4.0和RedHat 5.2系統(tǒng)的計(jì)算機(jī)的lilo.conf文件。在例子中的數(shù)字標(biāo)號是用戶加上去并要在文中詳細(xì)解釋的。

CODE:# more /etc/lilo.conf

boot=dev/had

map=/boot/map

instll/boot/boot.b

prompt

#表示啟動盤是/dev/had,這是主IDE硬盤。

timeout=50

#表示等待用戶輸入的時(shí)間是50秒。

default=TL3.4

other=dev/hda1

#表示如果在上述的時(shí)間內(nèi)沒有輸入,缺省的啟動系統(tǒng)是TL3.4,即TurboLinux 3.4.0

label=dos

table=dev/had

#表示如果在LILO提示用戶輸入啟動系統(tǒng)時(shí),用戶按了;鍵,各個(gè)系統(tǒng)將以label的內(nèi)容顯示出來,供用戶選擇。

image=/mnt/tl3.4/boot/vmlinuz

label=TL3.4

root=/dev/hda3

read-only

TurboLinux的啟動文件,/mnt/tl3.4/boot/vmlinuz被確定,根文件系統(tǒng)在/dev/hda3,根文件系統(tǒng)是只讀方式的。

CODE:image=/mnt/rh5.2/boot/vmlinuz-2.0.36-0.7

label=RH5.2

root=/dev/hda4

read-only

Linux如何啟動流程?Linux啟動流程詳解

當(dāng)用戶打開電源后,BIOS開機(jī)自檢,確定啟動設(shè)備,安裝啟動設(shè)備,啟動設(shè)備上面安裝的GRUB開始引導(dǎo)Linux,Linux首先先進(jìn)行內(nèi)核引導(dǎo),通過跟切換,執(zhí)行init程序,init程序確定啟動級別,根據(jù)啟動級別進(jìn)行系統(tǒng)初始化和運(yùn)行的服務(wù),然后返回init啟動終端,用戶通過驗(yàn)證成功登陸Shell,這就是一個(gè)從開機(jī)到登陸的啟動過程。

一、硬件引導(dǎo)啟動

當(dāng)用戶打開電源后POST開始自檢,檢測硬件設(shè)備是否確實(shí)或者存在故障(是否影響氏沒清正常開機(jī)),如果不影響正常開機(jī),就把任務(wù)交給BIOS。BIOS通過搜索,安裝啟動確定啟動設(shè)備,啟動項(xiàng)為硬盤,BIOS去讀取硬盤的前512字節(jié)到內(nèi)存,找到BootLoader,確定GRUB

二、GRUB引導(dǎo)啟動內(nèi)核

這一部分概況起來就是:GRUB程序加載執(zhí)行并開始引導(dǎo)kernel程序

Boot Loader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一小段程序。通過GRUB引導(dǎo)可以確定內(nèi)核程序,因?yàn)橐龑?dǎo)扇區(qū)只有446字節(jié),GRUB只是一個(gè)小的程序安裝在里面,真正使用的在MBR后面的扇區(qū)存放,我們想使用Bootloader GRUB功能必須讀取后面的文件,Bootloader GRUB功能程序的運(yùn)行和加載配置選項(xiàng)分為三個(gè)階段

Stage1階段:

Stage1階段其實(shí)就是執(zhí)行系統(tǒng)安裝時(shí)預(yù)先寫入到MBR的Bootloader中的程序。

Stage1階段的任務(wù)僅是將硬盤0柱面0磁道2扇區(qū)的內(nèi)容讀入內(nèi)存并執(zhí)行,它是Stage1.5階段或Stage2階段的入口,引導(dǎo)進(jìn)入Stage1.5階段或Stage2階段。 在此Stage1階段,還沒有識別文件系統(tǒng)的能力。

Stage1.5階段:

stage1.5階段是stage1階段和stage2階段的中間橋梁。stage1.5階段具有識別啟動分區(qū)文件系統(tǒng)的能力,此后GRUB程序便有能力去訪問/boot分區(qū)下/grub目錄下的 stage2文件,并將stage2載入內(nèi)存執(zhí)行。

Stage2階段

Stage2階段殲前執(zhí)行時(shí),首先會解析GRUB程序的配置文件grub.conf,并依配置文件決定是否顯示系統(tǒng)啟動菜單。然后加載內(nèi)核鏡像到內(nèi)存中,通過initrd程序建立RAMDisk內(nèi)存虛擬根文件系統(tǒng)。此時(shí)控制權(quán)將轉(zhuǎn)交給內(nèi)核程序。

三、內(nèi)核引導(dǎo)啟動

這一部分主要是通過在內(nèi)存中建立虛擬根文件系統(tǒng)實(shí)現(xiàn)相關(guān)設(shè)備的驅(qū)動并建立和切換到真正的根文件系統(tǒng)。

解壓內(nèi)核鏡像加載到內(nèi)存,以及initrd程序建立RAMDisk內(nèi)存虛擬根文件系統(tǒng)后,內(nèi)核開始驅(qū)動基本硬件,并調(diào)用虛擬根文件系統(tǒng)中的init程序加載驅(qū)動模塊初始化系統(tǒng)中各種設(shè)備的相關(guān)配置工作,其中包括CPU、I/O、存儲設(shè)備等。當(dāng)所需的驅(qū)動程序加載完后,會根據(jù)grub.conf配置文件中“root=XXX”部分所指定的內(nèi)容創(chuàng)建一個(gè)根設(shè)備,然后將根文件系統(tǒng)以只讀的方式掛載,并切換到真正的根文件系統(tǒng)上,同時(shí)調(diào)用系統(tǒng)進(jìn)程的/in/init程序,進(jìn)入系統(tǒng)初始化階段。

四、系統(tǒng)初始化

這一步是通過/in/init,init程序準(zhǔn)備軟件運(yùn)行壞境,啟動系統(tǒng)服務(wù)

通過/etc/inittab文件確定運(yùn)行級別,然后去執(zhí)行系統(tǒng)初始化腳本/etc/rc.sysinit,為用戶初始化用戶空間環(huán)境,在完成初始化后,根據(jù)運(yùn)行級別,系統(tǒng)開始對應(yīng)級別的目錄啟動服務(wù),關(guān)閉那些不要的服務(wù)(里面S99local -> ../rc.local)用戶自動服務(wù)啟動腳本

運(yùn)行級別:為系統(tǒng)運(yùn)行或維護(hù)等目的而設(shè)定;0-6:7個(gè)級別

0:關(guān)機(jī)

1:單用戶模式(root自動登錄), single, 維護(hù)模式

2: 多察明用戶模式,啟動網(wǎng)絡(luò)功能,但不會啟動NFS;維護(hù)模式

3:多用戶模式,正常模式;文本界面

4:預(yù)留級別;可同3級別

5:多用戶模式,正常模式;圖形界面

6:重啟

默認(rèn)級別:3, 5

切換級別:init #

查看級別:runlevel ; who -r

五、啟動終端,用戶登錄

這一步是用戶登錄shell過程

如果沒有改變級別,默認(rèn)情況執(zhí)行/in/mingetty打開6個(gè)純文本終端,讓用戶輸入用戶名和密碼。輸入完成后,再調(diào)用login程序,核對密碼。如果密碼正確,就從文件 /etc/passwd 讀取該用戶指定的shell,然后啟動這個(gè)shell。更多Linux介紹請查看《Linux就該這么學(xué)》。

在BIOS階段,計(jì)算機(jī)的行為基本上被寫死了,可以做的事情并不多;一般就是通電、BIOS、主引導(dǎo)記錄、操作系統(tǒng)這四步。所以我們一般認(rèn)為加載內(nèi)核是linux啟動流程的之一步。

之一步、加載內(nèi)核

操作系統(tǒng)接管硬件以后,首先讀入 /boot 目錄下的內(nèi)核文件。

我們查看一下,/boot 目錄下面大概是這樣一些文件:

$ ls /boot      config-3.2.0-3-amd64   config-3.2.0-4-amd64   grub   initrd.img-3.2.0-3-amd64   initrd.img-3.2.0-4-amd64   System.map-3.2.0-3-amd64   System.map-3.2.0-4-amd64   vmlinuz-3.2.0-3-amd64   vmlinuz-3.2.0-4-amd64

第二步、啟動初始化進(jìn)程

內(nèi)核文件加載以后,就開始運(yùn)行之一個(gè)程序 /in/init,它的作用是初始化系統(tǒng)環(huán)境。

由于init是之一個(gè)運(yùn)行的程序,它的進(jìn)程編號(pid)就是1。其他所有進(jìn)程都從它衍生,都是它的子進(jìn)程。

第三步、確定運(yùn)行級別

許多程序需要開機(jī)啟動。它們在Windows叫做孫悶”服務(wù)”(service),在Linux就叫做”守護(hù)進(jìn)程”(daemon)。

init進(jìn)程的一大任務(wù),就是去運(yùn)行這些開機(jī)啟動的程序。但是,不同的場合需要啟動不同的程序,比如用作服務(wù)器時(shí),需要啟動Apache,用作桌面就不需要。Linux允許為不同的場合,分配不同的開機(jī)啟動程序,這就叫做”運(yùn)行級別”(runlevel)。也就是說,啟動時(shí)根據(jù)”運(yùn)行級別”,確定要運(yùn)行哪些程序。

Linux預(yù)置七種運(yùn)行級別(0-6)。一般來說,0是關(guān)機(jī),1是單用戶模式(也就是維護(hù)模式),6是重啟。運(yùn)行級別2-5,各個(gè)發(fā)行版不太一樣,對于Debian來說,都是同樣的多用戶模式(也就是正常模式)。

init進(jìn)程首先讀取文件 /etc/inittab,它是運(yùn)行級別的設(shè)置文件。如果你打開它,可以看到之一行是這樣的:

id:2:initdefault:

initdefault的值是2,表明系統(tǒng)啟動時(shí)的運(yùn)行級別為2。如果需要指定其他級別,可以手動修改這個(gè)值。

那么,運(yùn)行級別2有些什么程序呢,系統(tǒng)怎么知道每個(gè)級別應(yīng)該加載哪些程序呢?回答是每個(gè)運(yùn)行級別在/etc目錄下面,都有一個(gè)對應(yīng)的子目錄,指定要加載的程序。

/etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rc3.d /etc/rc4.d /etc/rc5.d /etc/rc6.d

上枝仿面目錄名中的”rc”,表示run command(運(yùn)行程序),最后的d表示directory(目錄)。下面讓我們看看 /etc/rc2.d 目錄中到底指定了哪些程序。

$ ls /etc/rc2.d      README   S01motd   S13rpcbind   S14nfs-common   S16binfmt-support   S16rsyslog   S16sudo   S17apache2   S18acpid   …

可以看到,除了之一個(gè)文件README以外,其他文件名都是”字母S+兩位數(shù)字+程序名”的形式。字母S表示Start,也就是啟動的意思(啟動腳本的運(yùn)行參數(shù)為start),如果這個(gè)位置是字母K,就代表Kill(關(guān)閉),即如果從其他運(yùn)行級別切換過來,需要關(guān)閉的程序(啟動腳本的運(yùn)行參數(shù)為stop)。后面的兩位數(shù)字表示處理順序,數(shù)字越小越早處理,所以之一個(gè)啟動的程序是motd,然后是rpcbing、nfs……數(shù)字相同時(shí),則按照程序名的字母順序啟動,所以rsyslog會先于sudo啟動。

這個(gè)目錄里的所有文件(除了README),就是啟動時(shí)要加載的程序。如果想增加或刪除某些程序,不建議手動修改 /etc/rcN.d 目錄,更好是用專門命令進(jìn)行管理。

第四步、加載開機(jī)啟動程序

前面提到,七種預(yù)猛凱纖設(shè)的”運(yùn)行級別”各自有一個(gè)目錄,存放需要開機(jī)啟動的程序。不難想到,如果多個(gè)”運(yùn)行級別”需要啟動同一個(gè)程序,那么這個(gè)程序的啟動腳本,就會在每一個(gè)目錄里都有一個(gè)拷貝。這樣會造成管理上的困擾:如果要修改啟動腳本,豈不是每個(gè)目錄都要改一遍?

Linux的解決辦法,就是七個(gè) /etc/rcN.d 目錄里列出的程序,都設(shè)為鏈接文件,指向另外一個(gè)目錄 /etc/init.d ,真正的啟動腳本都統(tǒng)一放在這個(gè)目錄中。init進(jìn)程逐一加載開機(jī)啟動程序,其實(shí)就是運(yùn)行這個(gè)目錄里的啟動腳本。

下面就是鏈接文件真正的指向。

$ ls -l /etc/rc2.d      README   S01motd -> ../init.d/motd   S13rpcbind -> ../init.d/rpcbind   S14nfs-common -> ../init.d/nfs-common   S16binfmt-support -> ../init.d/binfmt-support   S16rsyslog -> ../init.d/rsyslog   S16sudo -> ../init.d/sudo   S17apache2 -> ../init.d/apache2   S18acpid -> ../init.d/acpid   …

這樣做的另一個(gè)好處,就是如果你要手動關(guān)閉或重啟某個(gè)進(jìn)程,直接到目錄 /etc/init.d 中尋找啟動腳本即可。比如,我要重啟Apache服務(wù)器,就運(yùn)行下面的命令:

$ sudo /etc/init.d/apache2 restart

/etc/init.d 這個(gè)目錄名最后一個(gè)字母d,是directory的意思,表示這是一個(gè)目錄,用來與程序 /etc/init 區(qū)分。

第五步、用戶登錄

開機(jī)啟動程序加載完畢以后,就要讓用戶登錄了。

一般來說,用戶的登錄方式有三種:

(1)命令行登錄

(2)ssh登錄

(3)圖形界面登錄

這三種情況,都有自己的方式對用戶進(jìn)行認(rèn)證。

(1)命令行登錄:init進(jìn)程調(diào)用getty程序(意為get teletype),讓用戶輸入用戶名和密碼。輸入完成后,再調(diào)用login程序,核對密碼(linux還會再多運(yùn)行一個(gè)身份核對程序/etc/pam.d/login)。如果密碼正確,就從文件 /etc/passwd 讀取該用戶指定的shell,然后啟動這個(gè)shell。

(2)ssh登錄:這時(shí)系統(tǒng)調(diào)用sshd程序(linux還會再運(yùn)行/etc/pam.d/ssh ),取代getty和login,然后啟動shell。

(3)圖形界面登錄:init進(jìn)程調(diào)用顯示管理器,Gnome圖形界面對應(yīng)的顯示管理器為gdm(GNOME Display Manager),然后用戶輸入用戶名和密碼。如果密碼正確,就讀取/etc/gdm3/Xsession,啟動用戶的會話。

第六步、進(jìn)入 login shell

所謂shell,簡單說就是命令行界面,讓用戶可以直接與操作系統(tǒng)對話。用戶登錄時(shí)打開的shell,就叫做login shell。

linux默認(rèn)的shell是Bash,它會讀入一系列的配置文件。上一步的三種情況,在這一步的處理,也存在差異。

(1)命令行登錄:首先讀入 /etc/profile,這是對所有用戶都有效的配置;然后依次尋找下面三個(gè)文件,這是針對當(dāng)前用戶的配置。

~/.bash_profile   ~/.bash_login   ~/.profile

需要注意的是,這三個(gè)文件只要有一個(gè)存在,就不再讀入后面的文件了。比如,要是 ~/.bash_profile 存在,就不會再讀入后面兩個(gè)文件了。

(2)ssh登錄:與之一種情況完全相同。

(3)圖形界面登錄:只加載 /etc/profile 和 ~/.profile。也就是說,~/.bash_profile 不管有沒有,都不會運(yùn)行。

第七步,打開 non-login shell

老實(shí)說,上一步完成以后,Linux的啟動過程就算結(jié)束了,用戶已經(jīng)可以看到命令行提示符或者圖形界面了。但是,為了內(nèi)容的完整,必須再介紹一下這一步。

用戶進(jìn)入操作系統(tǒng)以后,常常會再手動開啟一個(gè)shell。這個(gè)shell就叫做 non-login shell,意思是它不同于登錄時(shí)出現(xiàn)的那個(gè)shell,不讀取/etc/profile和.profile等配置文件。

non-login shell的重要性,不僅在于它是用戶最常接觸的那個(gè)shell,還在于它會讀入用戶自己的bash配置文件 ~/.bashrc。大多數(shù)時(shí)候,我們對于bash的定制,都是寫在這個(gè)文件里面的。

你也許會問,要是不進(jìn)入 non-login shell,豈不是.bashrc就不會運(yùn)行了,因此bash 也就不能完成定制了?事實(shí)上,Debian已經(jīng)考慮到這個(gè)問題了,請打開文件 ~/.profile,可以看到下面的代碼:

if ; then     if ; then. “$HOME/.bashrc”     fi   fi

上面代碼先判斷變量 $BASH_VERSION 是否有值,然后判斷主目錄下是否存在 .bashrc 文件,如果存在就運(yùn)行該文件。第三行開頭的那個(gè)點(diǎn),是source命令的簡寫形式,表示運(yùn)行某個(gè)文件,寫成”source ~/.bashrc”也是可以的。

因此,只要運(yùn)行~/.profile文件,~/.bashrc文件就會連帶運(yùn)行。但是上一節(jié)的之一種情況提到過,如果存在~/.bash_profile文件,那么有可能不會運(yùn)行~/.profile文件。解決這個(gè)問題很簡單,把下面代碼寫入.bash_profile就行了。

if ; then     . ~/.profile   fi

這樣一來,不管是哪種情況,.bashrc都會執(zhí)行,用戶的設(shè)置可以放心地都寫入這個(gè)文件了。

Bash的設(shè)置之所以如此繁瑣,是由于歷史原因造成的。早期的時(shí)候,計(jì)算機(jī)運(yùn)行速度很慢,載入配置文件需要很長時(shí)間,Bash的作者只好把配置文件分成了幾個(gè)部分,階段性載入。系統(tǒng)的通用設(shè)置放在 /etc/profile,用戶個(gè)人的、需要被所有子進(jìn)程繼承的設(shè)置放在.profile,不需要被繼承的設(shè)置放在.bashrc。

順便提一下,除了Linux以外, Mac OS X 使用的shell也是Bash。但是,它只加載.bash_profile,然后在.bash_profile里面調(diào)用.bashrc,而且不管是ssh登錄還是在圖形界面里啟動shell窗口都是如此。

linux怎樣查看硬盤使用情況

一、df -lh 命令

df 是來自于coreutils 軟件包,系統(tǒng)安裝時(shí),就自帶的;我們通過這個(gè)命令可以查看磁盤的使用情況以及文件系統(tǒng)被掛載的位置;

# df -l

文件系統(tǒng) 容量已用可用 已用% 掛載點(diǎn)

/dev/sda 76% /

tmpfs% /dev/shm

/dev/sda 56% /media/disk

/dev/sda 76% /media/_

/dev/山寬sda 57% /media/disk-1

可以看到系統(tǒng)掛在sda3上,另外還掛了sda6/sda1/sda5三個(gè)系統(tǒng)。

二、fdisk -l 命令

fdisk 是一款強(qiáng)大的磁盤操作工具,來自util-linux軟件包,我們在這里只說他如何查看磁盤分區(qū)表及分區(qū)結(jié)構(gòu);通過-l 參數(shù),絕桐能獲得機(jī)器中所有的硬盤的分區(qū)情況;

# fdisk -l

Disk /dev/sda: 40.0 GB,bytes

255 heads, 63 sectors/track, 4863 cylinders

Units = cylinders of* 512 =bytes

Disk identifier: 0x62a9f8d0

Device Boot StartEnd Blocks Id System

/dev/sda1 *Linux

/dev/sda 82 Linux swap / Solaris

/dev/sda+ 83 Linux

/dev/sda 5 Extended

/dev/sda+ 83 Linux

/dev/sda+ 83 Linux

sda1 是MBR(主引導(dǎo)記錄)所在的分區(qū);sda2是交換分區(qū);sda4是擴(kuò)展分區(qū),包括了sda5,sda6兩個(gè)邏輯分區(qū)。系統(tǒng)劃分分區(qū)的時(shí)候只能劃分4個(gè)主分區(qū)(擴(kuò)展分區(qū)也算主分區(qū)),我在上面分了3個(gè)主分區(qū)+1個(gè)Extended分區(qū),5.6是邏輯分區(qū)。所以才會有sda1.2.3.4.5.6。如果你只劃分了1個(gè)主分區(qū)并唯坦+1個(gè)擴(kuò)展分區(qū),那么邏輯分區(qū)就從sda5開始了,sda1.2.5.6…

三、cfdisk -Ps命令 (注意P是大寫)

cfdisk 也是一款不錯的分區(qū)工具;在有些發(fā)行版中,此工具已經(jīng)從util-linux包中剔除;cfdisk 簡單易用是他的特點(diǎn);

查看磁盤分區(qū)的用法 cfdisk -Ps 磁盤設(shè)備名 只有一個(gè)硬盤也可以用 cfdisk -Ps

例1:# cfdisk -Ps

具體要看你用什么發(fā)行版本,如果是只有命令行的直接輸入命令就可以。有界面的話要打開終端命令行程序,再輸入命令才可以。

一般可以用df命令獲仔亂取硬盤的使用情況,常用命令:df -hi。

通過man可以獲取df命令的詳細(xì)情況。df命令經(jīng)常用的參數(shù)為:

  a:顯示全部的檔案系統(tǒng)和各分割區(qū)的磁盤使用情形

  i:顯示i -nodes的使用量

  k:大小用k來表示 (默認(rèn)值)

  t:顯示某一個(gè)檔案系統(tǒng)的所有分割區(qū)磁盤使用量

  x:顯示不晌盯是某一個(gè)檔案系統(tǒng)的所有分割區(qū)磁盤使用量

linux 主引導(dǎo)記錄的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 主引導(dǎo)記錄,Linux主引導(dǎo)記錄:了解引導(dǎo)過程,保證系統(tǒng)安全運(yùn)行,求助:LINUX常用SHELL命令,Linux如何啟動流程?Linux啟動流程詳解,linux怎樣查看硬盤使用情況的信息別忘了在本站進(jìn)行查找喔。

成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)、設(shè)計(jì)、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!


文章題目:Linux主引導(dǎo)記錄:了解引導(dǎo)過程,保證系統(tǒng)安全運(yùn)行(linux主引導(dǎo)記錄)
網(wǎng)站鏈接:http://www.dlmjj.cn/article/dhisdho.html