磁盤管理和文件系統管理

linux磁盤管理


    如今市面上硬盤主要爲兩種:機械式硬盤  和固態硬盤(SSD)node

機械式硬盤linux

同心圓劃分紅多個track磁道,每一個磁道上有必定數量的扇區(secotr),每一個盤面上編號相同的磁道組成了柱面(cylinder)數據庫

 

每一個扇區的大小爲512byteswindows

     MBR模式下0磁道上0扇區爲master boot record主引導扇區centos

           前446bytes:存放了bootloafer引導加載器,啓動磁盤中的操做系統網絡

           接着的64bytes:存放磁盤中的文件系統分區表,每16bytes標識一個分區,因此MBR最多隻能認4個分區,若超過4個分區需使用擴展分區,在擴展分區中標註若干個邏輯分區。異步

              剩餘的2bytes用於結束標誌 55 AAasync

 

識別硬盤在linux系統中的文件:/dev/sd【a-z】ide

        不一樣的硬盤最後標註的字母不一樣  /dev/sda  /dev/sdb工具

        同一硬盤上的不一樣分區 最後標註的數字不一樣:/dev/sda1    /dev/sda2

                   1-4用於標註主或擴展分區

                   5以上用於標註邏輯分區(由擴展分區中劃分的)

 

設備文件是一種特殊的文件 分爲塊設備文件和字符設備文件 

               塊設備文件:存取單位爲數據塊,隨機存取

               字符設備文件:存取單位爲字符,線性存取

分區:分割存儲空間爲多個小空間,每一個空間能夠獨立使用文件系統      
         fdisk,parted, sfdisk      
        分區工具:fdisk      
            格式 fdisl 【option】硬盤文件名      
                管理子命令:      
                    p:顯示      
                    n:建立      
                    d:刪除      
                    t:修改分區ID      
                    l:列出全部支持的分區類型ID      
                    w:保存並退出      
                    q:放棄保存並退出      
                    m:得到幫助

p_w_picpath

p_w_picpath

 

分區大小能夠用數值和單位肯定,沒必要計算柱面

p_w_picpath

 p_w_picpath      
                建立完成後,查看內核是否已經識別新的分區      
                cat /proc/partitions      
 p_w_picpath      
                有三個命令可讓內核讀取磁盤分區表:      
                    CentOS 5: partprobe [DEVICE]

                     centos6,7      
                        partx      
                            partx DEVICE 顯示設備的分區      
                            partx -a DEVICE 向內核添加分區信息,已有的重複提交會報錯      
                            partx -a -n M:N DEVICE向內核添加指定的分區信息,避免添加已有的。

                         kpartx命令:      
                             kpartx -af DEVICE

linux文件系統管理      

        文件系統:編輯地址有本身的索引,便於計算機管理。      
       
            linux使用vmfs(虛擬文件系統)統一各種文件系統的接口      
           
            linux:ext2,ext3,ext4,reiserfs,xfs,btefs,swap      
            光盤:iso9660      
            windows:fat32,ntfs      
            unix:ffs,ufs,jfs,jfs2      
           
            (1)日誌型文件系統      
                    ext3      
                 在磁盤空間專門開闢一個日誌區放元數據,帶元數據所對應的數據庫寫完後將元數據寫到元數據區。這樣當在寫數據時,發生錯誤須要自檢時能夠直接在日誌區尋找發生錯誤的元數據,而不須要遍歷全部數據區      
                
            (2)swap交換      
           
                每一個進程都自認爲物理內存都爲本身所用,一旦進程使用過大內存形成內存耗盡。這時候須要將內存中暫時不使用的數據寫到磁盤的swap分區中,以騰出物理內存空間。待須要這批數據時再寫回物理內存。      
           
       
        建立文件系統      
        在分區上執行格式化(高級格式化)      
            要使用某種文件系統,知足兩個條件:      
                內核中:支持此種文件系統      
                用戶空間:有文件系統管理工具


        建立工具:mkfs (make filesystem)      
            mkfs -t type DEVICE

                mkfs.type DEVICE

            ext系列文件系統的專用管理工具:      
              

                mke2fs [OPTION]... DEVICE      
                               -t     {ext2|ext3|ext4}      
                               -b {1024|2048|4096}      
                               -L 'LABEL'      
                               -j: mke2fs -t ext3      
                               -i #:爲inode指定字節數

                               -N #:爲文件系統分配多少個inode      
                               -m #: 預留磁盤空間佔據多大百分比的空間爲後期管理使用;      
                               -O FEATURE[,...] 開啓某些特性      
                               -O ^FEATURE:關閉此特性

p_w_picpath

            blkid命令:查看分區信息      
                blkid DEVICE      
                    LABEL, UUID, TYPE

p_w_picpath

文件系統屬性查看及調整工具      
    e2label:e2lable DEVICE [LABEL]      
        管理設備或者分區的卷標      
        帶卷標名則爲設定 不帶卷標名則是查看功能

p_w_picpath      
    
    tune2fs      
        顯示ext系列文件系統的屬性,或調整其屬性

    格式:

    tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]    
    [-i interval[d|m|w]] [-j] [-J journal_options] [-l]      
    [-m reserved_blocks_percent] [-o [^]mount_options[,...]]      
    [-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]      
    [-M last_mounted_dir] [-O [^]feature[,...]]      
    [-E extended-option[,...]] [-T last_check_time] [-U UUID]      
    [ -I new_inode_size ] device

 

        -l 顯示超級塊中的信息:顯示整個文件的屬性及佈局等相關信息      
        -L 修改卷標名字      
        -m # :調整預留給管理員的後期管理空間的百分比      
        -j:ext2的文件系統升級爲ext3且不影響原有數據 
       -O [^] feature[,...]:  調整分區特性

       -o [^] mount-options[,...]:  設定其默認掛載選項

                    async: 異步I/O

                    sync: 同步I/O

                    noatime/atime: 是否更新訪問時間戳,建議noatime

                    auto/noauto: 是否可以被mount -a選項自動掛載;

                    diratime/nodiratime: 是否更新目錄的訪問時間戳;

                    exec/noexec:是否容許執行其中的二進制程序;

                    _netdev: 在網絡設備啓用以前禁止嘗試掛載網絡設備

                    remount: 從新掛載

                    acl: 啓用facl  文件訪問控制列表

                    ro:掛載爲只讀

                    rw:掛載爲可讀寫

                    user/nouser: 是否容許普通用戶掛載此設備

       p_w_picpath

      p_w_picpath

      p_w_picpath

    dump2fs:      
        顯示ext系列整個文件系統的佈局結構及超級塊信息      
        -h:僅顯示超級塊信息

文件系統檢測:    
        fsck: Filesystem check      
            fsck -t type      
            fsck.type      
                -a: 自動修復錯誤      
                -r: 交互式修復錯誤      
                -f: 強制檢測

        e2fsck:ext系列文件系統專用的檢測修復工具;    
            -y: 自動回答爲「yes」      
            -f:force

文件系統的掛載和使用      
    kernel --》 rootfs(分區)      
   
        擁有:bin,sbin,etc,lib,lib64,dev,tmp,proc,sys)      
       
        內核啓動後便能找到跟文件所在的分區/, 其餘分區的若要使用必須直接或間接的掛載到/根文件系統下的目錄      
       
        將額外文件系統與根文件系統目錄下的現存的目錄相關聯,使該目錄成爲額外文件系統的訪問入口。這樣的行爲成爲掛載      
       
        卸載是取消文件系統和根文件下目錄的關聯      
       
        掛載點若是有文件,則掛載後其內部原有的文件會被隱藏卸載後從新出現,建議使用空文件      
       
        掛載方法:      
        mount:經過讀取/etc/mtab文件來顯示當前文件系統全部已經掛載的設備      
        mount -a :自動掛載/etc/fstab文件中的支持自動掛載的文件系統      
        p_w_picpath      
      

        mount [options] [-o options] DEVICE MOUNT_POINT    
            [options]:命令選項      
            [-o options]:掛載選項

        DEVICE:要掛載的設備 
            1.設備文件 /dev/sda5      
            2.卷標: -L ‘LABEL’      
            3.UUID: -U 'UUID'      
            4.文件系統名稱      
        MOUNT_POINT

           多爲文件目錄    
        
        經常使用選項:      
            -t  type :文件系統的類型      
            -r 以只讀方式掛載      
            -w 以讀寫的方式掛載      
            -n 掛載並更新/etc/mtab      
            -B綁定目錄至另外一個目錄上      
            -o 掛載選項:      
                      async:異步模式      
                      sync:同步模式任何數據在內存處理完後立刻寫回磁盤      
                      atime/noatime:是否更新訪問時間戳 
                      auto/noauto:是否容許此設備被自動更新      
                      exec/noexec:是否容許執行此文件系統上的應用程序      
                      dev/nodev:是否支持在此設備上使用設備文件;      
                      suid/nosuid:是否容許設置suid權限      
                      remount:從新掛載      
                      ro:只讀權限      
                      rw:讀寫權限 
                      user/nouser: 是否容許普通掛載此設備;      
                      acl:是否支持此設備上使用facl;      
                      defaults:rw, suid, dev, exec, auto, nouser, and async

          umount:卸載命令    
            # umount DEVICE    
            # umount MOUNT_POINT

            查看正在訪問指定掛載點的進程:    
                # fuser -v MOUNT_POINT

            終止全部正在訪問指定的掛載點的進程:    
                # fuser -km MOUNT_POINT

 

    交換分區:

        free命令:    
            查看memory和swap的使用狀態    
                -m: 以MB爲單位    
                -g: 以GB爲單位

        mkswap:建立交換分區

            mkswap [option] DEVICE    
                -L 'LABEL'   
               
        swapon:啓用交換分區    
            swapon [option] [DEVICE]    
                -a: 激活全部交換分區    
                -p PRIORITY: 設定其優先級;

        swapoff:禁用交換分區    
            swapoff [option] [DEVICE]

    文件系統等空間佔用信息的查看工個:    
        df: disk free  檢查文件系統的磁盤空間佔用狀況

            -h: human-readable    
            -i: inode數量    
            -P: 以Posix兼容的格式輸出    
        du: disk usage  查看文件或目錄所佔的大小    
            -h: human-readable    
            -s: summary


    文件系統相關掛載配置文件:/etc/fstab

        每行定義一個文件系統;

        要掛載的設備或僞文件系統      掛載點         文件系統類型     掛載選項     轉儲頻率      自檢次序

            要掛載的設備:    
                設備文件、LABEL=、UUID=、僞文件系統名稱

            掛載選項:    
                defaults

            轉儲頻率:    
                0: 不轉儲    
                1: 天天轉儲    
                2: 每隔一天轉儲

            自檢次序:    
                0:不自檢    
                1:首先自檢,一般只有/才爲1    
                2:    
                ...

    文件系統上的連接文件:    
        硬連接:    
            兩個路徑指向同一個inode

            不能對目錄進行;    
            不能跨分區進行    
            指向同一個inode的多個不一樣路徑; 建立文件的硬連接會增長inode的引用計數;刪除硬連接僅是刪除其一個訪問路徑,只到最後一個路徑被刪除;

        符號連接:    
            連接文件的數據指向另外一個文件路徑;

            能夠對目錄進行;    
            能夠跨分區;    
            指向的是另外一個文件路徑;而非inode;    
                對文件建立符號連接不會增長其引用計數;刪除原文件,符號連接文件也將沒法;

        ln [-s] SRC DEST    
            -s:symbolic link    
            -v:verbose    


練習:建立一個10G的文件系統,類型爲ext4,要求開機可自動掛載至/mydata目錄

1.先建立10G的文件系統

p_w_picpath

p_w_picpath

發現內核已經本身識別到該分爲文件系統

p_w_picpath

2.格式化其類型爲ext4

p_w_picpath

3.讓系統內核識別該分區並加入爲開機會自動掛載配置的文件/etc/fstab中

p_w_picpath

相關文章
相關標籤/搜索