Linux 磁盤管理及基礎命令使用

磁盤簡介

       計算機總是需要記錄與讀取數據的,而這些數據當然不可能每次都由用戶經過鍵盤來打字。所以就需要有存儲設備了。計算機系統上面的存儲設備包括硬盤、軟盤、CD、DVD、磁帶機、U盤等,都是可以用來存儲數據的。最常見的也就是硬盤了,下面我們就來簡單介紹下硬盤吧。

一、磁盤的物裏組成
盤片:主要是用來記錄數據的部分。
                  扇區(Sector)爲最小的物理存儲單位,第個扇區爲512bytes;
                  將扇區組成一個圓,那就是柱面(Cylinder),柱面是分區(Parition)的最小單位;
                  第一個扇區最重要,裏面有引導記錄(Masterbootrecord,MBR)及分區表(partition table),其中                       MBR佔446bytes,而分區表佔有64bytes。
機械手臂與機械手臂上的磁頭:可讀寫盤片上的數據。
主軸馬達:可以轉動盤片,讓機械手臂的磁頭在盤片上讀寫數據。

二、磁盤的分區
       主分區與擴展分區最多可以有4個(分區表64字節,每分區佔16字節);
       擴展分區最多只能有一個;
       邏輯分區是由擴展分區持續分出來的分區;
       能夠被格式化後作爲數據訪問的分區爲主要分區與邏輯分區,擴展分區無法格式化;
       邏輯分區的數量以操作系統而不同,在Linux系統中,IDE硬盤最多有59個邏輯分區(5-63),SATA硬盤則有11個邏輯分區(5-15);

三、各接口的磁盤在Linux中的文件名分別爲
       /dev/sd[a-p][1-15]:爲SCSI,SATA,USB,Flash等接口的磁盤文件名;
      /dev/hd[a-d][1-63]:爲IDE接口的磁盤文件名;

四、文件系統分類
       Windows :NTFSFAT32
       Linux:ext2、ext3ext4xfsreiserfsnfsiso9660jfsbrtfs

       小結:通過以上內容,我們簡單瞭解了磁盤的組成、分區、接口的磁盤命名及文件系統的分類。下面我們來具體看下磁盤分區、格式化及磁盤掛載所使用到的命令。我們分別介紹一下:

五、磁盤分區 fdisk
       格式:fdisk [options] <設備名稱>
     【參數】
         -l:輸出後面接的設備所有的分區內容。若僅有fdisk -l 時,則系統將會把整個系統內核能夠找到的設備的分區均列出來。

       舉例 :查看第二塊磁盤(sdb)的分區情況,我們可以通過以下命令來查看:


# [root@lab02 ~]# fdisk -l /dev/sdb

214951242.png


       如果想要查看所有硬盤分區,即可使用以下命令,不加設備名即可,我們就可以看到所有掛載的磁盤:

# [root@lab02 ~]# fdisk -l


215005692.png


       下面我們來看下fdisk這個命令是如何來進行分區的。剛剛已介紹過格式了,我們先來執行一下看看吧。
[root@lab02 ~]# fdisk /dev/sdb

215546419.png





       使用fdisk這個程序是完全不需要我們記這些命令的,如上所示,我們只需要按下m就能夠看到所有的操作。上面標記爲藍色的是幾個比較重要的操作。其中比較不一樣的是q與w這兩個,不管你進行了什麼操作,只要離開fdisk時按下"q",那麼所有的操作都不會生效!相反,按下“w”就是操作生效的意思。所以,可以隨便玩玩fdisk,只要離開的時候按下q就可以了。我們先來看看分區表的信息吧。


215721450.png


       使用“p”可以列出目前這塊磁盤的分區表信息,這個信息的上半部分顯示整體磁盤的狀態。下半部分的分區表信息主要列出第個分區的信息項目。每個項目的意義爲:
       Device:設備文件名,依據不同的磁盤接口/分區位置而變;
       Boot:表示是否爲開機引導模塊,通常Windows系統的C盤需要這模塊;
       Start,End:表示這個分區在哪個柱面號碼之間,可以決定此分區的大小;
       Blocks:就是以1K爲單位的容量;
       ID,System:代表這個分區的文件系統類型。

下面我們來新建一個分區吧,看看效果吧:

220215328.png

       分區創建好了,我們輸入“w”保存即可。然後通過fdisk -l /dev/sdb查看下吧。分區創建好了,內核是否正常加載了我們剛剛創建的分區呢?我們可以通過查看下面的文件來得到答案。

[root@lab02 ~]#cat /proc/partitions
       major minor  #blocks  name
      8       16  125829120 sdb
      8       17    5253223 sdb1
      8       18    5253255 sdb2        <--  此處表明內核已加載了新創建的分區;
      8        0  125829120 sda
      8        1     512000 sda1
      8        2  125316096 sda2
    253        0   52428800 dm-0
    253        1    1015808 dm-1
    253        2   71868416 dm-2

       如果在此文件中,沒有被內核識別的話,讓內核重新加載分區信息,我們可以通過以下命令:
       RHEL5讓內核重新讀取硬盤分區表:
partprobe [DEVICE]

       RHEL6讓內核重新讀取硬盤分區表:
partx -a [PARTITION] DEVICE

       到此,一個分區,我們就已經創建好了!比較容易吧,下面我們在來創建一個擴展分區,然後在建一個邏輯分區看看具體過程吧。

221210191.png

221212583.png



       擴展分區能及邏輯分區都創建好了,我們輸入“w”保存即可。刪除分區就更容易了,在這裏就不做介紹了。創建分區部分內容就介紹到這裏了。
       分區創建好了,下面我們就要對創建好的分區進行格式化,要不然新建的分區是不能使用的。我們來看看格式化的命令吧!

六、磁盤格式化 mkfs mke2fs
       分區完畢後自然就是要進行文件系統的格式化。格式化的命令非常簡單,那就是mkfs(即 make file system之意)這個命令。這個命令其它是個綜合的命令,它會去調用正確的文件系統格式化工具軟件。

格式:mkfs [-t 文件系統格式] 設備文件
     【參數】
           -t:可以接文件系統格式,例如:ext2、ext3、ext4、vfat等(系統支持纔會生效)
           例 :將剛剛創建的/dev/sdb5邏輯分區格式化爲ext4文件系統
           [root@lab02 ~]#mkfs -t ext4 /dev/sdb5
           mke2fs 1.41.12 (17-May-2010)
           Filesystem label=
           OS type: Linux
           Block size=4096 (log=2)
           Fragment size=4096 (log=2)
           Stride=0 blocks, Stripe width=0 blocks
           328656 inodes, 1313305 blocks
           65665 blocks (5.00%) reserved for the super user
           First data block=0
           Maximum filesystem blocks=1346371584
           41 block groups
           32768 blocks per group, 32768 fragments per group
           8016 inodes per group
           Superblock backups stored on blocks:
           32768, 98304, 163840, 229376, 294912, 819200, 884736

           Writing inode tables: done                            
           Creating journal (32768 blocks): done
           Writing superblocks and filesystem accounting information: done

           This filesystem will be automatically checked every 25 mounts or
           180 days, whichever comes first.  Use tune2fs -c or -i to override.

           看看還有那些格式化命令:
           [root@lab02 ~]# mkfs
           mkfs          mkfs.cramfs   mkfs.ext2     mkfs.ext3     mkfs.ext4     mkfs.ext4dev

           這些都是格式化的命令哦,在往下看看,你就會更清楚了!
           mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4
           mkfs -t ext3 = mkfs.ext3 = mke2fs -j = mke2fs -t ext3
           mkfs -t ext2 = mkfs.ext2 = mke2fs = mke2fs -t ext2
            現在是不是更清楚了啊,我相信你會懂的哦!在格式化完成我,我們會發現結果裏面含有非常多的信息,由於我們沒有詳細指定文件系統的具體選項,因此mkfs命令格式化會使用默認值來進行格式化。其中比較重要的部分爲:文件系統的卷標、block的大小、以及inode的數量。如果要指定這些內容就得要使用mke2fs這個命令嘍!

       格式:mke2fs [-t {ext2|ext3|ext4}] [-b block 大小] [-L 卷標] 設備名
       -b {1024|2048|4096}:塊大小
               塊大小取決CPU對內存頁框大小的支持,x86系統默認頁框大小爲4K;
       -L label: 設定卷標
       -m #: 預留給管理使用的塊所佔據總體空間的比例;
       -r #:  預留給管理使用的塊的個數;
       -E: 設定文件系統的擴展屬性;

       例:將/dev/sdb5 分區格式化,block設置爲2048,卷標設置爲my_lgh;
# mke2fs -t ext4 -b 2048 -L "my_lgh" /dev/sdb5

       通過以下命令查看格式化後是否按需求修改了配置:
[root@lab02 /]#blkid /dev/sdb5
      /dev/sdb5: UUID="dc89a957-0aa5-454b-856b-782aab42f04a" TYPE="ext4"LABEL="my_lgh"

[root@lab02 /]#tune2fs -l /dev/sdb5
       First block:              0
       Block size:               2048
       Fragment size:            2048
       Reserved GDT blocks:      512
       Blocks per group:         16384

       下面我們在來看一個和mke2fs相關的命令,tune2fs主要用來修改卷標、整預留給管理使用的塊所佔據總體空間的比例等內容:

         格式:tune2fs [參數] 設備名
         -l: 顯示文件系統超級塊信息;
         -L label:重新設定卷標;
         -m #: 調整預留給管理使用的塊所佔據總體空間的比例;
         -r #: 調整預留給管理使用的塊個數;
         -o:設定掛載默認選項
         -O: 設定文件系統默認特性
         -E: 調整文件系統的擴展屬性

       例:調整預留給管理使用的塊所佔據總體空間的比例調至3%
       [root@lab02 /]# tune2fs -m 3 /dev/sdb5

       e2label: 顯示或設定卷標;
       格式:e2label DEVICE [Volume_label]
       # e2label /dev/sdb5    查看卷標
       # e2label /dev/sdb5 my_label    修改卷標

       blkid DEVICE: 顯示設備的UUID、文件系統類型及卷標;

七、磁盤掛載與卸載 mount umount
       掛載前需要確認以下幾件事情:
       單一文件系統不應該被重複掛載在不同的掛載點中;
       單一目錄不應該重複掛載多個文件系統;
       作爲掛載點的目錄理論上應該都是空目錄纔對;

       mount 命令:
       格式:mount -t fstype [options] DEVICE MOUNT_POINT
       DEVICE:
       設備文件:/dev/sda1, /dev/hdb2
       卷標:LABEL=“label”
       UUID: UUID="uuid"
       MOUNT_POINT:要掛載到那個目錄

       選項:
       -o: 用於指定掛載選項,常用的掛載選項
       ro: 只讀掛載;
       rw: 讀寫,默認即爲讀寫;
       noatime: 關閉 更新 訪問時間;
       auto: 是否能夠由“mount -a”掛載;
       defaults:相當於rw, suid, dev, exec, auto, nouser, async, and relatime
       sync: 同步寫入
       async:異步寫入
       dev:
       remount: 重新掛載
       loop: 本地迴環設備;
       -n: 掛載文件系統時,不更新/etc/mtab文件;
       -r: 相當於“-o ro”, 只讀掛載;

       舉個例子吧,讓我們來看看掛載命令的具體使用,將我們剛創建的/dev/sdb5邏輯分區掛載到/mydata目錄下。
       [root@lab02 /]#mount /dev/sdb5 /mydata/
       [root@lab02 /]# ll /mydata/
       total 16
       drwx------. 2 root root 16384 Dec 23 18:10 lost+found

       /mydata 目錄必須事先存在,掛載成功後目錄中會生成一個lost+found目錄。掛載好後,我們就可以正常使用新建的分區了。掛載說完了,我們在來看看怎麼卸載吧。

       umount 命令:
       格式:umount DEVICE
       umount MOUNT_POINT

       卸載比較簡單,我們直接舉個例看下就好了。將剛纔掛載到/mydata目錄在卸載掉。

       [root@lab02 /]#umount /mydata/
       [root@lab02 /]# cd /mydata/
       [root@lab02 mydata]# ls

八、設置開機掛載
       設置開機掛載,需要修改/etc/fstab文件,這個文件內容共有六個字段,這六個字段非常重要,各字段的含義如下:
       第一列:磁盤設備文件名或該設備的Label
       第二列:掛載點
       第三列:磁盤分區的文件系統
       第四列:文件系統參數
       第五列:是否被dump命令作用
       第六列:是否以fsck檢查扇區

       [root@lab02 /]#vim /etc/fstab    在此文件後加如以下一行內容,即可實現開機掛載。
       /dev/sdb5               /mydata                 ext4    defaults        0 0


       總結:Linux 磁盤管理及基礎命令使用就先介紹到這裏了,本文主要介紹了磁盤的物理組成、磁盤的分區、文件系統的分類,磁盤分區命令fdisk、mke2fs、磁盤格式化命令mkfs、磁盤掛載命令mount、磁盤卸載命令umout以及開機自動掛載的基本使用。希望對大家有所幫助哦。


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