0x01 Linux 分區(qū)簡(jiǎn)介
- 主分區(qū) vs 擴(kuò)展分區(qū)
硬盤分區(qū)表中最多能存儲(chǔ)四個(gè)分區(qū),但我們實(shí)際使用時(shí)一般只分為兩個(gè)分區(qū)骏庸,一個(gè)是主分區(qū)(Primary Partion)一個(gè)是擴(kuò)展分區(qū)(extended partition)毛甲,主分區(qū)可以馬上被使用但不能再分區(qū),擴(kuò)展分區(qū)必須再進(jìn)行分區(qū)后才能使用具被,也就是說(shuō)它必須還要進(jìn)行二次分區(qū)玻募。那么由擴(kuò)展分區(qū)再分下去的是什么呢?它就是邏輯分區(qū)(Logical Partion)一姿,邏輯分區(qū)沒(méi)有數(shù)量上限制七咧。 - 驅(qū)動(dòng)器標(biāo)示的含義
對(duì)Linux用戶來(lái)說(shuō)無(wú)論有幾個(gè)分區(qū),都得分給目錄使用叮叹,它歸根結(jié)底就只有一個(gè)根目錄艾栋,一個(gè)獨(dú)立且唯一的文件結(jié)構(gòu)。Linux中每個(gè)分區(qū)都是用來(lái)組成整個(gè)文件系統(tǒng)的一部分蛉顽,因?yàn)樗捎昧艘环N叫“掛載點(diǎn)”的處理方法蝗砾,它的整個(gè)文件系統(tǒng)中包含了一整套的文件和目錄,且將一個(gè)分區(qū)和一個(gè)目錄聯(lián)系起來(lái)。這時(shí)要載入的一個(gè)分區(qū)就在linux的存儲(chǔ)空間的某個(gè)目錄下獲得悼粮。
對(duì)于IDE硬盤闲勺,驅(qū)動(dòng)器標(biāo)識(shí)符為“hdx1”,其中“hd”表明分區(qū)所在設(shè)備的類型,這里是指IDE硬盤了扣猫〔搜“x”為盤號(hào)(a為基本盤,b為基本從屬盤申尤,c為輔助主盤癌幕,d為輔助從屬盤),“1”代表分區(qū),前四個(gè)分區(qū)用數(shù)字1到4表示昧穿,它們是主分區(qū)或擴(kuò)展分區(qū)勺远,從5開(kāi)始就是邏輯分區(qū)。例粤咪,hda3表示為第一個(gè)IDE硬盤上的第三個(gè)主分區(qū)或擴(kuò)展分區(qū),hdb2表示為第二個(gè)IDE硬盤上的第二個(gè)主分區(qū)或擴(kuò)展分區(qū)谚中。對(duì)于SCSI硬盤則標(biāo)識(shí)為“sdx1”,SCSI硬盤是用“sd”來(lái)表示分區(qū)所在設(shè)備的類型的寥枝,其余則和IDE硬盤的表示方法一樣宪塔。
上面可以看到,Linux的分區(qū)是不同于其它操作系統(tǒng)分區(qū)的囊拜,它的分區(qū)格式常用的有Ext3和Swap兩種某筐,Ext3用于存放系統(tǒng)文件,Swap則作為L(zhǎng)inux的交換分區(qū)(相當(dāng)于windows中的虛擬內(nèi)存文件)冠跷。那么現(xiàn)在我們就可以知道Linux至少需要兩個(gè)專門的分區(qū)(Linux Native(本地)和Linux Swap(交換))南誊。由于不能將Linux安裝在Dos/Windows分區(qū)。一般來(lái)說(shuō)我們將Linux安裝一個(gè)或多個(gè)類型為“Linux Native”的硬盤分區(qū)蜜托,但是在Linux的每一個(gè)分區(qū)都必須要指定一個(gè)“Mount Point”(掛載點(diǎn))抄囚,告訴Linux在啟動(dòng)時(shí),這個(gè)目錄要給哪個(gè)分區(qū)使用橄务。對(duì)“Swap”分區(qū)來(lái)說(shuō), 一般也定義一個(gè)幔托,且它不必要定義載入點(diǎn)。
下面我們先對(duì)“Linux Native”和“Linux Swap”有個(gè)初步的了解蜂挪。
SWAP分區(qū)是LINUX暫時(shí)存儲(chǔ)數(shù)據(jù)的交換分區(qū)重挑,它主要是把主內(nèi)存上暫時(shí)不用得數(shù)據(jù)存起來(lái),在需要的時(shí)候再調(diào)進(jìn)內(nèi)存內(nèi)棠涮,且作為SWAP使用的分區(qū)不用指定“Mout Point”(載入點(diǎn))谬哀,既然它作為交換分區(qū),我們理所當(dāng)然應(yīng)給它指定大小严肪,它至少要等于系統(tǒng)上實(shí)際內(nèi)存的量史煎,一般來(lái)說(shuō)它的大小是內(nèi)存的一至兩倍谦屑。另外你也可以創(chuàng)建和使用一個(gè)以上的交換分區(qū),最多16個(gè)劲室。
Linux Native是存放系統(tǒng)文件的地方伦仍,一般用EXT4的分區(qū)類型结窘,對(duì)Linux來(lái)說(shuō)很洋,有了較大的選擇余地,可以把系統(tǒng)文件分幾個(gè)區(qū)來(lái)裝(必須要說(shuō)明掛載點(diǎn))隧枫,也可以就裝在同一個(gè)分區(qū)中(掛載點(diǎn)是“/”)喉磁。 - 為什么要自定義多個(gè)分區(qū)
a. 在不損失數(shù)據(jù)的情況下重裝系統(tǒng),比如獨(dú)立設(shè)置/home掛載點(diǎn),重裝系統(tǒng)的時(shí)候直接標(biāo)記回/home官脓,數(shù)據(jù)不會(huì)有任何損失协怒。
b. 針對(duì)不同掛載點(diǎn)的特性分配合適的文件系統(tǒng)以合理發(fā)揮性能,比如對(duì)/var使用reiserfs卑笨,對(duì)/home使用xfs孕暇,對(duì)/使用ext4。
c. 針對(duì)不同的掛載點(diǎn)開(kāi)啟不同的掛載選項(xiàng)赤兴,如是否需要即時(shí)同步妖滔,是否開(kāi)啟日志,是否啟用壓縮桶良。
d. 大硬盤搜索范圍大座舍,效率低
e. 磁盤配額只能對(duì)分區(qū)做設(shè)定
f. /home、/var陨帆、/usr/local 經(jīng)常是單獨(dú)分區(qū)曲秉,因?yàn)榻?jīng)常會(huì)操作,容易產(chǎn)生碎片
0x02 掛載點(diǎn)目錄簡(jiǎn)介
-
常見(jiàn)的掛載目錄結(jié)構(gòu)
- 常見(jiàn)的掛載目錄說(shuō)明
/ 根目錄疲牵,存放系統(tǒng)命令和用戶數(shù)據(jù)等(如果下面掛載點(diǎn)沒(méi)有單獨(dú)的分區(qū)承二,它們都將在根目錄的分區(qū)中)
/boot boot loader 的靜態(tài)鏈接文件,存放與Linux啟動(dòng)相關(guān)的程序
/home 用戶目錄纲爸,存放普通用戶的數(shù)據(jù)
/tmp 臨時(shí)文件
/usr 是Linux系統(tǒng)存放軟件的地方,如有可能應(yīng)將最大空間分給它
/usr/local 自已安裝程序安裝在此
/var 不斷變化的數(shù)據(jù)亥鸠,服務(wù)器的一些服務(wù)、日志放在下面
/opt (Option可選的)附加的應(yīng)用程序軟件包
/bin 基本命令執(zhí)行文
/dev 設(shè)備文件
/etc 主機(jī)特定的系統(tǒng)配置
/lib 基本共享庫(kù)以及內(nèi)核模塊
/media 用于移動(dòng)介質(zhì)的掛載點(diǎn)
/mnt 用于臨時(shí)掛載文件系統(tǒng)或者別的硬件設(shè)備(如光驅(qū)缩焦、軟驅(qū))
/proc 系統(tǒng)信息的虛擬目錄(2.4 和 2.6 內(nèi)核)读虏,這些信息是在內(nèi)存中,由系統(tǒng)自己產(chǎn)生的
/root root 用戶的目錄
/sbin 基本系統(tǒng)命令執(zhí)行文件
/sys 系統(tǒng)信息的虛擬目錄(2.6 內(nèi)核)
/srv 系統(tǒng)提供的用于 service 的數(shù)據(jù)
/usr/X1186 X-Windows目錄袁滥,存放一些X-Windows的配置文件
/usr/include 系統(tǒng)頭文件盖桥,存儲(chǔ)一些C語(yǔ)言的頭文件
/usr/src Linux內(nèi)核源代碼,Linux系統(tǒng)所安裝的內(nèi)核源代碼都保存在此
/usr/bin 對(duì)/bin目錄的一些補(bǔ)充
/usr/sbin 對(duì)/sbin目錄的一些補(bǔ)充
/lost+found 這個(gè)目錄在大多數(shù)情況下都是空的题翻。但是如果你正在工作突然停電揩徊,或是沒(méi)有用正常方式關(guān)機(jī)腰鬼,在你重新啟動(dòng)機(jī)器的時(shí)候,有些文件就會(huì)找不到應(yīng)該存放的地方塑荒,對(duì)于這些文件熄赡,系統(tǒng)將他們放在這個(gè)目錄下 - 為什么 linux 的分區(qū)需要有掛載這個(gè)動(dòng)作呢
因?yàn)閘inux 下一切皆文件!換句說(shuō)法就是linux操作系統(tǒng)將系統(tǒng)中的一切都作為文件來(lái)管理齿税。在windows中我們常見(jiàn)的硬件設(shè)備(打印機(jī)彼硫、網(wǎng)卡、聲卡...)凌箕、磁盤分區(qū)等拧篮,在linux中統(tǒng)統(tǒng)都被視作文件,對(duì)設(shè)備牵舱、分區(qū)的訪問(wèn)就是讀寫對(duì)應(yīng)的文件串绩。
0x03 實(shí)戰(zhàn)分區(qū)掛載
- 臨時(shí)掛載
$ mount /dev/sda3 /data ##sda3分區(qū)掛載在data目錄下
$ umount /data ##卸載data目錄下分區(qū)
- 永久掛載:開(kāi)機(jī)自動(dòng)掛載
需要修改/etc/fstab
LABEL=/data /data ext3 defaults 1 2
修改為:
/dev/sda3 /data ext3 defaults 1 2
PS:fstab 是文件系統(tǒng)分配表的配置文件,該文件有著嚴(yán)格的語(yǔ)法格式限制芜壁,類似 crontab 一樣礁凡,保存時(shí)也會(huì)對(duì)你的輸入格式進(jìn)行校驗(yàn),請(qǐng)慎重使用慧妄,否則會(huì)有意想不到的問(wèn)題發(fā)生顷牌。其一共有 6 個(gè)字段,空格分隔腰涧。
- 添加硬盤&分區(qū)&掛載
參考之前寫的文摘《Centos下磁盤分區(qū)及掛載》
0x04 通過(guò) fstab 設(shè)置開(kāi)機(jī)掛載的問(wèn)題
Linux 在啟動(dòng)的時(shí)候通過(guò) fstab 中的信息掛載各個(gè)分區(qū)韧掩,一個(gè)典型的分區(qū)條目就像這樣:
/dev/sda3 /data ext3 defaults 1 2
/dev/sda3 為需要掛載的分區(qū),sda3是 Linux 檢測(cè)硬盤時(shí)按順序給分區(qū)的命名窖铡,一般來(lái)講疗锐,這個(gè)名稱并不會(huì)變化,但是如果你有多塊硬盤费彼,硬盤在電腦中的順序變化的時(shí)候滑臊,相同的名稱可能代表著不同的硬盤分區(qū)。這樣的話上面設(shè)置的開(kāi)機(jī)自動(dòng)掛載就會(huì)出現(xiàn)找不到分區(qū)上面的文件情況
這個(gè)時(shí)候 UUID 就派上用場(chǎng)了箍铲,UUID 全稱是 Universally Unique Identifier雇卷,也就是說(shuō),每個(gè)分區(qū)有一個(gè)唯一的 UUID 值颠猴,這樣就不會(huì)發(fā)生分區(qū)識(shí)別混亂的問(wèn)題了关划。
在 fstab 中用 UUID 掛載分區(qū)格式如下:
UUID=7cc82613-5be2-4e58-b359-0920613f9509 /data ext3 defaults 1 2
可以通過(guò)下面命令得到分區(qū)的UUID
$ ls -l /dev/disk/by-uuid/
0x05 FAQ
a. 掛載點(diǎn)必須是一個(gè)目錄
b. 一個(gè)分區(qū)掛載在一個(gè)已存在的目錄上,這個(gè)目錄可以不為空翘瓮,但掛載后這個(gè)目錄下以前的內(nèi)容將不可用贮折。對(duì)于其他操作系統(tǒng)建立的文件系統(tǒng)的掛載也是這樣,卸載后资盅,目錄以前的文件都還在调榄,不會(huì)有任何丟失
c. 目錄只占磁盤里的一個(gè)inode踊赠,存放文件屬性等信息
d. 任何一個(gè)分區(qū)都必須掛載到某個(gè)目錄上
e. 目錄是邏輯上的區(qū)分。分區(qū)是物理上的區(qū)分
f. 磁盤Linux分區(qū)都必須掛載到目錄樹(shù)中的某個(gè)具體的目錄上才能進(jìn)行讀寫操作
g. 根目錄是所有Linux的文件和目錄所在的地方每庆,需要掛載上一個(gè)磁盤分區(qū)
h. 一個(gè)分區(qū)可以掛在多個(gè)目錄筐带,但反過(guò)來(lái)一個(gè)目錄只能是一個(gè)分區(qū)的掛載點(diǎn)