Linux檔案系統

2022-10-16 06:02:42

檔案系統

定義

  • 檔案系統為我們直接操作檔案和目錄與儲存裝置之間充當橋樑和中介的角色

分類

  • 基本檔案檔案(拓展檔案系統)

    • ext

      • 單檔案大小最大2GB
      • 資料塊分散在儲存裝置(碎片化),讀取速度慢
    • ext2

      • 單檔案最大支援32TB
      • 資料塊分組,讀取速度提升
      • 系統崩潰和斷電時易損壞檔案系統
      • 儲存檔案依賴於索引節點表
  • 紀錄檔檔案系統

    • 定義

      • 先將資料寫入到紀錄檔,直到檔案成功寫入儲存裝置和更新索引節點表後再刪除紀錄檔項,系統崩潰或斷電恢復後,繼續將上次未寫入儲存裝置的紀錄檔檔案繼續寫入
    • 紀錄檔方法

      • 資料模式

        • 索引節點和檔案都會被寫入紀錄檔(安全性好但效能差)
      • 有序模式

        • 只有索引節點資料會被寫入紀錄檔,但只有資料成功寫入後才刪除(安全性和效能居中)
      • 回寫模式

        • 只有索引節點資料會被寫入紀錄檔,但不控制檔案資料何時寫入(安全性差但效能好)
    • 分類

      • ext3

        • 紀錄檔方法為有序模式(可修改)
        • 沒有資料壓縮和加密功能
        • 無法恢復誤刪檔案
      • ext4

        • 支援資料壓縮和加密功能
        • 支援extent(區段)特性
        • 預分配技術為大檔案預留空間
      • Reiser

        • 紀錄檔方法為回寫模式
        • 支援線上調整檔案系統大小
        • 可把一個檔案資料寫到另一個檔案的資料塊的空白位置(尾部壓縮技術)
      • JFS

        • 紀錄檔方法為有序模式
        • 基於extent的檔案分配,減少碎片化
      • XFS

        • 紀錄檔方法為回寫模式
        • 線上調整檔案系統僅支援擴大
  • 寫時複製檔案系統(cow)

    • 定義

      • 修改資料時,先把原始檔克隆或打快照的方式,避免直接修改原始檔的內容,然後檔案系統會再另外一個位置建立一塊空間,以供存放新資料
    • 分類

      • Btrf

        • 高穩定性和易用性,支援動態調整已掛載的檔案系統大小
      • ZFS

        • 無GPL許可,非Linux預設檔案系統

命令

  • 建立分割區

    • 建立分割區

      fdisk /dev/sdx

    • 列印儲存裝置/dev/sdx的詳細資訊

      p

    • 建立一個新分割區

      n

    • 指定分割區數量

      num

    • 指定起始磁區

      輸入2048或回車

    • 指定終止磁區

      +num G或回車(如果是單個分割區)

    • 儲存更改資訊

      w

  • 建立檔案系統

    • 格式化檔案系統

      mkfs.ext4 /dev/sdx

    • 掛載到虛擬目錄的掛載點

      mount -t ext4 /dev/sdx /mnt/

    • 實現開機自掛載

      echo -e "/dev/sdx\t/mnt\t ext4\t defaults\t 0 0" >>/etc/fstab

  • LVM

    • 1.定義物理卷

      • 在建立的分割區基礎上改變分割區型別

        t

      • 宣告該分割區僅為LVM系統的一部分

        8e

      • 列印該分割區資訊

        p

      • 儲存分割區資訊更改

        w

    • 2.建立物理卷

      • 把分割區定義為LVM系統的分割區

        pvcreate /dev/sdx(x=a-z)

      • 檢視已建立的物理卷列表

        pvdisplay /dev/sdx

    • 3.建立卷組

      • 建立卷組

        vgcreate vgname /dev/sdx

      • 檢視已建立卷組資訊

        vgdisplay vgname

    • 4.建立邏輯卷

      • 建立佔用全部邏輯區段(卷組)的邏輯卷

        lvcreate -l 100%FREE -n lvname vgname

      • 檢視已建立的邏輯卷資訊

        lvdisplay vgname

    • 5.建立文邏輯卷件系統

      mkfs.ext4 /dev/vgname/lvname

    • 6.掛載邏輯捲到虛擬目錄

      mount /dev/vgname/lvname /mnt

  • LVM修改

    • 啟用或禁用卷組

      vgchange

    • 刪除卷組

      vgremove

    • 把物理卷加入到卷組中

      vgextend

    • 從卷組中刪除物理卷

      vgreduce

    • 增加邏輯卷大小

      lvextend

    • 縮減邏輯卷大小

      lvreduce

    • 重新格式化邏輯卷的檔案系統

      resize2fs

注意事項

  • 檔案系統通過索引節點表來存放檔案資訊,並通過索引節點號來標識檔案
  • IDE驅動器的儲存裝置名使用dev/hdx,SCSI和SATA驅動器的儲存裝置名使用/dev/sdx(x=a-z)
  • 傳統模式的拓展檔案系統空間只能通過調整單塊磁碟的分割區大小或是購置更大磁碟,再把檔案系統手動移動到新磁碟的方式
  • 邏輯卷管理允許將一個或多個物理磁碟和物理分割區加入到現有檔案系統,動態拓展檔案系統空間
  • 一個或多個物理磁碟或物理分割區組成一個卷組
  • 邏輯分割區建立在卷組基礎上,邏輯分割區包含檔案系統
  • 一個邏輯卷相當於一個物理分割區,可以在邏輯卷建立檔案系統,然後掛載到虛擬目錄使用
  • 邏輯卷管理架構:硬碟--物理分割區--物理卷--卷組--邏輯分割區--邏輯卷
  • LVM使用的三種技術為快照,條帶化,映象
  • 卷組名用來標識建立邏輯卷時使用的卷組