Linux文件系統與磁盤管理


Linux文件系統與磁盤管理

有哪些文件系統:    

    FAT:微軟在Dos/Windows系列操作系統中共使用的一種文件系統的總稱。   
    exFAT(Extended File Allocation Table File System,擴展FAT,即擴展文件分配表):是擴展文件分配表主界

    面 Microsoft在Windows
    Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一種適合於閃存的

    文件系統,為了解決FAT32等不支持4G及其更大的文件而推出。

    對於閃存,NTFS文件系統不適合使用,exFAT更為適用。
  
    NTFS(New Technology File System):是 WindowsNT 環境的文件系統。
   
    CDFS:大部分的光盤的文件系統,只有小部分光盤使用其他文件系統。這些文件系統只能在CD-R或CD-RW

   上讀取。
   
    RAW:沒有被NT文件系統(FAT或NTFS)格式化的磁盤分區

    Ext(Extended file system):是為linux核心所做的第一個文件系統。采用Unix文件系統(UFS)的元數據結

    構,以克服MINIX文件系統性能不佳的問題。它是在linux上,第一個利用虛擬文件系統實現出的文件系統,

    在linux核心0.96c版中首次加入支持。
        Ext2:GNU/Linux 系統中標准的文件系統,其特點為存取文件的性能極好,對於中小型的文件更顯示出

        優勢,這主要得利於其簇快取層的優良設計。
        Ext3:一種日志式文件系統,是對ext2系統的擴展,它兼容ext2。日志式文件系統的優越性在於:由於

        文件系統都有快取層參與運作,如不使用時必須將文件系統卸下,以便將快取層的資料寫回磁盤中。因

        此每當系統要關機時,必須將其所有的文件系統全部shutdown后才能進行關機。如果在文件系統尚未

        shutdown前就關機 (如停電) 時,下次重開機后會造成文件系統的資料不一致,故這時必須做文件系

        統的重整工作,將不一致與錯誤的地方修復。然而,此一重整的工作是相當耗時的,特別是容量大的文

        件系統,而且也不能百分之百保證所有的資料都不會流失。為了克服此問題,使用所謂‘日志式文件系統

        (Journal File System) ’。此類文件系統最大的特色是,它會將整個磁盤的寫入動作完整記錄在磁盤的某

        個區域上,以便有需要時可以回溯追蹤。由於詳細紀錄了每個細節,故當在某個過程中被中斷時,系統

        可以根據這些記錄直接回溯並重整被中斷的部分,而不必花時間去檢查其他的部分,故重整的工作速度

        相當快,幾乎不需要花時間。
        Ext4:Ext3 的改進版,修改了 Ext3 中部分重要的數據結構,而不僅僅像 Ext3 對 Ext2 那樣,只是增加

        了一個日志功能而已。Ext4 可以提供更佳的性能和可靠性,還有更為豐富的功能       
   
    Btrfs:它被稱為是下一代 Linux 文件系統。據說它采用了很多先進的文件系統設計,不僅解決了 ext2/3 的擴

    展性問題,還讓人們看到了下一代文件系統所具有的許多其他特性。
   
    ZFS:源自於Sun Microsystems為Solaris操作系統開發的文件系統。ZFS是一個具有高存儲容量、文件系統

    與卷管理概念整合、嶄新的磁盤邏輯結構的輕量級文件系統,同時也是一個便捷的存儲池管理系統。
   
    ReiserFS:一種文件系統格式,作者是Hans Reiser及其團隊Namesys,1997年7月23日他將ReiserFS文件

    系統在互聯網上公布。
   
    JFS(JOURNAL FILE SYSTEM):一種字節級日志文件系統,借鑒了數據庫保護系統的技術,以日志的形式

    記錄文件的變化。JFS通過記錄文件結構而不是數據本身的變化來保證數據的完整性。這種方式可以確保在

    任何時刻都能維護數據的可訪問性。
   
    VMFS(VMware Virtual Machine File System) :一種高性能的群集文件系統.
   
    XFS: Silicon Graphics,Inc. 於 90 年代初開發的文件系統。它至今仍作為 SGI 基於 IRIX 的產品(從工作

    站到 超級計算機)的底層文件系統來使用。現在,XFS 也可以用於 Linux。
   
    UFS:基於BSD高速文件系統的傳統UNIX文件系統,是Solaris的默認文件系統。默認啟用UFS 日志記錄功能。
   
    VxFS(VeritasFileSystem):首個商業日志記錄文件系統。通過日志記錄功能,元數據更改首先寫入到日志,然

    后再寫入到磁盤。
   
    ReFS(Resilient File System,彈性文件系統):在Windows 8.1和Server 2012中新引入的一個文件系統。ReFS

    是與NTFS大部分兼容的,其主要目的 是為了保持較高的穩定性,可以自動驗證數據是否損壞,並盡力恢復數據。
   

linux文件系統:

    文件系統指文件存在的物理空間,linux系統中每個分區都是一個文件系統,都有自己的目錄層次結構。

         linux會將這些分屬不同分區的、單獨的文件系統按一定的方式形成一個系統的總的目錄層次結構。一個

         操作系統的運行離不開對文件的操作,因此必然要擁有並維護自己的文件系統。


    Llinux文件系統使用索引節點來記錄文件信息,作用像windows的文件分配表。
    索引節點是一個結構,它包含了一個文件的長度、創建及修改時間、權限、所屬關系、磁盤中的位置

          等信息。一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一一個

          元素對應。系統給每個索引節點分配了一個號碼,也就是該節點在數組中的索引號,稱為索引節點號。

  linux文件系統將文件索引節點號和文件名同時保存在目錄中。所以,目錄只是將文件的名稱和它的索引節

  點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。

    對於一個文件來說有唯一的索引節點號與之對應,對於一個索引節點號,卻可以有多個文件名與之對

         應。因此,在磁盤上的同一個文件可以通過不同的路徑去訪問它。

    可以用ln命令對一個已經存在的文件再建立一個新的連接,而不復制文件的內容。

          連接有軟連接硬連接之分,軟連接又叫符號連接。

  它們各自的特點是:
    硬連接:原文件名和連接文件名都指向相同的物理地址。

         目錄不能有硬連接;硬連接不能跨越文件系統(不能跨越不同的分區)
         文件在磁盤中只有一個拷貝,節省硬盤空間;

    由於刪除文件要在同一個索引節點屬於唯一的連接時才能成功,因此可以防止不必要的誤刪除。

    符號連接:用ln -s命令建立文件的符號連接符號連接是linux特殊文件的一種,作為一個文件,它的數據

         是它所連接

          的文件的路徑名。類似windows下的快捷方式。

    可以刪除原有的文件而保存連接文件,沒有防止誤刪除功能。   
   
    整個Linux系統都通過虛擬文件系統交換(Virtual FileSystem Switch, VFS)的核心功能去讀取文件系統,即整

    個Linux認識的文件系統都是VFS在管理,用戶並不需要知道每個分區上的文件系統是什么,VFS會主動幫個

     用戶做讀取工作。所以,系統管理員只要設置好各主要文件系統對應的文件系統模塊,核心的VFS會主動接

      管該文件系統的訪問模式。用戶在不知道每個文件系統是什么的情況下,就能自由運用系統上的各種文件系

      統。

   
    Linux常見的支持的文件系統有:
        傳統文件系統:ext2/minix/MS-DOS/FAT/iso9660
        日志式文件系統:ext3/ReiserFS/Windows的NTFS, IBM的JFS/SGI的XFS
        網絡文件系統:NFS/SMBFS
       
  
  查看支持的文件系統:cat /proc/filesystems
   

磁盤管理相關命令:    

  du:查看使用空間的,默認顯示目錄下每個文件的大小,但是與df命令不同的是Linux du命令是對文件和目錄磁

  盤使用的空間的查看

   
  選項:

  -a或-all 顯示目錄中個別文件的大小。
  -b或-bytes 顯示目錄或文件大小時,以byte為單位。
  -c或--total 除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和。
  -k或--kilobytes 以KB(1024bytes)為單位輸出。
  -m或--megabytes 以MB為單位輸出。
  -s或--summarize 僅顯示總計,只列出最后加總的值。
  -h或--human-readable 以K,M,G為單位,提高信息的可讀性。
  -x或--one-file-xystem 以一開始處理時的文件系統為准,若遇上其它不同的文件系統
  目錄   則略過。
  -L<符號鏈接>或--dereference<符號鏈接> 顯示選項中所指定符號鏈接的源文件大小。
  -S或--separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小。
  -X<文件>或--exclude-from=<文件> 在<文件>指定目錄或文件。
  --exclude=<目錄或文件> 略過指定的目錄或文件。
  -D或--dereference-args 顯示指定符號鏈接的源文件大小。
  -H或--si 與-h參數相同,但是K,M,G是以1000為換算單位。
  -l或--count-links 重復計算硬件鏈接的文 

 


   
  df:顯示磁盤分區上的可使用的磁盤空間。默認顯示單位為KB。可以利用該命令來獲取硬盤被占用了多少空間,目

  前還剩下多少空間等信息。 

  選項:

  -a或--all:包含全部的文件系統;
  --block-size=<區塊大小>:以指定的區塊大小來顯示區塊數目;
  -h或--human-readable:以可讀性較高的方式來顯示信息;
  -H或--si:與-h參數相同,但在計算時是以1000 Bytes為換算單位而非1024 Bytes;
  -i或--inodes:顯示inode的信息;
  -k或--kilobytes:指定區塊大小為1024字節;
  -l或--local:僅顯示本地端的文件系統;
  -m或--megabytes:指定區塊大小為1048576字節;
  --no-sync:在取得磁盤使用信息前,不要執行sync指令,此為預設值;
  -P或--portability:使用POSIX的輸出格式;
  --sync:在取得磁盤使用信息前,先執行sync指令;
  -t<文件系統類型>或--type=<文件系統類型>:僅顯示指定文件系統類型的磁盤信息;
  -T或--print-type:顯示文件系統的類型;
  -x<文件系統類型>或--exclude-type=<文件系統類型>:不要顯示指定文件系統類型
  的磁盤信息;

 


  

  linlin@ubuntu:~/linlin/c_code$ df
  df: /mnt/hgfs: Protocol error
  Filesystem     1K-blocks    Used Available Use% Mounted on
  udev              478860       0    478860   0% /dev
  tmpfs              99828   12560     87268  13% /run
  /dev/sda1       19478204 6301620  12164104  35% /
  tmpfs             499124     212    498912   1% /dev/shm
  tmpfs               5120       4      5116   1% /run/lock
  tmpfs             499124       0    499124   0% /sys/fs/cgroup
  tmpfs              99828      80     99748   1% /run/user/1000

  其中:

      Filesystem:表示該文件系統是在哪個分區,所以列出設備名稱
      1k-blocks:表示下面單位是1KB, 可利用-h或-m改變容量
      Used:已使用的硬盤空間
      Available:剩下的磁盤空間大小
      Use%: 磁盤使用率
      Mounted on:磁盤載入的目錄所在(載入點)                
   
    在磁盤規划中,每個磁盤最多允許4個主分區,其他分區就放在擴展分區中。
   
    mknod: 創建Linux中的字符設備文件和塊設備文件。
        字符設備:按塊為單位,隨機訪問的設備
        塊設備:按字符為單位,線性設備
    語法格式:mknod 選項 NAME TYPE 主/次
    選項:
    -Z:設置安全的上下文;
    -m:設置權限模式;
   
    blkid:查詢系統的塊設備(包括交換分區)所使用的文件系統類型、LABEL、UUID等信息
   
    fdisk:用於觀察硬盤實體使用情況,也可對硬盤分區。它采用傳統的問答式界面。
    語法格式:fdisk 選項 參數
    選項:
    -b<分區大小>:指定每個分區的大小;
    -l:列出指定的外圍設備的分區表狀況;
    -s<分區編號>:將指定的分區大小輸出到標准輸出上,單位為區塊;
    -u:搭配"-l"參數列表,會用分區數目取代柱面數目,來表示每個分區的起始地址;
  管理命令:
      p:顯示當前磁盤上的分區
      n:創建新分區
          p,主分區
          e,擴展分區
      d:刪除分區
      w:保存退出
      q:不保存退出
      t:修改分區類型
      l:顯示所支持的所有類型

文件系統管理命令:    

    mkfs:創建文件系統,mkfs本身並不執行建立文件系統的工作,而是去調用相關的程序來執行。
         常用選項:
         -t<文件系統類型>:指定要建立何種文件系統;
   
    fsck:檢查並修復Linux文件系統
        常用選項:
        -t 文件系統類型:指定文件系統類型
        -a:自動修復

    管理ext系列文件系統:

        mke2fs:創建磁盤分區上的“etc2/etc3”文件系統。
        語法格式:mke2fs 選項 參數
        常用選項:

        -j:創建ext3類型文件系統
        -b 塊大小:指定塊大小,默認為4096
            可取值:1024 2048 4096
        -L label:指定分區卷標
            可用卷標指定文件系統
        -m NUMBER:指定預留給超級用戶的塊數百分比
        -i 字節數:指定多少個字節一個iNode,這里給出的數值應該為2^n倍
        -N NUMBER:指定iNode個數
        -F:強制創建文件系統
        -E:用戶指定額外的文件系統屬性

       

        e2label: 查看或定義卷標
        語法格式:e2label 設備文件 卷標
       
        tune2fs: 調整文件系統的相關屬性
        常用選項:

        -j:不損壞原有數據的情況下,將ext2升級為ext3
        -L label:用於設定或修改卷標
        -m NUMBER:調整預留百分比
        -r 數字:指定預留塊數
        -o:設定默認掛載選項

      

        dumpe2fs:顯示文件系統信息。
        -h:只顯示超級快信息
       
        e2fsck:專用於修復ext類型文件系統
        -f:強制檢查
        -p:自動修復
       
       
       
       
   
   
      
  
  
  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM