磁盤分區以及Linux目錄掛載詳解


一、背景

    一直以來,對於磁盤的分區以及Linux目錄掛載的概念都不是很清晰,現在趁着春暖花開周末在家沒事就研究了下它們,現在來分享我的理解。

二、概念詳解

  1.磁盤分區

      磁盤分區是把物理的磁盤空間按照自己的要求分成N個不同大小的區域,以便OS更好更高效的進行文件存儲管理。像我們經常使用的Windows系統中的C、D、E、F盤...等盤符實際就是一個個的磁盤分區。分區與操作系統沒有任何關系,因為我們對磁盤分區可以在安裝操作系統之前進行。

      磁盤分區類型:主分區、擴展分區(N個邏輯分區的集合)。

      硬盤組成:硬盤主引導扇區+主分區+擴展分區

  2.硬盤主要組成部分:磁頭、磁盤面、磁道、扇區、柱面

     

  3. 硬盤主引導扇區

    以機械硬盤為例,其中硬盤主引導扇區位於硬盤的 0磁頭0柱面1扇區(也就是所謂的Boot Sector),它又分為:硬盤主引導記錄(MBR) + 硬盤分區表(DPT),共512個字節,其中MBR446字節、分區表64字節以及2字節的結束標志。

  4. 硬盤主引導記錄(MBR)

     位於磁盤最前邊的一段引導(Loader)代碼。它負責磁盤操作系統(DOS)對磁盤進行讀寫時分區合法性的判別、分區引導信息的定位,它由磁盤操作系統(DOS)在對硬盤進行初始化時產生的。

  5.操作系統啟動過程簡述

    電腦開機時,操作系統通過BIOS(BIOS實際是一個基礎輸入輸出系統,主要用於和計算機硬件打交道)程序把Boot Sector讀入內存,然后執行其中的MBR,這個時候BIOS是把啟動交給MBR控制, MBR在4個分區表中搜索標致為活動的分區,找到以后把活動分區的第一扇區讀入內存,然后開始執行它,以此來運行特定系統的啟動程序(LILO、GRUB、NT Loader),此時是操作系統的引導程序來控制系統的啟動。接着操作系統進行一系列的初始化工作,最后把系統交給系統內核進行管理,就完成了開機啟動的過程。

  6.主分區、擴展分區、邏輯分區 

     操作系統必須安裝在主分區上,因為MBR中記錄着主分區信息,系統啟動的時候會到主分區來查找操作系統引導文件,否則系統將無法啟動。因為磁盤分區表一共64個字節,並且每個主分區的分區信息占16個字節,所以一個磁盤最多能有4個主分區。那么問題來了,我們想要更多的分區怎么辦呢?這個時候擴展分區的作用就來了,把最后一個主分區作為擴展分區,再在這個分區下分割出多個邏輯分區,擴展分區實際上是一個類似容器的東西。擴展分區並不是一個真實存在的分區,它只是內存管理鏈表中的一個指針,指示出哪一塊區域是擴展分區。又因為這些擴展分區內的分區實際上都是在一個分區內,只是邏輯上分開,所以叫做邏輯分區。但這對於用戶來說看起來系統中有很多分區。

  7.linux磁盤命名方式

     IDE硬盤--->hda、hdb、hdc、hdd 

     SATA硬盤--->sda、sdb、sdc、sdd

  8. linux分區命名方式

     IDE硬盤--->hda(1-n)...hdb(1-n)...hdd(1-n)

     SATA硬盤--->sda(1-n)...sdb(1-n)...sdd(1-n)

     注:其中最后一位數字,主分區是1到4,而邏輯分區是5以上的數字。

  9.Linux文件系統結構

     Linux和Windows系統的文件系統不同,它是樹形結構的文件系統,其中/是系統的根目錄,其他所有目錄都是它的子節點,一般該目錄下掛載的是一個主分區。而且無論什么設備對於linux系統來說都是一個文件 。而且在linux系統中,我們看不到盤符的概念,就連分區的概念都被淡化了,分區在linux系統中也和其他設備一樣被當成了文件對待。那么也就是說,我們要想對一個磁盤分區進行操作,必須通過文件進行。

  10.linux掛載

     掛載就是把文件目錄和分區連接起來,與windows下盤符和分區進行映射的關系一樣,不同的是windows是把分區映射到一個盤符,而linux是把一個分區映射到一個目錄。掛載完成以后,我們在linux系統中對掛載的目錄的任何操作都是對對應的磁盤分區的操作,例如文件保存當然也是保存到對應的磁盤分區上。 其中/根目錄必須掛載在主分區上,否則啟動系統的時候會由於找不到啟動文件而啟動失敗。

  11.相關常用命令

    df -Th 查看當前系統的分區情況

    fdisk -l 查看當前系統分區信息詳情

    mount 掛載分區

    unmount 卸載分區

  12.Linux分區掛載點介紹

  /boot  啟動分區,一般設置100M-200M,boot目錄包含了操作系統的內核和在啟動系統過程中所要用到的文件

  /     根分區,所有未指定掛載點的目錄都會放到這個掛載點下

  /home 用戶目錄,一般每個用戶100M左右,特殊用途,比如放大文件也可再加上G。分區大小取決於用戶多少。對於多用戶使用的電腦,建議把/home獨立出來,而且還可以很好地控制普通用戶權限等,比如對用戶或者用戶組實行磁盤配額限制、用戶權限訪問等.

  /tmp   臨時文件目錄,一般設置1-5G,方便加載ISO鏡像文件使用,對於多用戶系統或者網絡服務器來也有獨立掛載的必要。臨時文件目錄,也是最常出現問題的目錄之一.

  /usr  系統資源,一般設置要3-15G,大部分的用戶安裝的軟件程序都在這里。就像是Windows目錄和Program Files目錄。很多Linux家族系統有時還會把/usr/local單獨作為掛載點使用。

  /var  可變數據目錄,包含系統運行時要改變的數據。通常這些數據所在的目錄的大小是要經常變化的,系統日志記錄也在/var/log下。一般多用戶系統或者網絡服務器要建立這個分區,設立這個分區,對系統日志的維護很有幫助。一般設置2-3G大小,也可以把硬盤余下空間全部分為var.

  /srv  系統服務目錄,用來存放service服務啟動所需的文件資料目錄,不常改變。

  /opt  附加應用程序目錄,存放可選的安裝文件,個人一般把自己下載的軟件資料存在里面,比如Office、QQ等等.

  swap  交換分區,一般為內存2倍,最大指定2G即可

  /bin  二進制可執行目錄,存放二進制可執行程序,里面的程序可以直接通過命令行調用,而不需要進入程序所在的文件夾

  /sbin  系統管理員命令存放目錄,存放標准系統管理員文件

  /dev  存放設備文件,驅動文件等

三、總結

     通過以上的描述,我們就很容的弄明白了磁盤分區以及Linux目錄掛載的概念,而且還了解到了一些別的概念比如 硬盤主引導扇區、硬盤主引導記錄(MBR)、操作系統啟動過程等等,通過這樣一點一點的基積累,我相信我們會離大神越來越近的。加油!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM