Linux磁盤分區與掛載


硬盤的大體結構:安全


由盤片、機械臂、磁頭、主軸馬達組成。各盤片的中心在主軸,馬達帶動各盤片轉動,盤片的兩面均有磁頭讀寫數據。服務器


磁頭在盤片上的各磁道讀寫數據,盤片的正反兩面均有磁頭讀寫。磁道是盤片上以主軸爲圓心的各同心圓。顯然因爲各圓的半徑不同,存儲容量也不相同。ide


磁道上每個單位弧段稱爲一個扇區,可存儲數據512bytes。同一磁盤內每一個盤片相同位置的磁道構成一個柱面,顯然一個盤片上有多少磁道,磁盤就有多少柱面。柱面是磁盤劃分分區的單位。spa


0磁道0扇區不會存儲數據,該扇區存儲的是MBRMaster Boot Record),共512bytes;前446bytes存儲的是bootloader;以後64bytes存儲磁盤分區表,每16bytes對應一個分區,故最多劃分四個主分區,如需使用更多分區,則使用擴展分區,每塊硬盤最多有一個擴展分區;最後兩個字節稱爲「魔數」,表示該分區是否可引導(可啓動)。操作系統


擴展分區實質是指向一個二級分區表,在二級分區表上又能夠創建若干新分區,稱爲邏輯分區。擴展分區不能被格式化。3d



LinuxIDE接口與SATA接口磁盤對應的設備文件:blog


Linux系統中,IDE接口磁盤的設備文件爲/dev/h[a-d],通常主機提供兩個IDE接口,每一個接口有主(master),從(slave)分別。每一個接口對應的設備文件以下:接口


/dev/ha進程


IDE1(主)圖片


/dev/hb


IDE1(從)


/dev/hc


IDE2(主)


/dev/hd


IDE2(從)


如某磁盤設備接在IDE2的主設備上,則其對應的設備文件爲/DEV/hc



SATA接口的磁盤設備中,SATA/USB/SCSI等設備的磁盤接口都是由SCSI模塊來驅動的,它們的設備文件爲/dev/sd[a-p]SATA設備的磁盤接口與設備文件並不是一一對應的關係,而是根據系統檢測到設備的前後次序決定對應的設備文件。如某磁盤A接在SATA1上,磁盤B接在SATA2上,某U盤也接在此主機上,則它們的設備文件依次爲/dev/sda/dev/sdb/dev/sdcU盤開機後纔可檢測到)。




建立一個可供用戶使用的分區分爲三個步驟:


一、劃分磁盤分區,並讓內核讀取識別之。


二、在磁盤分區上創建文件系統(即格式化)。


三、掛載至某目錄下。此目錄即成爲訪問該磁盤分區的入口。



全部分區都與根分區相關聯,即根分區下的目錄是全部分區直接或間接的訪問入口;但在物理層面上根分區與其餘分區是各自獨立、平行的。



劃分磁盤分區


使用命令fdisk


它是一個交互式的命令。使用其選項「-l」並指定設備則顯示該設備的全部分區信息,若無指定,則顯示/proc/partitions(即內核可識別的設備)中全部設備的分區信息。


使用「fdisk 設備文件」便可進入交互模式進行分區了(以/dev/sdb爲例):


165715708.png


/dev/sdb上創建分區使用選項n


165715244.png


e表示擴展分區,p表示主分區。本例建立兩個主分區和一個擴展分區:


165716340.png


建立過程當中須指定分區大小,可用柱面數,也可以使用K,M,G等單位,使用默認則直接敲回車。磁盤的開始柱面使用默認,不然會形成空間浪費。


165716539.png


建立擴展分區大小通常使用默認,不然會形成磁盤空間的浪費。擴展分區建立好以後就能夠在其上建立邏輯分區了。邏輯分區號默認從5開始,1-4默認是留給主分區的。


165717755.png


上圖爲建立兩個主分區,一個擴展分區,在擴展分區上建立了兩個邏輯分區。能夠看到擴展分區的Id System5 Extended.


建立完畢後使用w保存退出該命令。



建立分區完畢後要使用partxpartprobe命令通知內核,是內核識別各分區。如此兩命令出現異常,則重啓系統也可以使內核識別新建的各分區。


165717549.png


/proc/partitions文件中顯示的是內核已經識別了的各分區。上圖表示內核已經識別了新建的sdb設備上的各分區。



建立文件系統(格式化)


爲何要在分區上建立文件系統?若是沒有文件系統,數據的存儲將雜亂無章且沒有安全性,有了文件系統就能夠有效保護數據,按名存取文件內的數據。


使用命令mkfsmke2fs(針對ext系列文件系統)。若分區上已有數據,則從新建立文件系統,原數據將不復存在。


165717459.png


對指定分區建立文件系統的命令很是靈活,「.」後表示目前系統所支持的文件系統。例如其中的「mkfs.ext4 設備文件」表示在某分區上建立ext4文件系統。


165717927.png


仍以mkfs爲例,選項「-t」表示指定文件系統。上圖表示在sdb2分區上創建ext4文件系統,等同於命令「mkfs.ext4 設備文件」。



命令mke2fs只針對ext系列文件系統,但功能很是強大。如「-b」指定塊大小,「-L」指定卷標,「-m」指定預留塊的百分比。其中塊大小爲1K,2K,4K(塊大小取決於當前CPU對內存頁框大小的支持,X86系統默認頁框大小爲4k,因此塊大小應爲4k之內的2的乘方,即1k、2k、4k);預留塊表示硬盤預留給管理員管理磁盤使用的塊佔整個磁盤空間的百分比。


設置卷標也可以使用專門的命令,e2label


165717394.png


表示sdb6設備創建ext4文件系統,卷標爲MyDisk,塊大小爲4096,預留塊比例爲5%等。mke2fs其餘選項詳見man手冊。


ext文件系統的默認設置在配置文件/etc/mke2fs.conf中。


165718222.png


使用blkid命令可查看塊設備的UUID,卷標等相關信息;不加參數則查看全部塊設備。



命令tune2fs可修改分區上文件系統的許多屬性,其與mkfs的關係相似於useraddusermod的關係。


如「tune2fs-L 設備文件」可修改卷標,「tune2fs-m 設備文件」可修改保留塊比例等(詳見man手冊)。但若要更換文件系統類型與塊大小必須從新格式化。


tune2fs-l 設備文件」爲顯示超級塊信息(後續有關文件系統文章詳述)。




掛載


分區格式化以後就能夠掛載至某目錄下了,掛載至哪一個目錄,哪一個目錄即成爲該磁盤分區的入口。


使用命令mount。若是不加任何參數,則顯示當前系統中全部分區掛載的狀況。


掛載至某目錄通常格式:「mount 設備文件 目錄」。其中設備文件即格式化的分區,也可以使用UUID,卷標來標識,如「mount label=MyDisk 目錄」。其中目錄即所謂的掛載點。


若是掛載點原本有數據,則掛載以後,原數據會被隱藏,卸載以後恢復。


上述使用指令掛載的結果在重啓主機以後即失效,若需永遠有效,可把掛載信息寫入配置文件/etc/fstab中(寫入此文件中會永久有效但不會當即生效)。


mount-a」表示掛載/etc/fstab中全部支持掛載選項auto(默認有auto)的文件系統。


165719832.png


/etc/fstab文件中的內容每行以空格分隔,分爲6段:


一、掛載分區的設備文件;也可用UUID或卷標指定


二、掛載點


三、掛載分區使用的文件系統


四、掛載選項:衆多掛載選項使分區掛載更靈活,使用命令mount的「-o」選項便可調整掛載選項,如defaultsroautoremount等選項(詳見man手冊);若需永久有效寫入/etc/fstab中的第四字段便可。


五、轉儲頻率:即備份的頻率,0表示從不備份,1表示天天備份,2表示隔天備份等;dump命令也可修改轉儲頻率。


六、自檢次序(後續文件系統文章詳述)。




卸載


使用命令umount,用法格式爲「umount 掛載點」或「umount 分區設備文件」。


若是某進程正在使用掛載點目錄,則沒法卸載。可以使用「fuser 掛載點」查看哪一個進程正在訪問;若有必要,可以使用「fuser-km 掛載點」強行殺死正在訪問指定掛載點的進程。




交換分區及其掛載與卸載


一個進程在運行時要佔用內存空間。Linux操做系統支持多進程。若是多個進程同時使用內存空間,頗有能相互影響。爲了保護內存引入內存管理單元(MMU)的概念。把內存分紅一個個頁框;各進程使用虛擬的線性地址空間做爲其內存,該線性地址空間的大小取決於CPU的字長(即尋址能力),如32位的CPU可尋址2^32字節,即4G。由線性地址空間映射到物理內存而不是直接使用,便可有效保護內存。


但線性地址空間每每比真實的物理內存大,當真正的物理內存不夠用時,就要使用交換分區暫時存放內存當前不須要處理的數據。


交換分區實際就是磁盤上的分區,速度相比內存要慢不少,因此對於要求實時響應的服務器,主要靠內存,交換分區很小。


建立交換分區一樣遵循三個步驟:劃分磁盤分區,建立文件系統,掛載:


165722580.png


劃分磁盤分區如前所述,但要將Id System改成swap,使用t改變分區的Id System,使用l可列出全部分區類型,選擇其前面的編號便可。交換分區類型爲82


165722865.png


sdb6分區類型變爲swap後就能夠在其上建立swap文件系統了。



建立swap文件系統,使用命令mkswap,格式爲「mkswap 分區設備文件」,建立時可以使用「-L」選項設定其卷標等。



啓用swap分區至關於普通分區的掛載。使用命令swapon,格式爲「swapon 設備文件」表示啓用指定交換分區,無需指明掛載點。使用「-a」選項表示啓用當前系統上全部交換分區。


禁用swap分區至關於普通文件的卸載。使用命令swapoff,格式爲「swapoff 設備文件」。


若須要開機即啓動交換分區,則普通分區同樣寫入配置文件/etc/fstab便可。其文件系統和掛載點均爲swap



165723893.png


使用命令free可查看當前內存與交換分區的使用與空閒狀況,選項「-m」指定顯示單位爲「兆」。

相關文章
相關標籤/搜索