linux磁盤管理及文件系統介紹

    硬盤是計算機必備組成部分,現在的硬盤分固態硬盤和傳統機械硬盤,這里要介紹的是傳統機械硬盤。

    一.硬盤最基本結構

        1.硬盤是由堅硬金屬材料制成的涂以磁性介質的盤片,不同容量硬盤的盤片數不等。每個盤片有兩面,都可記錄信息。每個磁道被分成許多扇形的區域,每個區域叫一個扇區,每個扇區可存儲128×2的N次方(N=0.1.2.3)字節信息。在DOS中每扇區是128×2的2次方=512字節,盤片表面上以盤片中心為圓心,不同半徑的同心圓稱為磁道。硬盤中,不同盤片相同半徑的磁道所組成的圓柱稱為柱面,如下圖所示:

blob.png

        2.MBR

        MBR:Master Boot Record,即硬盤的主引導記錄,位于0磁道0扇區,大小512bytes。

        boot loader:引導加載器存放在MBR的前446bytes,用于引導操作系統。

        分區表:存放在boot loader之后的64bytes,用于存放分區信息。

        2bytes: 55AA(分區有效標識)

        

    二.磁盤的分區管理

       1. 由于分區表只有64bytes,一個分區占用大小16bytes,所以只能創建4個分區,通常使用 3主分區+1擴展(N個邏輯分區)  的分區模式。使用fdisk命令工具進行分區。

         fdisk -l [device…]   查看設備分區情況

     blob.png

        fdisk device    進入對設備磁盤進行操作

                                                                

blob.png

        常用的操作指令如下:

        d delete a partition  這是刪除一個分區的動作;
        l list known partition types  是列出分區類型,以供我們設置相應分區的類型;
        m print this menu   是列出幫助信息;
        n add a new partition   添加一個分區;
        p print the partition table  列出分區表;
        q quit without saving changes  不保存退出;
        t change a partition's system id   改變分區類型;
        w write table to disk and exit  把分區表寫入硬盤并退出;
      

        2.創建分區步驟:

            1).先輸入n創建分區

            2).選擇分區 e擴展分區 p主分區

            3).確認創建的分區號

            4).確認起始和終止柱面

            5).調整分區類型,L查看分區類型

            6).最后w把分區表寫入硬盤并退出

            

         

        blob.png    

        3.把分區信息同步到內核

            partx -a /dev/DEVICE 

            blob.png

            上述錯誤是正常現象用cat /proc/partitions 查看內核中是否已存在該分區信息

                                                                   blob.png 

        三.文件系統

              在告知系統我的 partition 所在的起始與結束磁柱之后,之后則需要將 partition 格式化為我的操作系統認識的文件系統,常用的文件系統如下:

                Linux文件系統: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap

                swap: 交換分區

                光盤:iso9660

                Windows:fat32, ntfs

                Unix: FFS, UFS, JFS2

                網絡文件系統:NFS, CIFS

                集群文件系統:GFS2, OCFS2

                分布式文件系統:ceph, moosefs, mogilefs, GlusterFS, Lustre

              linux默認都支持ext文件系統,當一個 ext2 的 filesystem 被建立時, 他擁有 superblock / group description / block bitmap / inode bitmap / inode table / data             blocks 等等區域。要注意的是,每個ext2 filesystem 在被建立的時候,會依據 partition 的大小, 給予數個 block group ,而每個 block group 就有上述的這些部分。整個             filesystem 的架構可以下圖展現:

            

           blob.png

                 為了簡化,假設一個文件系統僅有1個blockgroup。

                  block:用來儲存數據的最小單元,Block 的大小為 扇區 的 2 的次方倍數。

                  inode:每個文件都對應著一個inode,inode存儲著文件的元數據

                  SuperBlock:記錄整個 filesystem 相關信息,block和inode的總量和使用情況等等。

                  Group Description:記錄 blockgroup 由何處開始記錄。

                  Block bitmap:記錄哪個 block 有沒有被使用。  

                  Inode bitmap:此處記錄那個 inode 有沒有被使用。

                  Inode table:記錄每個inode number對應文件所對應的metadata(元數據)。

                  Data Blocks: block 數據存放區。 

 

            可以通過dumpe2fs  分區  查看上述描述的信息。

            

blob.png

               

             當我們新增一個文件或目錄時:

                    1. 根據 inode bitmap / block bitmap 的信息,找到尚未被使用的 inode 與 block , 進而將檔案的屬性與數據分別記載進 inode 與 block ;

                    2. 將剛剛被利用的 inode 與 block 的號碼 (number) 告知 superblock、inode bitmap、block bitmap 等,讓這些 metadata 更新信息。

 

 

                    

原創文章,作者:zxhy,如若轉載,請注明出處:http://www.www58058.com/18340

(0)
zxhyzxhy
上一篇 2016-06-22 15:40
下一篇 2016-06-22 15:41

相關推薦

  • linux系統基礎目錄結構及功能說明

    linux系統基礎目錄結構及功能說明 [root@localhost /]# ls bin boot dev etc home host lib lib64 media mnt opt proc root run sbin srv sys tmp usr var /bin:所有用戶可用的基本命令程序文件;/sbin:供系統管理使用的工具程序;/boot:引導…

    Linux干貨 2018-03-04
  • 深入理解java異常處理機制

     1. 引子        try…catch…finally恐怕是大家再熟悉不過的語句了,而且感覺用起來也是很簡單,邏輯上似乎也是很容易理解。不過,我親自體驗的“教訓”告訴我,這個東西可不是想象中的那么簡單、聽話。不信?那你看看下面的代碼,“猜猜”它執行后的結果會是什么?不要往后看答案、也不許執行代碼看真正…

    Linux干貨 2015-04-12
  • Bash腳本寫法及變量如何使用

    Bash是什么? bash腳本是作為linux執行與內核交互的一個方便快捷的腳本語言工具。它可以幫助我們快速的解決問題。 Bash寫法: 需要創建一個文件,以.sh結尾。這樣就生成一個腳本文件 我們文件內容開頭要以#!/bin/bash 開頭,這是腳本規定的格式,目的是告訴編譯器我們這個腳本是bash類型的腳本。 當上述工作都做好以后,我們就可以正式開始腳本…

    Linux干貨 2017-04-10
  • git

    1.1 Git的安裝 1.1.1 版本 # cat /etc/redhat-release CentOS release 6.8 (Final) # uname -r 2.6.32-642.4.2.el6.x86_64 # uname -m x86_64 1.1.2 安裝 可以直接通過源碼安裝。先從Git官網下載源碼,然后解壓,…

    Linux干貨 2016-10-31
  • date初步認識

    linux命令date的初步認識

    Linux干貨 2017-11-11
  • 如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果

    命令別名使用alias命令; ~]#alias NAME='COMMAND' 在一個命令中引用另一個命令的執行結果也是bash的特性之一,引用。 方法:$(COMMAND)

    Linux干貨 2016-11-06
欧美性久久久久