Linux 基礎學習訓練教材 - RockyLinux 9.x

課程/課後例題參考解答

單純提供一個相對的解答,並不是標準答案!

最近更新時間: 2023/05/01

單純就是個解答的參考,寫完之後再來這邊查查看答案跟你想的一樣不一樣!?

第 06 堂課 (2023/02/24)

  • 例題 6.1.1-1:
    1. 基本上, MSDOS 的 MBR 分割表僅支援到 2TB 的磁碟容量,為什麼呢?先參考第六章最後面的參考資料在說;
      • 由參考資料中,我們可以發現到,MBR 的分割表僅有 64bytes,其中分為 4 筆紀錄,所以每筆紀錄有 16bytes。
      • 在 16bytes 當中,紀錄磁區個數的,又僅有 4bytes,這 4bytes 約為 4*8=32bits 這麼多
      • 如果以數值表示,則為 2^32,亦即為 2^2 * 2^30,也就是共有 4*2^30 這麼多磁區可用。
      • 由於 MBR 大多僅支援 512bytes 的磁區的裝置,也就是 0.5K/每個磁區
      • 所以兩者相乘,亦即 4*2^30磁區 * 0.5K/每個磁區 = 4*2^30*0.5K=2*2^30K=2*2^20M=2*2^10G=2TB
    2. 共有 5 個可以進行格式化的分割槽,可以被格式化的僅有主分割 (Primary) 與邏輯分割 (Logical) 而已。要注意的是,邏輯分割又是從延伸分割切出來的, 所以,沒有延伸分割就沒有邏輯分割。而延伸分割只能有一個喔!這個是目前作業系統的限制。
      • 磁碟檔名,第一個實體磁碟為 /dev/sda,第一個虛擬磁碟為 /dev/vda 這樣。我們假設以實體磁碟為例
      • 分割槽檔名,第一個分割槽檔名會是 /dev/sda1, 第二個基本上就是 /dev/sda2,以此類推
      • 分割槽檔名前 4 筆已經保留給 primary 與 extended 了!所以 logical 由 /dev/sda5 開始編號。
      • 假設檔名編號為連續,因此,兩個 primary 分割檔名: /dev/sda1, /dev/sda2
      • 一定要有一個延伸分割,所以會是 /dev/sda3
      • 還需要 3 個 logical,所以會是 /dev/sda5, /dev/sda6, /dev/sda7
      • 最終可以被格式化使用的就是 /dev/sda1, /dev/sda2, /dev/sda5, /dev/sda6, /dev/sda7
    3. 注意上一題的結論!所有的剩餘容量盡量都保留給延伸分割才好!這樣才能夠進行完整的容量分配!
      • 全部的 1TB 容量,通通交給 /dev/sda3 這個延伸分割較佳!
      • 分割出 4 個 100GB 的邏輯分割,亦即如下:
      • /dev/sda5 100G
      • /dev/sda6 100G
      • /dev/sda7 100G
      • /dev/sda8 100G
  • 例題 6.1.2-1:
    1. 所謂的 metadata 指的是檔案系統描述區與區塊對應表,其他三個重要資訊,則是 (1)superblock, (2)inode table, (3)data block area
    2. 放置到 inode 中!
    3. 放置到 data block 中
    4. 一定用掉一個 inode,但是 block 則看該檔案的容量而定,亦即 block 數量不固定。
    5. 使用 dumpe2fs 的觀察,可以這樣做:
      [root@station10-101 ~]# df -T
      Filesystem             Type     1K-blocks    Used Available Use% Mounted on
      devtmpfs               devtmpfs      4096       0      4096   0% /dev
      tmpfs                  tmpfs       906728       0    906728   0% /dev/shm
      tmpfs                  tmpfs       362692    8224    354468   3% /run
      /dev/mapper/rocky-root xfs       10475520 4354156   6121364  42% /
      /dev/mapper/rocky-home xfs        3135488   71852   3063636   3% /home
      /dev/vda2              ext4       1992552  356272   1515040  20% /boot
      
      [root@station10-101 ~]# dumpe2fs /dev/vda2 | grep -i size
      dumpe2fs 1.46.5 (30-Dec-2021)
      Filesystem features:      has_journal ext_attr resize_inode dir_index filetype ...
      Block size:               4096
      Fragment size:            4096
      Group descriptor size:    64
      Flex block group size:    16
      Inode size:               256
      Required extra isize:     32
      Desired extra isize:      32
      Total journal size:       64M
      
      所以,inode 與 block 的容量,分別是 256bytes 以及 4K 喔!有興趣的同學,可以慢慢觀察一下 dumpe2fs 的輸出喔!
  • 例題 6.1.3-1:
    1. 查看檔名與 inode 號碼的對應,使用 ls -i 這個選項即可查詢到:
      [student@station10-101 ~]$ ll -i /etc/hosts
      25418236 -rw-r--r--. 1 root root 158 Jun 23  2020 /etc/hosts
      
    2. 建立目錄後,觀察目錄的第二欄位,亦即連結數量的位置:
      [student@station10-101 ~]$ cd /tmp
      [student@station10-101 tmp]$ mkdir inodecheck
      [student@station10-101 tmp]$ ll -di /tmp/inodecheck/ /tmp/inodecheck/.
      25418917 drwxr-xr-x. 2 student student 6 Feb 24 11:36 /tmp/inodecheck/
      25418917 drwxr-xr-x. 2 student student 6 Feb 24 11:36 /tmp/inodecheck/.
      
      其實,這兩個『檔名』對應的 inode 號碼一模一樣,代表這兩個檔名是一模一樣的內容!因此,除了檔名不同之外, 所有的參數都會一模一樣!所以說,那個 . 代表的是目錄本身,原因就是,共用相同的 inode 號碼!
    3. 因為有『兩個檔名』連結到相同的一個 inode 號碼,所以連結數 (link number)就是 2 !
    4. 看看子目錄建立時對於父目錄的影響:
      [student@station10-101 tmp]$ cd inodecheck
      [student@station10-101 inodecheck]$ mkdir check2
      [student@station10-101 inodecheck]$ ll
      total 0
      drwxr-xr-x. 2 student student 6 Feb 24 11:38 check2
      
      [student@station10-101 inodecheck]$ ll -di /tmp/inodecheck/ /tmp/inodecheck/. /tmp/inodecheck/check2/..
      25418917 drwxr-xr-x. 3 student student 20 Feb 24 11:38 /tmp/inodecheck/
      25418917 drwxr-xr-x. 3 student student 20 Feb 24 11:38 /tmp/inodecheck/.
      25418917 drwxr-xr-x. 3 student student 20 Feb 24 11:38 /tmp/inodecheck/check2/..
      
      那個 .. 代表『上層目錄』,所以,每建立一個子目錄,上層目錄的連結數就會 +1,這就是因為 inode 號碼相同的緣故喔!
  • 例題 6.1.4-1:
    1. 建立新的工作目錄:
      [student@station10-101 inodecheck]$ cd /dev/shm
      [student@station10-101 shm]$ mkdir check2
      [student@station10-101 shm]$ cd check2
      
    2. 先建立需要的原始檔案
      [student@station10-101 check2]$ cp /etc/hosts .
      [student@station10-101 check2]$ ll -i
      3 -rw-r--r--. 1 student student 158 Feb 24 11:40 hosts
      
    3. 開始建立實體連結 (hard linke)
      [student@station10-101 check2]$ ln hosts hosts.real
      [student@station10-101 check2]$ ll -i hosts*
      3 -rw-r--r--. 2 student student 158 Feb 24 11:40 hosts
      3 -rw-r--r--. 2 student student 158 Feb 24 11:40 hosts.real
      
      所以,實體連結,只會讓該 inode number 對應到另一個檔名,所以全部的屬性都會相同!如上所示,除了檔名之外,全部資料一模一樣喔!
    4. 開始建立符號連結 (symbolic link)
      [student@station10-101 check2]$ ln -s hosts hosts.symbo
      [student@station10-101 check2]$ ll -i hosts hosts.symbo
      3 -rw-r--r--. 2 student student 158 Feb 24 11:40 hosts
      4 lrwxrwxrwx. 1 student student   5 Feb 24 11:42 hosts.symbo -> hosts
      
      當為符號連結時,兩個檔名對應的 inode 並不相同,代表兩個完全獨立的檔案!但是,檔名會指向正確的檔名!而且注意看這個符號連結檔的容量: 因為檔名一個英文大致佔用一個 byte 的容量 hosts 共有 5 個字元,因此佔用 5bytes 的容量之意!
    5. 嘗試查閱檔案內容,當然,內容會一模一樣!
    6. 刪除掉來源檔,看看實體連結與符號連結的差異:
      [student@station10-101 check2]$ rm hosts
      [student@station10-101 check2]$ ll
      total 4
      -rw-r--r--. 1 student student 158 Feb 24 11:40 hosts.real
      lrwxrwxrwx. 1 student student   5 Feb 24 11:42 hosts.symbo -> hosts
      
      實體連結的部份,因為檔名少一條,所以 link number 會 -1,但是檔案的部份還是正常的!資料沒有改變。 符號連結的部份,因為原始檔案不見了,所以檔名顏色會變得奇怪!
    7. 開始讀取一下檔案內容
      [student@station10-101 check2]$ cat hosts.real
      127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
      
      [student@station10-101 check2]$ cat hosts.symbo
      cat: hosts.symbo: No such file or directory
      
      實體連結沒問題,因為依舊找到正確的 inode 號碼!符號連結會顯示找不到該檔案!這是因為檔名不見了!沒找到到正確的 inode 所以自然就無法取得正確的內容!因此回報找不到檔案喔!
    8. 在不同的檔案系統之間處理一下實體連結的問題:
      [student@station10-101 check2]$ df -T
      Filesystem             Type     1K-blocks    Used Available Use% Mounted on
      devtmpfs               devtmpfs      4096       0      4096   0% /dev
      tmpfs                  tmpfs       906728       4    906724   1% /dev/shm
      tmpfs                  tmpfs       362692    8220    354472   3% /run
      /dev/mapper/rocky-root xfs       10475520 4353168   6122352  42% /
      /dev/mapper/rocky-home xfs        3135488   71852   3063636   3% /home
      /dev/vda2              ext4       1992552  356272   1515040  20% /boot
      
      如上所示, /dev/shm 以及 /etc (就是 /) 分屬不同的檔案系統!現在來處理實體連結:
      [student@station10-101 check2]$ ln  /etc/hosts .
      ln: failed to create hard link './hosts' => '/etc/hosts': Invalid cross-device link
      
      實體連結必需要指向同一個 inode 號碼,而且,必須要再同一個裝置上面!如果跨檔案系統,因為不同的檔案系統其 inode 號碼參照並不相同, 所以不能跨檔案系統執行實體連結!所以,剛剛的指令就會失敗了!正確原因:不同的檔案系統之間,不能使用實體連結
  • 例題 6.1.5-1:
    1. 檔案系統需要『掛載』到本機目錄樹之後,才可以被系統所使用。這個掛載的掛載點,或稱為載點的,就是進入點的『目錄』所在。
    2. 使用 df 單純看到裝置與載點之間的相關性,如果加上 -T 的話,可以查閱到該裝置的檔案系統類型。
      [student@station10-101 check2]$ df -T
      Filesystem             Type     1K-blocks    Used Available Use% Mounted on
      devtmpfs               devtmpfs      4096       0      4096   0% /dev
      tmpfs                  tmpfs       906728       4    906724   1% /dev/shm
      tmpfs                  tmpfs       362692    8220    354472   3% /run
      /dev/mapper/rocky-root xfs       10475520 4353168   6122352  42% /
      /dev/mapper/rocky-home xfs        3135488   71852   3063636   3% /home
      /dev/vda2              ext4       1992552  356272   1515040  20% /boot
      tmpfs                  tmpfs       181344      52    181292   1% /run/user/42
      tmpfs                  tmpfs       181344      36    181308   1% /run/user/0
      
      裝置名稱為 tmpfs 的,大致上都屬於系統由記憶體模擬出來的資料,而 /dev 開頭的,才會是實體裝置。至於 Type 欄位就是檔案系統類型。 屬於 xfs 的,共有兩個 XFS 檔案系統,分別在 / 以及 /home 掛載點上面。裝置名稱 /dev/mapper/rocky-root 與 /dev/mapper/rocky-home 這兩個裝置主要由 LVM 而來,我們後面章節再來談
    3. 觀察各個目錄的 inode 號碼:
      [student@station10-101 check2]$ ls -lid / /boot /home /etc /root /proc /sys
           128 dr-xr-xr-x.  18 root root  235 Feb 20 14:20 /       <== /dev/mapper/rocky-root
             2 dr-xr-xr-x.   6 root root 4096 Feb 21 17:07 /boot   <== /dev/vda2
      25165953 drwxr-xr-x. 130 root root 8192 Feb 24  2023 /etc
           128 drwxr-xr-x.   9 root root  117 Feb 22 10:37 /home   <== /dev/mapper/rocky-home
             1 dr-xr-xr-x. 222 root root    0 Feb 24  2023 /proc
      16797826 dr-xr-x---.   4 root root  177 Feb 24 11:33 /root
             1 dr-xr-xr-x.  13 root root    0 Feb 24  2023 /sys
      
    4. 關於 inode 號碼,要注意,三個實體裝置 (/dev/mapper/rocky-root, /dev/mapper/rocky-home, /dev/vda2) 的檔案系統並不相同, /dev/mapper/rocky-root, /dev/mapper/rocky-home 這兩個 XFS 的起始 inode 號碼為 128, /dev/vda2 是 EXT4, EXT 家族的 inode 起始號碼為 2 號喔!至於其他的,如果是一般檔案系統,你就會發現 inode 號碼超級大! 如果是 1 的話,那就是掛在本機的記憶體中!本身不佔磁碟容量的意思~
  • 例題 6.2.1-1:
    1. 列出系統中的磁碟列表
      [root@station10-101 ~]# lsblk -i
      NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      sr0             11:0    1 1024M  0 rom
      vda            252:0    0   30G  0 disk
      |-vda1         252:1    0    2M  0 part
      |-vda2         252:2    0    2G  0 part /boot
      `-vda3         252:3    0   20G  0 part
        |-rocky-root 253:0    0   10G  0 lvm  /
        |-rocky-swap 253:1    0    1G  0 lvm  [SWAP]
        `-rocky-home 253:2    0    3G  0 lvm  /home
      
    2. 由 man lsblk 找到底下這兩個選項:
             -i, --ascii
                    Use ASCII characters for tree formatting.
             -p, --paths
                    Print full device paths.
      
      [root@station10-101 ~]# lsblk -i -p
      NAME                       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      /dev/sr0                    11:0    1 1024M  0 rom
      /dev/vda                   252:0    0   30G  0 disk
      |-/dev/vda1                252:1    0    2M  0 part
      |-/dev/vda2                252:2    0    2G  0 part /boot
      `-/dev/vda3                252:3    0   20G  0 part
        |-/dev/mapper/rocky-root 253:0    0   10G  0 lvm  /
        |-/dev/mapper/rocky-swap 253:1    0    1G  0 lvm  [SWAP]
        `-/dev/mapper/rocky-home 253:2    0    3G  0 lvm  /home
      
      所以裝置檔名實際上就是 /dev/vda 了!
    3. 列出分割表類型
      [root@station10-101 ~]# parted /dev/vda print
      Model: Virtio Block Device (virtblk)
      Disk /dev/vda: 32.2GB
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      Disk Flags: pmbr_boot
      
      Number  Start   End     Size    File system  Name  Flags
       1      1049kB  3146kB  2097kB                     bios_grub
       2      3146kB  2151MB  2147MB  ext4
       3      2151MB  23.6GB  21.5GB                     lvm
      
      我們這個裝置用的是 gpt 的分割表喔!
  • 例題 6.2.1-2:
    1. 由於我們需要新增一個 1G 的磁碟,因此得要看看目前的磁碟是否有剩餘容量?如果有才能夠進行分割,如果沒有, 要嘛就是安插新磁碟,要嘛就是將不要到分割刪除後,重建新分割。
      # 先以 gdisk 進入分割畫面,然後按下 p 來觀察剩餘容量:
      [root@station10-101 ~]# fdisk /dev/vda
      
      Command (m for help): p
      
      Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: gpt
      Disk identifier: 6CD584BC-1B5D-493B-9E48-1429460E793C
      
      Device       Start      End  Sectors Size Type
      /dev/vda1     2048     6143     4096   2M BIOS boot
      /dev/vda2     6144  4200447  4194304   2G Linux filesystem
      /dev/vda3  4200448 46151679 41951232  20G Linux LVM
      # 如上表所示,三個分割槽連續使用磁碟到 46151679,但磁碟總共有 62914560,所以還有容量!
      
      目前剩餘 (free) 的磁區號碼是介於 46151680 到 62914560 之間喔!
    2. 因為還有剩餘的容量存在,所以接下來開始處理新增分割槽的動作:
      Command (m for help): n
      Partition number (4-128, default 4):  <==用預設值,不用變,所以按 [enter]
      First sector (46151680-62914526, default 46151680):  <==用預設值,不用變,所以按 [enter]
      Last sector, +/-sectors or +/-size{K,M,G,T,P} (46151680-62914526, default 62914526): +1G
      
      Created a new partition 4 of type 'Linux filesystem' and of size 1 GiB.
      
      Command (m for help): p
      Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: gpt
      Disk identifier: 6CD584BC-1B5D-493B-9E48-1429460E793C
      
      Device        Start      End  Sectors Size Type
      /dev/vda1      2048     6143     4096   2M BIOS boot
      /dev/vda2      6144  4200447  4194304   2G Linux filesystem
      /dev/vda3   4200448 46151679 41951232  20G Linux LVM
      /dev/vda4  46151680 48248831  2097152   1G Linux filesystem <==務必觀察新建立的分割槽是否正確
      
      這樣就建置妥當了!
    3. 若上面的分割任務一切正常,我們就可以將分割表儲存囉!按下 w 來儲存分割表
      Command (m for help): w
      The partition table has been altered.
      Syncing disks.
      # 這一版本開始,核心變得很厲害!所以,如果不是更動到舊的分割槽,基本上,設計是直接生效!
      
      如果有出現警告訊息,通常是因為你更動到正在使用當中的分割槽所在的磁區,例如刪除大的分割槽,再細分數個分割時, 就有可能會出現警告訊息!我們是由原有的剩餘容量去分割,因此就不會出現任何錯誤!
    4. 讓新的分割表可以順利的被應用到目前的核心系統上:
      [root@station10-101 ~]# lsblk -i
      NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      sr0             11:0    1 1024M  0 rom
      vda            252:0    0   30G  0 disk
      |-vda1         252:1    0    2M  0 part
      |-vda2         252:2    0    2G  0 part /boot
      |-vda3         252:3    0   20G  0 part
      | |-rocky-root 253:0    0   10G  0 lvm  /
      | |-rocky-swap 253:1    0    1G  0 lvm  [SWAP]
      | `-rocky-home 253:2    0    3G  0 lvm  /home
      `-vda4         252:4    0    1G  0 part
      
      不需要重新開機或者是進行 partprobe ,立刻可以使用新的分割槽了!
  • 例題 6.2.1-3:
    1. 開始建立預計給 Windows/Linux 共用的 VFAT 檔案系統的分割槽:
      # 這一題有陷阱~那就是 1.5G 這個數字!請看如下作法:
      [root@station10-101 ~]# fdisk /dev/vda
      Command (m for help): n
      Partition number (5-128, default 5): 
      First sector (48248832-62914526, default 48248832): 
      Last sector, +/-sectors or +/-size{K,M,G,T,P} (48248832-62914526, default 62914526): +1.5G
      
      Created a new partition 5 of type 'Linux filesystem' and of size 1.5 GiB.
      
      Command (m for help): n
      Partition number (6-128, default 6): 
      First sector (51394560-62914526, default 51394560): 
      Last sector, +/-sectors or +/-size{K,M,G,T,P} (51394560-62914526, default 62914526): +1G
      
      Created a new partition 6 of type 'Linux filesystem' and of size 1 GiB.
      
      Command (m for help): p
      Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: gpt
      Disk identifier: 6CD584BC-1B5D-493B-9E48-1429460E793C
      
      Device        Start      End  Sectors  Size Type
      /dev/vda1      2048     6143     4096    2M BIOS boot
      /dev/vda2      6144  4200447  4194304    2G Linux filesystem
      /dev/vda3   4200448 46151679 41951232   20G Linux LVM
      /dev/vda4  46151680 48248831  2097152    1G Linux filesystem
      /dev/vda5  48248832 51394559  3145728  1.5G Linux filesystem
      /dev/vda6  51394560 53491711  2097152    1G Linux filesystem
      
      Command (m for help): l   <== 輸入 L 的小寫!
      .....
       11 Microsoft basic data           EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
      .....
       19 Linux swap                     0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
       20 Linux filesystem               0FC63DAF-8483-4772-8E79-3D69D8477DE4
      .....
       30 Linux LVM                      E6D6D379-F507-44C2-A23C-238F2A3DF928
      ....
      # 這邊按下 q 可以結束輸出!
      
      Command (m for help): t
      Partition number (1-6, default 6): 5
      Partition type or alias (type L to list all): 11
      
      Changed type of partition 'Linux filesystem' to 'Microsoft basic data'.
      
      Command (m for help): t
      Partition number (1-6, default 6): 6
      Partition type or alias (type L to list all): 19
      
      Changed type of partition 'Linux filesystem' to 'Linux swap'.
      
      Command (m for help): p
      Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: gpt
      Disk identifier: 6CD584BC-1B5D-493B-9E48-1429460E793C
      
      Device        Start      End  Sectors  Size Type
      /dev/vda1      2048     6143     4096    2M BIOS boot
      /dev/vda2      6144  4200447  4194304    2G Linux filesystem
      /dev/vda3   4200448 46151679 41951232   20G Linux LVM
      /dev/vda4  46151680 48248831  2097152    1G Linux filesystem
      /dev/vda5  48248832 51394559  3145728  1.5G Microsoft basic data
      /dev/vda6  51394560 53491711  2097152    1G Linux swap
      
      Command (m for help): w
      The partition table has been altered.
      Syncing disks.
      
      [root@station10-101 ~]# lsblk -i /dev/vda
      NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      vda            252:0    0   30G  0 disk
      |-vda1         252:1    0    2M  0 part
      |-vda2         252:2    0    2G  0 part /boot
      |-vda3         252:3    0   20G  0 part
      | |-rocky-root 253:0    0   10G  0 lvm  /
      | |-rocky-swap 253:1    0    1G  0 lvm  [SWAP]
      | `-rocky-home 253:2    0    3G  0 lvm  /home
      |-vda4         252:4    0    1G  0 part
      |-vda5         252:5    0  1.5G  0 part
      `-vda6         252:6    0    1G  0 part
      
      整體建置流程有點像這樣!最終還是要觀察 /dev/vda5 是否正確的顯示出兩個分割槽的容量喔!
  • 例題 6.2.2-1:
    1. 建立不同的檔案系統,並且觀察她!!
      # XFS 檔案系統
      [root@station10-101 ~]# mkfs.xfs /dev/vda4
      meta-data=/dev/vda4          isize=512    agcount=4, agsize=65536 blks
               =                   sectsz=512   attr=2, projid32bit=1
               =                   crc=1        finobt=1, sparse=1, rmapbt=0
               =                   reflink=1
      data     =                   bsize=4096   blocks=262144, imaxpct=25
               =                   sunit=0      swidth=0 blks
      naming   =version 2          bsize=4096   ascii-ci=0, ftype=1
      log      =internal log       bsize=4096   blocks=2560, version=2
               =                   sectsz=512   sunit=0 blks, lazy-count=1
      realtime =none               extsz=4096   blocks=0, rtextents=0
      # isize 是 inode 容量, bsize 是 block 容量,inode 已經大到 512 咯!
      
      # VFAT 檔案系統
      [root@station10-101 ~]# mkfs.vfat /dev/vda5
      mkfs.fat 4.2 (2021-01-31)
      # 因為 FAT 檔案系統格式比較笨,格式化速度飛快!
      
      # swap 磁碟置換資料格式
      [root@station10-101 ~]# mkswap /dev/vda6
      Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
      no label, UUID=4ed77543-15ac-487e-a817-7303efbd7ca8
      
      # 查看一下各個分割槽的 UUID 識別碼
      [root@station10-101 ~]# blkid
      /dev/vda4: UUID="cb3eced9-6b90-401a-9f57-ce0ecf275906" TYPE="xfs" PARTUUID="4f1e62b4-792d-cb4e-8d03-bd3cf89cef12"
      /dev/vda5: UUID="348A-3015" TYPE="vfat" PARTUUID="040e1e11-a8ed-4146-854c-9d0eecd7549f"
      /dev/vda6: UUID="4ed77543-15ac-487e-a817-7303efbd7ca8" TYPE="swap" PARTUUID="d4c91daf-fb83-b541-90df-997e215d0708"
      /dev/mapper/rocky-swap: UUID="a0346684-ff07-4933-b4a2-b1fbb88256e0" TYPE="swap"
      /dev/mapper/rocky-home: UUID="4700cd5a-2cfa-4453-92b8-0590e6d31f1b" TYPE="xfs"
      /dev/mapper/rocky-root: UUID="f328617e-3668-495c-9250-94e3db7c2894" TYPE="xfs"
      /dev/vda2: UUID="b93d23a0-3fdb-44c5-9304-4fbbbf415542" TYPE="ext4" PARTUUID="91901786-8814-443e-8976-75ac1417d38e"
      /dev/vda3: UUID="psa5cO-pVqm-djqq-pqpW-AwPY-g4CB-CkGwlt" TYPE="LVM2_member" PARTUUID="ef97c95f-4d40-48d1-8691-56de8ace5617"
      /dev/vda1: PARTUUID="3429abcc-ed63-4c5d-8301-b9114a50e728"
      # 可以看到上面 /dev/vda{4,5,6} 各自有說明檔案系統 (TYPE) 內容喔!
      
  • 例題 6.2.3-1:
    1. 先模擬一下無法卸載的情況!同時,學習如何找到使用該目錄的程序!
      # 先模擬使用載點的狀態,同時確認該目錄確實在掛載點內!
      [root@station10-101 ~]# cd /srv/linux
      [root@station10-101 linux]# pwd
      /srv/linux
      [root@station10-101 linux]# df /srv/linux
      Filesystem     1K-blocks  Used Available Use% Mounted on
      /dev/vda4        1038336 40292    998044   4% /srv/linux  <==這真的是個掛載點喔!
      
      # 嘗試卸載,若無法卸載,使用 lsof (list open file) 找出使用中的程序!
      [root@station10-101 linux]# umount /srv/linux
      umount: /srv/linux: target is busy.
      
      [root@station10-101 linux]# lsof | grep '/srv/linux'
      bash      2622        root  cwd       DIR     252,4    6     128 /srv/linux
      lsof      2772        root  cwd       DIR     252,4    6     128 /srv/linux
      grep      2773        root  cwd       DIR     252,4    6     128 /srv/linux
      lsof      2774        root  cwd       DIR     252,4    6     128 /srv/linux
      
      [root@station10-101 linux]# ps -l
      F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
      0 S     0    2622    2615  0  80   0 - 56023 do_wai pts/0    00:00:00 bash
      4 R     0    2775    2622  0  80   0 - 56375 -      pts/0    00:00:00 ps
      # 果然就是自己!
      
      # 模擬不再使用該載點資訊,然後卸載看看!
      [root@station10-101 linux]# cd
      [root@station10-101 ~]# umount /srv/linux
      [root@station10-101 ~]# df /srv/linux
      Filesystem             1K-blocks    Used Available Use% Mounted on
      /dev/mapper/rocky-root  10475520 4353220   6122300  42% /
      # 很明顯的發現,該目錄直接掛載在根目錄上,不是額外的檔案系統囉!
      
    2. 將沒有用到的其他一個載點與 swap 關閉!
      [root@station10-101 ~]# df -T |grep -v 'tmpfs'
      Filesystem             Type     1K-blocks    Used Available Use% Mounted on
      /dev/mapper/rocky-root xfs       10475520 4353220   6122300  42% /
      /dev/mapper/rocky-home xfs        3135488   71852   3063636   3% /home
      /dev/vda2              ext4       1992552  356272   1515040  20% /boot
      /dev/vda5              vfat       1569768       4   1569764   1% /srv/win
      
      [root@station10-101 ~]# umount /srv/win
      [root@station10-101 ~]# swapon -s
      Filename           Type            Size            Used            Priority
      /dev/dm-1          partition       1048572         0               -2
      /dev/vda6          partition       1048572         0               -3
      
      [root@station10-101 ~]# swapoff /dev/vda6
      [root@station10-101 ~]# swapon -s
      Filename           Type            Size            Used            Priority
      /dev/dm-1          partition       1048572         0               -2
      
  • 例題 6.3.1-1:
    1. 正常狀態的重新開機:鳥哥個人建議這樣進行:
      • 如果是圖形界面:將整個圖形界面內的軟體通通登出,然後用圖形界面的方式去點選重新開機,這樣比較妥當!
      • 如果是純文字界面:將所有的人 (連同自己) 登出系統,然後再以一般帳號登入,直接轉成 root 後,下達 reboot 指令較好。
    2. 開始測試剛剛的三個新的裝置是否正在使用中?若正在使用中,那就直接手動卸載:
      [root@station10-101 ~]# df -T
      Filesystem       Type     1K-blocks    Used Available Use% Mounted on
      /dev/vda5        vfat       1569768       4   1569764   1% /srv/win
      /dev/vda4        xfs        1038336   40292    998044   4% /srv/linux
      
      [root@station10-101 ~]# swapon -s
      Filename       Type            Size         Used      Priority
      /dev/dm-1      partition       1048572      0         -3
      /dev/vda6      partition       1048572      0         -2
      
      [root@station10-101 ~]# umount /dev/vda4 /dev/vda5
      [root@station10-101 ~]# swapoff /dev/vda6
      
    3. 既然才剛剛開機這幾個裝置就被使用了!那代表有寫入設定檔!因此,就來修改 /etc/fstab 了!
      [root@station10-101 ~]# vim /etc/fstab
      #UUID="cb3eced9-6b90-401a-9f57-ce0ecf275906"  /srv/linux xfs  defaults 0 0
      #UUID="348A-3015"                             /srv/win   vfat defaults 0 0
      #UUID="4ed77543-15ac-487e-a817-7303efbd7ca8"  swap       swap defaults 0 0
      # 我這裡暫時將它註解而已~
      
    4. 來測試看看剛剛修改的設定檔是否正確生效了!
      [root@station10-101 ~]# mount -a; swapon -a
      [root@station10-101 ~]# df -T /srv/win /srv/linux 
      Filesystem             Type 1K-blocks    Used Available Use% Mounted on
      /dev/mapper/rocky-root xfs   10475520 4353724   6121796  42% /
      /dev/mapper/rocky-root xfs   10475520 4353724   6121796  42% /
      [root@station10-101 ~]# swapon -s
      Filename        Type            Size         Used      Priority
      /dev/dm-1       partition       1048572      0         -2
      
      看起來確實都沒有 /dev/vda4, /dev/vda5, /dev/vda6 這三個裝置的使用情境了!
    5. 接下來,開始刪除整體檔案系統,亦即將 superblock 刪除,大致上,檔案系統就損毀了!
      [root@station10-101 ~]# blkid /dev/vda{4..6}
      /dev/vda4: UUID="cb3eced9-6b90-401a-9f57-ce0ecf275906" TYPE="xfs"  ...
      /dev/vda5: UUID="348A-3015" TYPE="vfat" PARTUUID="040e1e11-a8ed-41 ...
      /dev/vda6: UUID="4ed77543-15ac-487e-a817-7303efbd7ca8" TYPE="swap" ...
      # 看起來是具有檔案系統的,所以具有 TYPE 及 UUID 資訊
      
      [root@station10-101 ~]# dd if=/dev/zero of=/dev/vda4 bs=1M count=10
      10+0 records in
      10+0 records out
      10485760 bytes (10 MB, 10 MiB) copied, 0.0478999 s, 219 MB/s
      [root@station10-101 ~]# dd if=/dev/zero of=/dev/vda5 bs=1M count=10
      10+0 records in
      10+0 records out
      10485760 bytes (10 MB, 10 MiB) copied, 0.0344661 s, 304 MB/s
      [root@station10-101 ~]# dd if=/dev/zero of=/dev/vda6 bs=1M count=10
      10+0 records in
      10+0 records out
      10485760 bytes (10 MB, 10 MiB) copied, 0.0451356 s, 232 MB/s
      
      [root@station10-101 ~]# blkid /dev/vda{4..6}
      /dev/vda4: PARTUUID="4f1e62b4-792d-cb4e-8d03-bd3cf89cef12"
      /dev/vda5: PARTUUID="040e1e11-a8ed-4146-854c-9d0eecd7549f"
      /dev/vda6: PARTUUID="d4c91daf-fb83-b541-90df-997e215d0708"
      # 很明顯的發現檔案系統類型與 UUID 不見了喔!
      
    6. 再來刪除分割槽:
      [root@station10-101 ~]# fdisk /dev/vda
      Welcome to fdisk (util-linux 2.37.4).
      
      Command (m for help): d
      Partition number (1-6, default 6): 6
      
      Partition 6 has been deleted.
      
      Command (m for help): d
      Partition number (1-5, default 5): 5
      
      Partition 5 has been deleted.
      
      Command (m for help): d
      Partition number (1-4, default 4): 4
      
      Partition 4 has been deleted.
      
      Command (m for help): p
      Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: gpt
      Disk identifier: 6CD584BC-1B5D-493B-9E48-1429460E793C
      
      Device       Start      End  Sectors Size Type
      /dev/vda1     2048     6143     4096   2M BIOS boot
      /dev/vda2     6144  4200447  4194304   2G Linux filesystem
      /dev/vda3  4200448 46151679 41951232  20G Linux LVM
      
      Command (m for help): w
      The partition table has been altered.
      Syncing disks.
      
    7. 最終檢測一下是否抓到正確的分割了!
      [root@station10-101 ~]# partprobe
      [root@station10-101 ~]# lsblk -i /dev/vda
      NAME           MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
      vda            252:0    0  30G  0 disk
      |-vda1         252:1    0   2M  0 part
      |-vda2         252:2    0   2G  0 part /boot
      `-vda3         252:3    0  20G  0 part
        |-rocky-root 253:0    0  10G  0 lvm  /
        |-rocky-swap 253:1    0   1G  0 lvm  [SWAP]
        `-rocky-home 253:2    0   3G  0 lvm  /home
      
      可以確認分割表當中已經不存在 /dev/vda4, /dev/vda5, /dev/vda6 了!
  • 例題 6.4 課後練習
    1. 先進行檔案系統的相關觀察任務:
      # a. 找出目前系統上面所有的磁碟檔名,最簡單用 lsblk 即可
      [root@station10-101 ~]# lsblk -ip
      NAME                       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      /dev/sr0                    11:0    1 1024M  0 rom
      /dev/vda                   252:0    0   30G  0 disk
      |-/dev/vda1                252:1    0    2M  0 part
      |-/dev/vda2                252:2    0    2G  0 part /boot
      `-/dev/vda3                252:3    0   20G  0 part
        |-/dev/mapper/rocky-root 253:0    0   10G  0 lvm  /
        |-/dev/mapper/rocky-swap 253:1    0    1G  0 lvm  [SWAP]
        `-/dev/mapper/rocky-home 253:2    0    3G  0 lvm  /home
      
      # b. 開始測試一下,這個 vda 是屬於那一種分割表?用 parted/fdisk 都可以!
      [root@station10-101 ~]# parted /dev/vda print
      Model: Virtio Block Device (virtblk)
      Disk /dev/vda: 32.2GB
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      Disk Flags:
      
      Number  Start   End     Size    File system  Name  Flags
       1      1049kB  3146kB  2097kB                     bios_grub
       2      3146kB  2151MB  2147MB  ext4
       3      2151MB  23.6GB  21.5GB                     lvm
      
      [root@station10-101 ~]# fdisk -l /dev/vda
      Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: gpt
      Disk identifier: 6CD584BC-1B5D-493B-9E48-1429460E793C
      
      Device       Start      End  Sectors Size Type
      /dev/vda1     2048     6143     4096   2M BIOS boot
      /dev/vda2     6144  4200447  4194304   2G Linux filesystem
      /dev/vda3  4200448 46151679 41951232  20G Linux LVM
      
      # c. 簡單直覺就用 blkid 即可:
      [root@station10-101 ~]# blkid
      /dev/mapper/rocky-root: UUID="f328617e-3668-495c-9250-94e3db7c2894" TYPE="xfs"
      /dev/vda3: UUID="psa5cO-pVqm-djqq-pqpW-AwPY-g4CB-CkGwlt" TYPE="LVM2_member" PARTUUID="ef97c95f-4d40-48d1-8691-56de8ace5617"
      /dev/mapper/rocky-swap: UUID="a0346684-ff07-4933-b4a2-b1fbb88256e0" TYPE="swap"
      /dev/mapper/rocky-home: UUID="4700cd5a-2cfa-4453-92b8-0590e6d31f1b" TYPE="xfs"
      /dev/vda2: UUID="b93d23a0-3fdb-44c5-9304-4fbbbf415542" TYPE="ext4" PARTUUID="91901786-8814-443e-8976-75ac1417d38e"
      /dev/vda1: PARTUUID="3429abcc-ed63-4c5d-8301-b9114a50e728"
      
      # d. 從上一題知道了 /dev/vda2 為 ext4 而 rocky-home, rocky-root 為 xfs,所以:
      ot@station10-101 ~]# dumpe2fs /dev/vda2 | grep -i size
      dumpe2fs 1.46.5 (30-Dec-2021)
      Filesystem features:      has_journal ext_attr resize_inode dir_index filetype ...
      Block size:               4096
      Fragment size:            4096
      Group descriptor size:    64
      Flex block group size:    16
      Inode size:               256
      Required extra isize:     32
      Desired extra isize:      32
      Total journal size:       64M
      
      [root@station10-101 ~]# xfs_info /dev/mapper/rocky-root
      meta-data=/dev/mapper/rocky-root isize=512    agcount=4, agsize=655360 blks
               =                       sectsz=512   attr=2, projid32bit=1
               =                       crc=1        finobt=1, sparse=1, rmapbt=0
               =                       reflink=1    bigtime=1 inobtcount=1
      data     =                       bsize=4096   blocks=2621440, imaxpct=25
               =                       sunit=0      swidth=0 blks
      naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
      log      =internal log           bsize=4096   blocks=2560, version=2
               =                       sectsz=512   sunit=0 blks, lazy-count=1
      realtime =none                   extsz=4096   blocks=0, rtextents=0
      
      [root@station10-101 ~]# xfs_info /dev/mapper/rocky-home
      # block size 大致都是 4K, inode 容量不同喔! XFS 是 512bytes, EXT4 是 256 bytes
      
      # e. 與 f. 找出 swap 的裝置名稱 
      [root@station10-101 ~]# swapon -s
      Filename        Type            Size        Used     Priority
      /dev/dm-1       partition       1048572     0        -2
      
      [root@station10-101 ~]# blkid | grep swap
      /dev/mapper/rocky-swap: UUID="a0346684-ff07-4933-b4a2-b1fbb88256e0" TYPE="swap"
      
      [root@station10-101 ~]# ll /dev/mapper/rocky-swap
      lrwxrwxrwx. 1 root root 7 Feb 25 22:31 /dev/mapper/rocky-swap -> ../dm-1
      # 原來是 /dev/mapper/rocky-swap 這個檔案系統!!
      
    2. 理解 inode, 目錄、檔名與連結檔
      # a. 用 find 找連結檔
      [root@station10-101 ~]# find /etc -type l
      /etc/mtab
      /etc/fonts/conf.d/31-cantarell.conf
      /etc/fonts/conf.d/61-urw-bookman.conf
      /etc/fonts/conf.d/65-google-noto-cjk-fonts.conf
      ....
      /etc/yum/protected.d
      /etc/yum/vars
      /etc/yum.conf
      /etc/localtime
      
      [root@station10-101 ~]#  ll /etc/yum/vars /etc/yum.conf /etc/localtime
      lrwxrwxrwx. 1 root root 33 Feb 16 11:50 /etc/localtime -> ../usr/share/zoneinfo/Asia/Taipei
      lrwxrwxrwx. 1 root root 12 Nov 15 17:28 /etc/yum.conf -> dnf/dnf.conf
      lrwxrwxrwx. 1 root root 11 Nov 15 17:28 /etc/yum/vars -> ../dnf/vars
      # 檢測一下,至少後面幾個檔案,確實全部都是連結檔!
      
      # b. 透過 ls 以及 grep 去抓取 /etc 底下 (不含子目錄) 的連結檔,透過抓 > 這個關鍵字!
      lrwxrwxrwx.  1 root root  56 Feb  7 00:46 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
      lrwxrwxrwx.  1 root root  22 Feb 15 03:06 grub2.cfg -> ../boot/grub2/grub.cfg
      lrwxrwxrwx.  1 root root  33 Feb 16 11:50 localtime -> ../usr/share/zoneinfo/Asia/Taipei
      lrwxrwxrwx.  1 root root  19 Feb 16 11:44 mtab -> ../proc/self/mounts
      lrwxrwxrwx.  1 root root  29 Feb 20 14:21 nsswitch.conf -> /etc/authselect/nsswitch.conf
      lrwxrwxrwx.  1 root root  21 Dec 13 14:15 os-release -> ../usr/lib/os-release
      lrwxrwxrwx.  1 root root  13 Jan 24 04:06 rc.local -> rc.d/rc.local
      lrwxrwxrwx.  1 root root  13 Dec 13 14:15 redhat-release -> rocky-release
      lrwxrwxrwx.  1 root root  13 Dec 13 14:15 system-release -> rocky-release
      lrwxrwxrwx.  1 root root  12 Nov 15 17:28 yum.conf -> dnf/dnf.conf
      
      # c. 列出 inode 號碼,加上 -i 即可!
      [root@station10-101 ~]# ll -i /etc | grep '>'
      ......
      26600650 lrwxrwxrwx.  1 root root  13 Dec 13 14:15 redhat-release -> rocky-release
      25418218 lrwxrwxrwx.  1 root root  13 Dec 13 14:15 system-release -> rocky-release
      27080226 lrwxrwxrwx.  1 root root  12 Nov 15 17:28 yum.conf -> dnf/dnf.conf
      
      # d. 找出 /boot 底下,容量最大的檔案檔名:
      [root@station10-101 ~]# cd /boot
      [root@station10-101 boot]# ll --sort=size -r
      ....
      -rwxr-xr-x. 1 root root  11650240 Nov 18 10:18 vmlinuz-5.14.0-162.6.1.el9_1.x86_64
      -rwxr-xr-x. 1 root root  11650240 Feb 16 11:48 vmlinuz-0-rescue-d587a2c04fbb458e8015aef30df28fec
      -rwxr-xr-x. 1 root root  11650432 Jan 31 06:27 vmlinuz-5.14.0-162.12.1.el9_1.0.2.x86_64
      -rw-------. 1 root root  34527232 Feb 25 22:33 initramfs-5.14.0-162.12.1.el9_1.0.2.x86_64kdump.img
      -rw-------. 1 root root  34531328 Feb 17 10:30 initramfs-5.14.0-162.6.1.el9_1.x86_64kdump.img
      -rw-------. 1 root root  56383925 Feb 20 14:22 initramfs-5.14.0-162.12.1.el9_1.0.2.x86_64.img
      -rw-------. 1 root root  58573958 Feb 16 11:51 initramfs-5.14.0-162.6.1.el9_1.x86_64.img
      -rw-------. 1 root root 124071986 Feb 16 11:49 initramfs-0-rescue-d587a2c04fbb458e8015aef30df28fec.img
      
      # e. 觀察 /boot 的容量相關資料
      [root@station10-101 boot]# df /boot; du -s /boot; ll /boot | head -n 2
      Filesystem     1K-blocks   Used Available Use% Mounted on
      /dev/vda2        1992552 356272   1515040  20% /boot  <==檔案系統資料
      356268  /boot                                         <==實際 du 結果
      total 345848                                          <==ls 的結果
      # 所有容量大多顯示大致在 350MB 左右的使用量!
      
      # f. 建立實體連結:
      [root@station10-101 boot]# ln initramfs-0-rescue-d587a2c04fbb458e8015aef30df28fec.img zzz.img
      [root@station10-101 boot]# ll initramfs-0-rescue-d587a2c04fbb458e8015aef30df28fec.img zzz.img
      -rw-------. 2 root root 124071986 Feb 16 11:49 initramfs-0-rescue-d587a2c04fbb458e8015aef30df28fec.img
      -rw-------. 2 root root 124071986 Feb 16 11:49 zzz.img
      # 兩個檔案一模一樣,但是第 2 個欄位的數值 +1 了!
      
      # g. 再次觀察容量變化:
      [root@station10-101 boot]# df /boot; du -s /boot; ll /boot | head -n 2
      Filesystem     1K-blocks   Used Available Use% Mounted on
      /dev/vda2        1992552 356272   1515040  20% /boot
      356268  /boot
      total 467016
      # 實際的磁碟容量並沒有任何變化,可由 df 與 du 看得出來!
      # 但是, ls 沒有這麼聰明!所以容量會將 zzz.img 重複計算喔!
      
      # h. 觀察 inode 的數量
      [root@station10-101 boot]# df -i /boot
      Filesystem     Inodes IUsed  IFree IUse% Mounted on
      /dev/vda2      131072   374 130698    1% /boot
      
      # i. 刪除 zzz.img 看看 inode 數量有沒有變化?
      [root@station10-101 boot]# rm zzz.img
      rm: remove regular file 'zzz.img'? y
      
      [root@station10-101 boot]# df -i /boot
      Filesystem     Inodes IUsed  IFree IUse% Mounted on
      /dev/vda2      131072   374 130698    1% /boot
      # 所以, inode 數量根本沒變化!因為實體連結是加上一個檔名對應以!
      
      # j. 那麼符號連結的情況下, inode 又如何變化? 
      [root@station10-101 boot]# ln -s initramfs-0-rescue-d587a2c04fbb458e8015aef30df28fec.img zzz.img
      [root@station10-101 boot]# ll initramfs-0-rescue-d587a2c04fbb458e8015aef30df28fec.img zzz.img
      -rw-------. 1 root root 124071986 Feb 16 11:49 initramfs-0-rescue-d587a2c04fbb458e8015aef30df28fec.img
      lrwxrwxrwx. 1 root root        55 Feb 25 23:12 zzz.img -> initramfs-0-rescue-d587a2c04fbb458e8015aef30df28fec.img
      
      [root@station10-101 boot]# df -i /boot
      Filesystem     Inodes IUsed  IFree IUse% Mounted on
      /dev/vda2      131072   375 130697    1% /boot
      # 果然是產生一個新檔案了!所以 inode 被多用了一個!
      
    3. 熟悉一下檔案系統的處理:
      # a. 先來進行一個分割動作!
      [root@station10-101 ~]# fdisk /dev/vda
      Welcome to fdisk (util-linux 2.37.4).
      
      Command (m for help): n
      Partition number (4-128, default 4): 4
      First sector (46151680-62914526, default 46151680): 
      Last sector, +/-sectors or +/-size{K,M,G,T,P} (46151680-62914526, default 62914526): 
      
      Created a new partition 4 of type 'Linux filesystem' and of size 8 GiB.
      
      Command (m for help): p
      Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: gpt
      Disk identifier: 6CD584BC-1B5D-493B-9E48-1429460E793C
      
      Device        Start      End  Sectors Size Type
      /dev/vda1      2048     6143     4096   2M BIOS boot
      /dev/vda2      6144  4200447  4194304   2G Linux filesystem
      /dev/vda3   4200448 46151679 41951232  20G Linux LVM
      /dev/vda4  46151680 62914526 16762847   8G Linux filesystem
      
      Command (m for help): w
      The partition table has been altered.
      Syncing disks.
      
      [root@station10-101 ~]# lsblk -ip /dev/vda
      NAME                       MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
      /dev/vda                   252:0    0  30G  0 disk
      |-/dev/vda1                252:1    0   2M  0 part
      |-/dev/vda2                252:2    0   2G  0 part /boot
      |-/dev/vda3                252:3    0  20G  0 part
      | |-/dev/mapper/rocky-root 253:0    0  10G  0 lvm  /
      | |-/dev/mapper/rocky-swap 253:1    0   1G  0 lvm  [SWAP]
      | `-/dev/mapper/rocky-home 253:2    0   3G  0 lvm  /home
      `-/dev/vda4                252:4    0   8G  0 part
      
      # b. 接著進行格式化的動作:
      [root@station10-101 ~]# mkfs.ext4 /dev/vda4
      mke2fs 1.46.5 (30-Dec-2021)
      Creating filesystem with 2095355 4k blocks and 524288 inodes
      Filesystem UUID: 1e408458-dfd4-4381-9b25-5d839f7fc302
      Superblock backups stored on blocks:
              32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
      
      Allocating group tables: done
      Writing inode tables: done
      Creating journal (16384 blocks): done
      Writing superblocks and filesystem accounting information: done
      
      [root@station10-101 ~]# blkid /dev/vda4
      /dev/vda4: UUID="1e408458-dfd4-4381-9b25-5d839f7fc302" TYPE="ext4" PARTUUID="ef94984c-350b-5f4c-9885-f1a96986d2f6"
      
      # c. 開始測試自動掛載的行為!
      [root@station10-101 ~]# vim /etc/fstab
      
      UUID="1e408458-dfd4-4381-9b25-5d839f7fc302" /home/othersystem ext4 defaults 0 0
      
      [root@station10-101 ~]# mount -a
      mount: /home/othersystem: mount point does not exist.
      # 這個錯誤訊息很重要!我們只是沒有建立掛載點,所以再次建立,並重複執行 mount
      
      [root@station10-101 ~]# mkdir /home/othersystem
      [root@station10-101 ~]# mount -a
      [root@station10-101 ~]# df -T /home/othersystem
      Filesystem     Type 1K-blocks  Used Available Use% Mounted on
      /dev/vda4      ext4   8147400    24   7711924   1% /home/othersystem
      
      # d. 重新開機!
      [root@station10-101 ~]# reboot
      
      # e. 確認可以開機後,就將該檔案系統刪除吧!
      [root@station10-101 ~]# umount /dev/vda4
      [root@station10-101 ~]# vim /etc/fstab
      UUID="1e408458-dfd4-4381-9b25-5d839f7fc302" /home/othersystem ext4 defaults 0 0
      
      [root@station10-101 ~]# dd if=/dev/zero of=/dev/vda4 bs=1M count=10
      10+0 records in
      10+0 records out
      10485760 bytes (10 MB, 10 MiB) copied, 0.0462547 s, 227 MB/s
      
      [root@station10-101 ~]# fdisk /dev/vda
      Welcome to fdisk (util-linux 2.37.4).
      
      Command (m for help): d
      Partition number (1-4, default 4): 4
      
      Partition 4 has been deleted.
      
      Command (m for help): w
      The partition table has been altered.
      Syncing disks.
      
      [root@station10-101 ~]# lsblk -ip /dev/vda
      NAME                       MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
      /dev/vda                   252:0    0  30G  0 disk
      |-/dev/vda1                252:1    0   2M  0 part
      |-/dev/vda2                252:2    0   2G  0 part /boot
      `-/dev/vda3                252:3    0  20G  0 part
        |-/dev/mapper/rocky-root 253:0    0  10G  0 lvm  /
        |-/dev/mapper/rocky-swap 253:1    0   1G  0 lvm  [SWAP]
        `-/dev/mapper/rocky-home 253:2    0   3G  0 lvm  /home
      # 最後看不到 /dev/vda4 了!那就是順利成功囉!
      
修改歷史:
  • 2023/02/17:RHEL 改版到 EL9 了,只好再度改版!否則教學上面挺困擾!
2023/02/17 以來統計人數
計數器
其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

今日 人數統計
昨日 人數統計
本月 人數統計
上月 人數統計