天天看點

磁盤管理和檔案系統管理

linux磁盤管理

    現在市面上硬碟主要為兩種:機械式硬碟  和固态硬碟(ssd)

機械式硬碟 同心圓劃分成多個track磁道,每個磁道上有一定數量的扇區(secotr),每個盤面上編号相同的磁道組成了柱面(cylinder) 每個扇區的大小為512bytes      mbr模式下0磁道上0扇區為master boot record主引導扇區            前446bytes:存放了bootloafer引導加載器,啟動磁盤中的作業系統            接着的64bytes:存放磁盤中的檔案系統分區表,每16bytes辨別一個分區,是以mbr最多隻能認4個分區,若超過4個分區需使用擴充分區,在擴充分區中标注若幹個邏輯分區。               剩餘的2bytes用于結束标志 55 aa 識别硬碟在linux系統中的檔案:/dev/sd【a-z】         不同的硬碟最後标注的字母不同  /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:獲得幫助
磁盤管理和檔案系統管理
磁盤管理和檔案系統管理
分區大小可以用數值和機關确定,不必計算柱面
磁盤管理和檔案系統管理
磁盤管理和檔案系統管理
                建立完成後,檢視核心是否已經識别新的分區                       cat /proc/partitions      
磁盤管理和檔案系統管理
                有三個指令可以讓核心讀取磁盤分區表:                           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                   CD光牒: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:關閉此特性
磁盤管理和檔案系統管理
            blkid指令:檢視分區資訊                       blkid device                           label, uuid, type
磁盤管理和檔案系統管理
檔案系統屬性檢視及調整工具           e2label:e2lable device [label]               管理裝置或者分區的卷标               帶卷标名則為設定 不帶卷标名則是檢視功能
磁盤管理和檔案系統管理
    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: 是否允許普通使用者挂載此裝置
磁盤管理和檔案系統管理
磁盤管理和檔案系統管理
磁盤管理和檔案系統管理
    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檔案中的支援自動挂載的檔案系統      
磁盤管理和檔案系統管理
        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  檢視檔案或目錄所占的大小    

            -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的檔案系統

磁盤管理和檔案系統管理
磁盤管理和檔案系統管理

發現核心已經自己識别到該分為檔案系統

磁盤管理和檔案系統管理

2.格式化其類型為ext4

磁盤管理和檔案系統管理

3.讓系統核心識别該分區并加入為開機會自動挂載配置的檔案/etc/fstab中

磁盤管理和檔案系統管理

繼續閱讀