Linux之文件系統原理基礎


這裏是一段防爬蟲文本,請讀者忽略。
本文原創首發於CSDN,作者IDYS
博客首頁:https://blog.csdn.net/weixin_41633902/
本文鏈接:https://blog.csdn.net/weixin_41633902/article/details/105881102


寫在開頭的話

  • 請記住:實踐是掌握知識的最快方法
  • 如果你只是懷着看看的態度去快速瀏覽文章,而不去認認真真的把文章裏面講的任何一個知識點去實踐一遍,那麼你永遠也掌握不了它
  • 生命不息,折騰不止!

文件掛載的配置文件:/etc/fstab

  • btrfs支持子卷
  • 關於/etc/fstab配置文件說明:
    • 每行定義一個要掛載的文件系統
[root@dayuanshuai ~]#  cat /etc/fstab 
******
UUID=7babbd31-9dc4-48a4-a532-9c3c5239d36e /                       ext4    defaults        1 1
UUID=30e019c7-7ec2-4c1d-8b3c-9da72c98f26b /boot                   ext4    defaults        1 2
UUID=7355d0bf-07d8-4fa1-99e7-9a0f6a96b513 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
  • 對於文件裏每一列的說明:
  1. 第一個字段:要掛載的設備或僞文件系統
  2. 第二個字段:掛載點
  3. 第三個字段:文件系統類型
  4. 第四個字段:掛載選項
  5. 第五個字段:轉儲頻率
  6. 第六個字段:自檢次序
  • 要掛載的設備或僞文件系統:(可以設置的選項)
    • 設備文件
    • LABEL(LABEL="")
    • UUID(UUID="")
    • 僞文件系統名稱(proc, sysfs)
  • 掛載點:
    • 設置要掛載到那個目錄下
  • 文件系統類型
    • ext{2 | 3 | 4},xfs,btrfs,swap
  • 掛載選項:
    • defaults
    • r、rw、sysnc、acl
  • 轉儲頻率:
    • 0:不做備份
    • 1:每天轉儲
    • 2:每隔一天轉儲
  • 自檢次序:
    • 0:不自檢
    • 1:首先自檢,一般只有rootfs才用1
    • 2:1自檢完之後自檢

對於最後兩個選項:最好選擇0(不做備份),0(不自檢)

# 查看磁盤類型
[root@dayuanshuai /]# blkid /dev/sdb1
/dev/sdb1: LABEL="DATA" UUID="fba67c37-6eeb-4008-8d74-46ebc0fccf02" TYPE="ext4" 

#  編輯/etc/fstab,在其中加入如下字段
[root@dayuanshuai /]# vim /etc/fstab
指定UUID							    指定掛載點 指定文件系統類型 指定掛載    是否轉儲 是否自檢
UUID=fba67c37-6eeb-4008-8d74-46ebc0fccf02 /data ext4    defaults,acl    0 0

# 從/etc/fastab中讀取內容,並且自動掛載
[root@dayuanshuai /]# mount -a
  • swap分區通過swapon激活,而不是掛載。在/etc/fstab中它這一行定義的參數是:(它的掛載點填的就是swap)
UUID=7355d0bf-07d8-4fa1-99e7-9a0f6a96b513 swap                    swap    defaults        0 0

文件系統上的其它概概念

  • 超級塊描述整個文件系統的信息,如:

    • inode count
    • block count
    • free blocks
    • free inodes
  • inode:索引節點

    • inode存儲整個文件的元數據:屬性信息、文件的數據儲存在那些block上
    • 地址指針
      • 直接指針
      • 間接指針
      • 三級指針
  • inode bitmap:對位標識每個inode空閒與否的狀態信息

  • 刪除文件:就是將文件的引用從”1“改爲”0“

  • 文件粉碎機的作用就是將文件存儲數據的地方存入一些無關緊要的隨機數據,然後把文件的引用從”1“改爲“0”

  • 鏈接文件:

    • 硬鏈接:ln source destination
      • 不能夠對目錄進行
      • 不能跨分區進行
      • 指向同一個inode的多個不同路徑;創建文件的硬鏈接即爲爲inode創建新的引用路徑,因此會增加其引用計數
    • 符號鏈接:ln -s source destination
      • 可以對目錄進行
      • 可以跨分區
      • 指向的是另一個文件的路徑;其大小爲指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數
  • ln [sv] SRC DEST

    • -s:symbolic link(符號鏈接)
    • -v:verbose(顯示詳細信息)
[root@dayuanshuai disk2]# touch b.txt 

# 創建硬鏈接
[root@dayuanshuai disk2]# ln b.txt b.txt.hl

# 可以看到硬鏈接inode和原文件inode是一樣的
[root@dayuanshuai disk2]# ls -li
總用量 0
130923 -rw-r--r--. 2 root root 0 4月  27 05:50 b.txt
130923 -rw-r--r--. 2 root root 0 4月  27 05:50 b.txt.hl

# 創建軟連接
[root@dayuanshuai disk2]# ln -s b.txt b.txt.sl 

# 可以看到鏈接文件和原文件的inode是不一樣的,軟鏈接文件的大小,就是所指向的原文件的路徑所佔的字符大小
[root@dayuanshuai disk2]# ls -li
總用量 0
130923 -rw-r--r--. 2 root root 0 4月  27 05:50 b.txt
130923 -rw-r--r--. 2 root root 0 4月  27 05:50 b.txt.hl
130928 lrwxrwxrwx. 1 root root 5 4月  27 05:53 b.txt.sl -> b.txt
  • 文件管理操作對文件的影響
    • 文件刪除
      • 刪除superblock在該文件上的應用,刪除groupblock對文件的應用,將文件佔據的block標記置爲“0”,將inode標記釋放
    • 文件複製
      • 需要重新讀入文件數據再進行寫入
    • 文件移動
      • 同一分區下文件移動:只用修改對於文件路徑的引用
      • 不同分區下文件移動:需要重新讀入數據,然後引用

練習

  • 創建一個20G的文件系統,塊大小爲2048,文件系統ext4,卷標爲TEST,要求此分區開機後自動掛載至/testing目錄,且默認有acl掛載選項
  1. 創建20G分區
  2. 格式化:

mke2fs -t ext4 -b 2048 -L 'TEST' /dev/DEVICE

  1. 編輯/etc/fstab文件

LABEL='TEST' /testing ext4 defaults,acl 0 0

  • 寫一個腳本,完成如下功能:
  1. 列出當前系統識別到的所有磁盤設備
  2. 如磁盤數量爲1,則顯示其空間使用信息;否則,則顯示最後一個磁盤上的空間使用信息
if [ $disks -eq 1 ]; then 
		fdisk -l /dev/[hs]da
else
fdisk -l $(fdisk -l /dev/[sh]d[a-z] | grep -o "^Disk /dev/[sh]d[a-]" | tail -1 | cut -d' ' -f2)
fi

寫在最後的話:

  • 無論每個知識點的難易程度如何,我都會盡力將它描繪得足夠細緻
  • 歡迎關注我的CSDN博客,IDYS’BLOG
  • 持續更新內容
    linux基礎 | 數據通信(路由交換,WLAN) | Python基礎 | 雲計算
  • 如果你有什麼疑問,或者是難題。歡迎評論或者私信我。你若留言,我必回覆!
  • 雖然我現在還很渺小,但我會做好每一篇內容。謝謝關注!

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章