Linux目錄結構及開機流程詳解

對Linux有一些了解的,都應該知道在Linux中所有的內容都是文件,包括硬碟等各種硬體在Linux中也都是按照文件來繼續處理的,所以對Linux文件的了解將是非常重要的。

目錄

0x01 Linux重要目錄結構

0x02 Linux啟動流程

0x01 Linux重要目錄結構

/bin

用戶的命令都在這裡

使用which 命令 可以查看命令的所在路徑

/boot

Linux內核及系統引導程式的所在目錄

/dev

設備文件的目錄,硬碟、音效卡等等都在這裡

/etc

軟體的配置文件的目錄和軟體啟動程式的目錄

/home

普通用戶的家目錄

/root

root用戶的家目錄

/lib

啟動系統和運行命令所需要的共享文件庫文件和內核模組存放的目錄

/lost+found

系統崩潰時,一些文件會存放在這裡,可以通過一些命令來進行恢復操作

/mnt

臨時的掛載點,用於臨時掛載存儲設備的,要想使用所插入的設備,必須先將設備進行掛載才能進行訪問

mount /dev/cdrom /mnt

將dev中的設備掛載到mnt目錄下,然後才可以進行訪問,就好比當你把儲存設備插入之後,它就相當於是一個監獄,沒有門是無法進入的,只有你把它掛載到mnt目錄下之後,相當於開了一個門,才能進入這個儲存設備中,使用下列可以取消掛載點,相當於再把門去掉

umount /mnt

/opt

可選擇的目錄,有些軟體也是會被安裝到這裡的,我們自己編譯的軟體包,也可以放在這個目錄中去

/sbin

系統管理員相關的命令,/bin下是普通用戶的命令

/tmp

臨時文件目錄,許可權比較特殊,相當於是Windows的回收站,之前有朋友就把程式安裝到了這個目錄下,還好奇為啥重啟之後就沒有了。

/usr

存放程式的目錄

/usr/local:默認軟體安裝目錄  /usr/src:程式源程式碼目錄

/var

一個變化的目錄,其中的內容是經常變動的

/var/log:系統日誌的存放目錄  /var/log/messages:系統日誌路徑  /var/lib:庫文件存放路徑

/proc

系統運行時,進程資訊及內核資訊都存放在這裡,比如cpu、硬碟、記憶體等等的資訊

/proc/loadavg:系統負載  /proc/meminfo:系統記憶體資訊  /proc/cpuinfo:系統cpu資訊  /proc/mounts:系統掛載資訊

接下來要說Linux的啟動流程,還有兩個文件需要明確一下

一、

/etc/fstab

配置開機設備自動掛載的文件

前面說/mnt目錄的時候也說過了,只有把硬碟掛載到掛載點後,才能進行訪問的,但是Linux啟動我們也沒有手動來做過掛載呀,沒有掛載就不能訪問,那系統是怎樣啟動起來呢?

就是由於這個文件實現了開機設備自動掛載,我們可以通過更改這個文件來實現文件的自動掛載,一定要注意不要寫錯其中的內容,如果寫錯的話將可能會導致Linux系統無法啟動,因為在掛載中遇到錯誤後,是不會再繼續往下執行的,為了避免這樣的情況,在最後一個數值設定的時候一定要設置為0,不進行磁碟檢查,如果設置為1或者2的話,將可能會導致設備無法啟動。

一共有六列內容,從左到右依次是:

要掛載的設備、掛載點、掛載時候的文件系統格式、掛載時的參數、是否備份、是否做磁碟檢查

二、

Linux運行級別

Linux有7個運行級別,分別是

0:關機  1:單用戶模式  2:沒有NFS(網路文件系統)的多用戶模式  3:完整的多用戶模式(常用)  4:未使用,保留  5:圖形化模式  6:重啟

一般默認是選用3模式

使用init可以切換當前的運行級別

使用runlevel可以查看當前運行級別

第一個是上次運行級別,第二個就是當前運行級別

運行級別所對應的文件目錄是下面這些目錄

當你選擇2級別執行的時候,就會將/etc/rc2.d下的文件全部都執行一遍

當然如果想在切換到某一個級別的時候運行某些指定程式,我們就可以在對應的目錄下放入所需要執行的程式

0x02 Linux啟動流程

當了解了這兩個內容之後,再說Linux啟動流程就比較清楚了

在網上給出的簡單圖解大致是這樣的

首先在開機的時候,會載入主板上的BIOS,然後會啟動硬體自檢,如果發現有問題的話,就不繼續啟動了。

然後會把啟動程式交給硬碟,也就是圖中的MBR引導,此時會載入硬碟中的一部分存儲空間的內容,這部分內容就是主引導程式。

然後就載入Linux的GRUB菜單

接下來就會去載入GRUB所對應程式的內核

等待內核載入完畢以後,會運行Linux的第一個進程——INIT進程,此時會讀取/etc/inittab文件,這個文件中設定了Linux以哪個級別進行啟動,設定完以後將會載入對應級別以下的所有程式,也就是咱們上面所說的運行級別的文件夾下的所有文件;

同時還會載入Linux的基礎配置程式/etc/rc.d/rc.sysinit,裡面包含了主機名、設備、網卡等等必須的東西

PS:部分系統沒有rc.d的目錄,此時執行的是rcS.d目錄下的全部文件。

等所有的內容都載入完畢之後就進入了用戶登陸介面

到這裡,Linux就已經啟動完成了

Tags: