linux系統管理之磁盤分區管理

    對於磁盤分區,首先需要了解磁盤的物理結構,才能明白磁盤分區是按照什麼邏輯結構來進行的。

    首先來了解下磁盤的物理結構。

wKioL1XcZF2Q_x0AAAEZqbgemck761.jpg

實際的機械式磁盤就是有以下幾個部分組成的(固體硬盤除外):

轉軸:帶動盤片進行旋轉的中心軸。

扇區(Sector):以同心圓以放射狀的方式分割出的磁盤的最小存儲單元,叫做扇區。常見的機械式磁盤的扇區大小是512bytes(有例外)。

磁道(Track):扇區組成的一個圓就稱爲一個磁道。

柱面(Cylinder):在所有盤面上的同一個磁道組成一個柱面。

讀寫頭(Head):用來讀寫數據的彈片

硬盤存儲量公式:Head*Cylinder*Sector*512bytes.一般製造廠商在顯示硬盤容量是大多是以十進制數來編號,因此大部分的實際硬盤容量都會小於廠商標出的容量大小。


註釋:對於此前的機械式硬盤,扇區是固定的512bytes,但是後來廠商爲了提高容量,擴大了扇區的大小,從而使的單個磁盤的單個分區不在侷限於最大2TB,詳細可自行查找“GPT”的意思。


   接下來介紹說磁盤分區?

對於MBR分區表的磁盤(就是常見的普通的機械式硬盤,GPT分區表的磁盤除外)來說,MBR(Main Boot Record 主引導記錄區) 位於整個硬盤的0磁道0柱面1扇區。不過,在總共512字節的主引導扇區中,MBR只佔用了其中的446個字節,另外的64個字節交給了DPT(Disk Partition Table硬盤分區表),記錄的是分區的簡單信息情況,最後兩個字節“55,AA”是分區的結束標誌。這個整體構成了硬盤的主引導扇區。而在DPT的64bytes中,每16個bytes記錄了一個分區的信息,因此一個機械式硬盤默認只能有4個主分區。但是在某些情況下我們看多於4個分區的情況,那是其中一個主分區該爲了擴展分區,在擴展分區的基礎上繼續劃分不同的邏輯分區(但是對於不同分區表的磁盤邏輯分區的個數也是有限制的)。

  一般來說我們的分區標準是按照柱面來分區的(在centos7上是按扇區號來分區的)。


  接下來簡單說一下數據在硬盤上是如何進行邏輯存儲的。

  但是數據在實際存儲的時候是按我們的邏輯結構來存儲的。對linux來說一切皆文件。所以文件在硬盤上的存儲分爲兩部分,一部分是文件的元數據(包括文件的一些屬性信息),另一部分是文件的實際數據。所以爲了安照這種格式存儲,我們將磁盤在邏輯上分爲inode區和block區。這種存儲方式成爲索引式存儲。

inode區:用來存儲文件的屬性信息和block編號。

block區:用來存放實際數據的區域。

在進行分區時可以指定inode的個數和block的大小。


對於linux系統來說,可以使用多種分區工具來進行分區。(註釋:本人使用學習使用的是centos7和redhat6),相關的分區工具如:fdisk、parted、sfdisk等。這裏主要介紹fdisk的一些常用選項。parter和sfdisk命令可自行查看man手冊或者網上查看使用幫助。(自我習慣了fdisk)


使用格式: 

fdisk   [options]  device

[options]:

    -l :fdisk -l device 表示打印指定的設備的分區情況,不指定device表示打印系統上所有硬盤的分區情況。

    進行磁盤分區使用 fdisk device,對指定設備名的磁盤進行分區。

    -n :表示新建一個分區。

    -p :打印已有的分區。

    -d :刪除指定編號的分區。

    -w :保存分區表並自動寫入磁盤。

    -q :不保存分區表退出。

    -m :顯示幫助提示。

    -l :列出當前系統支持的分區id號(id好代表相應的分區類型)

    -t :修改以有分區的id號

對於linux系統來說,在進行磁盤分區完成後,內核不一定能自動識別新的磁盤分區情況。(之所以說不一定是對linux系統的版本來說的,具體可使用 cat /proc/partitions 查看文件內容。centos7上分區完成後直接可以在這個文件中查看到的)。需要手動通知內核重讀分區表。使用的命令有partx、kpartx和partprobe(具體看使用的系統版本支持哪個)。此處介紹partx命令的常用選項。

使用格式:

partx [options] device

    -a : 添加指定的分區或所有分區。

    -d :刪除指定的分區或所有分區。

    -s :列出指定分區或所有分區。

    -u : 更新指定分區或所有分區。

    -b :以字節爲單位而非易讀的方式來打印size。


接下來就是將磁盤格式化操作。不同的操作系統可識別的文件系統類型是不同的。在進行存儲時需要先將磁盤格式化爲操作系統可識別的文件系統類型。

    對於文件系統類型,列出以下幾種和支持其的操作系統(類型不全,可自行了解文件系統類型)。

linux系統 :ext2、ext3、ext4、xfs、btrfs、reiserfs、jfs、swap

unix系統  :FFS、UFS、JFS2

網絡文件系統:NFS、CIFS

集羣文件系統:GFS2、OCFS2

分佈式文件系統:ceph、moosefe、mogilefs、NTFS


對於linux來說,文件系統可分爲兩個組成部分:

一:內核中的模塊,ext4,xfs,vfat(使用lsmod可查看)。

二:用戶空間的管理工具:mkfs.ext4、mkfs.xfs、mkfs.vfat(查看當前系統支持的工具 cat /proc/filesystems)


接下來說幾個用於創建文集系統的工具(格式化磁盤)。如mkfs、mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.xfs、mkfs.btrfs、mkswap等。


幾種格式化方式:

1、mkfs.FS_TYPE /dev/sd#

  FS_TYPE類型:ext4、xfs、btrfs、

2、mkfs -t FS_TYPE /dev/sda#

3、對ext系列的文件系統類型可用專門的格式化工具。

mke2fs:

 -t {ext2|ext3|ext4}

 -b {1024|2048|4096}

 -L ”label“指定卷標

 -j:相當於-t ext3

      mkfs.ext3=mkfs -t ext3 =mke2fs -j = mke2fs -t ext3

 -i # :爲數據空間指定每多少個字節創建一個inode,次大小不應該小於block的大小

 -N #:爲數據空間指定多少個inode

 -m # :爲管理人員預留的空間佔據的百分比

 -o FEATURE[,,]:表示啓動指定特性

   -o ^FEATURE :關閉指定特性

4、

mkswap:創建交換分區

 mkswap [options]

  注意:前提需要使用fdisk修改分區id爲swap

另外介紹一些其他的管理文件系統常用工具:

blkid:塊設備屬性信息查看

  -U UUID :根據指定的uuid值查找對應的設備

  -L LABEL :根據指定的label來查找對應的設備


e2label:管理ext系列文件系統的label

  e2label device [new_label]

tune2fs:重新設定ext系列的文件系統可調整參數的值

 -l :查看指定文件系統超級塊信息

 -L 'LABEL' :修改卷標

 -m #:修改預留給管理員的空間百分比

 -j: 打開日誌功能,可將ext2升級爲ext3

 -O: 文件系統屬性啓用或禁用

 -o :調整文件系統的默認掛載選項

 -U UUID: 修改uuid

dumpe2fs:

  -h:查看超級塊信息


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章