磁盤管理、文件系統管理

磁盤管理、文件系統管理


磁盤管理

磁盤設備

  • 機械硬盤(非固態)

  • I/O Ports —– I/O 設備地址

  • 塊設備:Block 存取單位“塊”;(磁盤)

  • 字符設備:char 存取單位“字符”;(鍵盤)

設備文件:關聯一個設備驅動程序,進而能夠跟與之對應的硬件設備進行通信;

– 設備號碼:

  • 主設備號 major number;標識設備類型

  • 次設備號 minor number;標識同一類設備中的不同設備

Linux系統硬件設備文件儲存在/dev目錄下

blob.png

– 硬盤接口:

  • 并行{IDE、SCSI}

  • 串口{SATA、SAS、USB}

/dev目錄下的硬盤名稱一般是/sd*(*代表[a-z]);不同分區之間用數字區分,例如:/sda1、/sda2、/sda3….

– 機械硬盤

  • track:磁道

  • cylinder:柱面

  • secotr:扇區 (512byte)
    0扇區(mbr)512byte中 446byte是boot loader;
    64byte是分區表(所以最多4個分區);
    2byte是4個16進制數值(55AA表示前55個已經使用);

擴展:分區是按照柱面劃分的,mbr只能識別2T以下的單塊硬盤,超過2T需要使用GPT

磁盤分區

-分區工具:fdisk

  • fdisk:

      fdisk -l [-u] [device...]  { -l:顯示磁盤信息;}
      fdisk內置命令:
                 p  -查看磁盤信息;
                 m -打開幫助信息;
                 n -新創建一個分區;
                 d -刪除分區;
                 w -保存退出;
                 q -放棄保存退出;
                 l -列出分區ID
                 t -修改ID

分好區以后,內核中不一定能識別到分區,內核沒有識別到分區的話無法進行格式化、文件系統等操作;

  • 解決

    查看內核有無識別到分區: cat /etc/partations
    讓內核重新掃描識別分區:partx -a /dev/DEVICE
                               -n M:N
                         kpartx -a /dev/DEVICE
                               -f: force
         ------------以上是centos 6-7 使用-----------------
    CentOS 5: 使用:partprobe [/dev/DEVICE]

文件系統管理

  • Linux文件系統:ext2、ext3、ext4、xfs、btrfs、reiserfs、jfs、swap
    swap:交換分區;用磁盤空間當內存來使用(虛擬內存)

  • 擴展:

    光盤: iso9660;
    windows: fat32、ntfs
    網絡文件系統:NFS、CIFS
    集群文件系統:GF32、OCFS2
    分布式文件系統:ceph、moosefs、mgilefs、Glusterfs、Lustre

-日志文件系統

  • 日志型文件系統是一種特殊類型的文件系統,它記錄一個被稱為日志的追蹤文件。日志可以讓系統能夠修復在異常終止時出現的不一致情況。它通過追蹤之前提交到主文件系統的更改。在計算機非正常關機的情況下,任何數據丟失都可被重建。因此,這種文件系統不太可能遭受破壞,并且可以使文件系統快速恢復工作。

  • 日志型文件系統:ext3、ext4、xfs…..

  • 非日志型文件系統:ext2、vfat

-文件系統的組成

  • 內核中的模塊:ext4、xfs、vfat

  • 用戶空間的管理工具:mkfs.ext4、mkfs.xfs、mkfs.vfat

擴展:Linux的虛擬文件系統叫VFS

-創建文件系統

  • 查看當前系統上所支持的文件系統類型: cat /proc/filesystems

  • 顯示分區屬性:blkid [DEVICE]

  • mkfs

     (1) # mkfs.FS_TYPE /dev/DEVICE
                ext4
                xfs
                btrfs
                vfat
      (2) # mkfs -t FS_TYPE /dev/DEVICE

            -L 'LABEL': 設定卷標
            
      備注: mkfs.FS_TYPE /dev/DEVICE = mkfa -t FS_TYPE /dev/DEVICE
                例子: mkfs.ext4 /dev/sdb1 = mkfa -t ext4 /dev/sdb1
  • mke2fs

           mke2fs:ext系列文件系統專用管理工具
                -t:設置類型 {ext2|ext3|ext4}                
                -b: 設置塊大小{1024|2048|4096}  不自己設置默認大小是4096                
                -L 'LABEL':設定卷標                
                -j: 相當于 -t ext3                
                -i #: 為數據空間中每多少個字節創建一個inode;此大小不應該小于block的大?。?nbsp;               
                -N #:為數據空間創建個多少個inode;                
                -m #: 為管理人員預留的空間占據的百分比;                
                -O FEATURE[,...]:啟用指定特性                  
                -O ^FEATURE:關閉指定特性   
                               
         備注:mke2fs -t ext_TYPE = mkfs.ext_TYPE /dev/DEVICE = mkfa -t ext_TYPE /dev/DEVICE
                例子: mke2fs -t ext4 /dev/sdb1 = mkfs.ext4 /dev/sdb1 = mkfa -t ext4 /dev/sdb1
  • mkswap

        mkswap:創建交換分區
            mkswap [options] device
                -L 'LABEL':卷標
            注意:調整其分區的ID為82;
  • e2label

        e2label:管理ext系列文件系統的LABEL
            # e2label DEVICE [LABEL]
  • tune2fs

        tune2fs:重新設定ext系列文件系統可調整參數的值
            -l:查看指定文件系統超級塊信息;super block            
            -L 'LABEL':修改卷標            
            -m #:修預留給管理員的空間百分比            
            -j: 將ext2升級為ext3            
            -O: 文件系統屬性啟用或禁用            
            -o: 調整文件系統的默認掛載選項            
            -U UUID: 修改UUID號;
  • dumpe2fs

        dumpe2fs [DEVICE] 查看超級塊的詳細信息
            -h:查看超級塊信息

-文件系統檢測

  • fsck

        fsck: File System CheCk
            fsck.FS_TYPE
            fsck -t FS_TYPE
                -a: 自動修復錯誤                -r: 交互式修復錯誤
                Note: FS_TYPE一定要與分區上已經文件類型相同;
  • e2fsck

        e2fsck:ext系列文件專用的檢測修復工具
            -y:自動回答為yes; 
            -f:強制修復;

-文件系統掛載

  • 將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為稱之為掛載;

  • 解除此關聯關系的過程稱之為卸載;

    把設備關聯掛載點:Mount Point
        mount

    卸載時:可使用設備,也可以使用掛載點
        umount

注意:掛載點下原有文件在掛載完成后會被臨時隱藏;

  • 掛載方法:mount DEVICE MOUNT_POINT

        mount:通過查看/etc/mtab文件顯示當前系統已掛載的所有設備
        mount [-fnrsvw] [-t vfstype] [-o options] device dir
            device:指明要掛載的設備;
                (1) 設備文件:例如/dev/sda5
                (2) 卷標:-L 'LABEL', 例如 -L 'MYDATA'
                (3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
                (4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs            
                
                dir:掛載點
                事先存在;建議使用空目錄;
                進程正在使用中的設備無法被卸載;

常用命令選項:
                -t vsftype:指定要掛載的設備上的文件系統類型;
                -r: readonly,只讀掛載;
                -w: read and write, 讀寫掛載;
                -n: 不更新/etc/mtab; 
                -a:自動掛載所有支持自動掛載的設備;(定義在了/etc/fstab文件中,且掛載選項中有“自動掛載”功能)
                -L 'LABEL': 以卷標指定掛載設備;
                -U 'UUID': 以UUID指定要掛載的設備;
                -B, --bind: 綁定目錄到另一個目錄上;

            注意:查看內核追蹤到的已掛載的所有設備:cat /proc/mounts

            -o options:(掛載文件系統的選項)                
            async:異步模式;                
            sync:同步模式;                
            atime/noatime:包含目錄和文件;                
            diratime/nodiratime:目錄的訪問時間戳                
            auto/noauto:是否支持自動掛載                
            exec/noexec:是否支持將文件系統上應用程序運行為進程                
            dev/nodev:是否支持在此文件系統上使用設備文件;                
            suid/nosuid:                
            remount:重新掛載                
            ro:                
            rw:                
            user/nouser:是否允許普通用戶掛載此設備                
            acl:啟用此文件系統上的acl功能

                注意:上述選項可多個同時使用,彼此使用逗號分隔;
                      默認掛載選項:defaults
                            rw, suid, dev, exec, auto, nouser, and async
  • 卸載命令:

        # umount DEVICE
        #umount MOUNT_POINT

        查看正在訪問指定文件系統的進程:            
        # fuser -v MOUNT_POINT

        終止所有在正訪問指定的文件系統的進程:            
        # fuser -km MOUNT_POINT
  • 掛載交換分區:

        啟用:swapon
            swapon [OPTION]... [DEVICE]
                -a:激活所有的交換分區;
                -p PRIORITY:指定優先級;
        禁用:swapoff [OPTION]... [DEVICE]
  • 內存空間使用狀態:

        free [OPTION]
            -m: 以MB為單位            
            -g: 以GB為單位
  • 文件系統空間占用等信息的查看工具:

        df: 
            -h: human-readable            
            -i:inodes instead of blocks            
            -P: 以Posix兼容的格式輸出;
  • 查看某目錄總體空間占用狀態:

        du:
            du [OPTION]... DIR
                -h: human-readable                
                -s: summary
  • 文件掛載的配置文件:/etc/fstab

每行定義一個要掛載的文件系統;

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

            要掛載的設備或偽文件系統:
                設備文件、LABEL(LABEL="")、UUID(UUID="")、偽文件系統名稱(proc, sysfs)

            掛載選項:
                defaults

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

            自檢次序:                
            0:不自檢                
            1:首先自檢;一般只有rootfs才用1;

命令總結:fdisk, partx, mkfs, mkswap, mke2fs, tune2fs, blkid, dumpe2fs, e2label, fsck, e2fsck,
mount, umount, free, df, du, swapon, swapoff, fuser

文件系統上的其它概念:

-Inode: Index Node, 索引節點

文件名是源數據但是inode不包含文件名
  • 地址指針:地址指針儲存的大小決定塊的大小

  • 直接指針:

  • 間接指針:

  • 三級指針:

    inode bitmap:對位標識每個inode空閑與否的狀態信息;

– 鏈接文件:

  • 硬鏈接:

            不能夠對目錄進行;
            不能跨分區進行;
            指向同一個inode的多個不同路徑;創建文件的硬鏈接即為為inode創建新的引用路徑,因此會增加其引用計數;
  • 符號鏈接(軟鏈接):

            可以對目錄進行;
            可以跨分區;
            指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數;        
            ln [-sv] SRC DEST
                -s:symbolic link(符號鏈接)
                -v: verbose
  • 文件管理操作對文件的影響:

        文件刪除:把inode引用次數降低為0,對應的位圖標記為空閑
        文件復制:數據的讀取、寫入
        文件移動:不同分區之間移動就是把數據讀取出來復制一份寫入目標,然后刪除源文件;
             同分區內改變路徑 inode不變;

原創文章,作者:N21_志建,如若轉載,請注明出處:http://www.www58058.com/24711

(1)
N21_志建N21_志建
上一篇 2016-07-22 10:07
下一篇 2016-07-22 10:07

相關推薦

  • 重定向與管道

         本次內容    1.三種I/O設備    2.把I/O從定向入文件    3.命令tr    4.使用管道鏈接命令    5.tee   我們都知道程序是由:指令+數據    &n…

    2017-07-23
  • DNS中view的實現

    [root@localhost /var/named]# ll total 32 -rw-r–r–. 1 root ?root ??173 Jan 20 14:46 magedu.com.zone -rw-r–r–. 1 root ?root ??173 Jan 20 14:46 magedu.com.zone…

    2018-01-22
  • Centos6上安裝cobbler及cobbler常見參數詳解

    前言 Cobbler是一個自動化和簡化系統安裝的工具,通過使用網絡引導來控制和啟動安裝。Cobbler的特性包括存儲庫鏡像、Kickstart模板和連接電源管理系統。使用Cobbler之前需要先了解下PXE和Kickstart的基本原理,文章包含了Cobbler工作原理和Cobbler部署實踐兩部分內容,交叉關聯性的內容還是蠻多的,遇到報錯也不要怕,都會一步…

    Linux干貨 2016-11-11
  • 文件的權限和訪問控制列表

      在linux管理中,為了使不同的用戶對文件有不同的操作權限。我們需要正確的修改文件的權限,一方面是為安全著想, 另一方面則是防止自己辛辛苦苦碼出的東西被其它用戶給誤刪。 1.如何修改文件的屬主和屬主:   前面用戶和組管理的內容中,我們已經對文件的屬主、屬組問題做了說明。有時候我們需要對一些文件的屬組和屬組進行修改…

    Linux干貨 2016-08-04
  • 簡述Linux那些年–發展史

    Linux發展史 作者:任飛鵬          日期:2016-10-13 Linux簡介: Linux同Windows一樣,都是一套OS(操作系統)。Linux是一套開源的類Unix操作系統,可以免費使用和自由傳播。是一個基于POSIX和UNIX的多用戶、多任務、支…

    Linux干貨 2016-10-19
  • kickstart及引導鏡像制作

    環境:CentOS 6.7 kickstart 制作    1、centos系統安裝完成后,anaconda會根據本次系統安裝的配置,生成一個與本次安裝設置相同的kickstart文件,文件位于/root/anaconda-ks.cfg,可以使用vim對這個文件進行修改來使用。     vim anaconda-ks.…

    Linux干貨 2015-12-15
欧美性久久久久