天天看點

Linux基礎之檔案系統管理- 寫在開頭的話

文章目錄

  • - 寫在開頭的話
    • - Linux檔案系統
      • - CentOS上各個版本流行的檔案系統
      • - 其它檔案系統
    • - 檔案系統管理檢視類指令
      • - 檔案系統管理
      • - 檔案系統檢視、設定
      • - 檔案系統檢測修複
    • - 寫在最後的話:
這裡是一段防爬蟲文本,請讀者忽略。
本文原創首發于CSDN,作者IDYS
部落格首頁:https://blog.csdn.net/weixin_41633902/
本文連結:https://blog.csdn.net/weixin_41633902/article/details/105784761
           

- 寫在開頭的話

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

- Linux檔案系統

- CentOS上各個版本流行的檔案系統

  • CentOS 5.x
    • ext2
  • CentOS 6.x
    • ext3,ext4
  • CentOS 7.x
    • ext4,xfs,btrfs,ReiserFS,jfs

- 其它檔案系統

  • swap : 交換分區(虛拟記憶體)
  • CD光牒:ISO9660
  • Windows:
    • fat32,ntfs
    • Uinx:FFS,UFS,JFS2
    • 網絡檔案系統NFS,CIFS
  • 叢集檔案:GFS2,OCFS2
  • 分布式檔案系統:
    • moosefs,mogilefs,GlusterFS,Lustre
  • 根據其是否支援“journal功能”
    • 日志型檔案系統:ext3,ext4,xfs
    • 非日志型檔案系統:ext2,vfat
  • 檔案系統的組成部分
    • 核心中的子產品:ext4,xfs,vfat
    • 使用者空間管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
  • Linux的虛拟檔案系統:VFS
  • btrfs 檔案系統支援容量的擴充,而且支援快照

- 檔案系統管理檢視類指令

- 檔案系統管理

  • 建立檔案系統:
    • mkfs.FS_TYPE /dev/DEVICE
      • mkfs.ext4
      • mkfs.xfs
      • mkfs.btrfs
      • mkfs.vfat
    • mkfs -t FS_TYPE /DEV/DEVICE[NUM]
      • -L ‘LABEL’:設定卷标
    • mke2fs:ext系列檔案系統專用管理工具
      • -t:{ext2 | ext3 | ext4}
      • -b:{1024 | 2048 | 4096} 設定塊大小
      • -L ‘LABEL’
      • -j:相當于-t ext3 建立ext3檔案系統
        • mkfs.ext3
        • mkfs -t ext3
        • mke2fs -j
        • mke2fs -t ext3
      • -i #:為資料空間中每多少個位元組建立一個inode 此大小不能小于塊(block)大小
      • -N #:為資料空間建立多少個inode
      • -m #:為管理人員預留的空間占據的百分比:通常為5%
      • -O FEATURE[,…]:啟用指定特性
        • -O ^FEATURE:關閉指定特性
-b指定塊大小 -m指定預留白間百分比  -L 設定卷标
mke2fs -b 1024 -m 3 -L MYDATA -i 
           
  • mkswap:建立交換分區
    • mkswap [options] device
      • -L ‘LABEL’
    • 前提:調整其分區ID為82
# 修改分區ID号
[[email protected] /]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd406d040

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           2       16033+  83  Linux
/dev/sdb2               3           4       16065   82  Linux swap / Solaris

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

# 讀取硬碟分區表
[[email protected] /]# partx -a -n 2 /dev/sdb
BLKPG: Device or resource busy
error adding partition 2 #雖然提示error但是沒事
BLKPG: Device or resource busy
error adding partition 3

#設定為交換分區
[[email protected] /]# mkswap /dev/sdb2 
Setting up swapspace version 1, size = 16060 KiB
no label, UUID=09727f1e-eb7c-4b64-9a17-542cb6879b59

# 檢視分區資訊
[[email protected] /]# blkid /dev/sdb2 
/dev/sdb2: UUID="09727f1e-eb7c-4b64-9a17-542cb6879b59" TYPE="swap" 
           
  • 檢視Linux支援的檔案系統類型:cat /proc/filesystems
    • 每個檔案系統都有一個核心子產品
    • 使用 lsmod檢視在核心中裝載的所有子產品
#檢視Linux支援的檔案系統類型 

[[email protected] ~]# cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   binfmt_misc
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   usbfs
nodev   pipefs
nodev   anon_inodefs
nodev   inotifyfs
nodev   devpts
nodev   ramfs
nodev   hugetlbfs
        iso9660
nodev   pstore
nodev   mqueue
nodev   selinuxfs
nodev   drm
        ext4

# 檢視Linux檔案系統裝載的所有核心子產品

[[email protected] ~]# lsmod
Module                  Size  Used by
tcp_diag                1041  0 
inet_diag               9430  1 tcp_diag
ib_ipoib               81191  0 
rdma_ucm               15739  0 
ib_ucm                 12360  0 
ib_uverbs              40532  2 rdma_ucm,ib_ucm
ib_umad                13519  0 
rdma_cm                36651  1 rdma_ucm
ib_cm                  37444  3 ib_ipoib,ib_ucm,rdma_cm
iw_cm                  33136  1 rdma_cm
ib_sa                  24188  4 ib_ipoib,rdma_ucm,rdma_cm,ib_cm
ib_mad                 41628  3 ib_umad,ib_cm,ib_sa
ib_core                83020  10 ib_ipoib,rdma_ucm,ib_ucm,ib_uverbs,ib_umad,rdma_cm,ib_cm,iw_cm,ib_sa,ib_mad
.....  #省略
           
  • 下面介紹磁盤檔案系統的格式化
# 格式化分區,劃分檔案系統

[[email protected] ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
檔案系統标簽=
作業系統:Linux
塊大小=1024 (log=0)
分塊大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
4016 inodes, 16032 blocks
801 blocks (5.00%) reserved for the super user
第一個資料塊=1
Maximum filesystem blocks=16515072
2 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks: 
        8193

正在寫入inode表: 完成                            
Creating journal (1024 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
           
  • e2label:管理ext系列檔案系統的LABEL
[[email protected] /]# e2label /dev/sdb2
MYDATA

# 修改/dev/sdb2分區檔案系統的label為DATA
[[email protected] /]# e2label /dev/sdb2 "DATA"
[[email protected] /]# e2label /dev/sdb2
DATA
           

- 檔案系統檢視、設定

  • blkid:塊裝置屬性資訊檢視
  • 可以顯示分區的屬性資訊
    • blkid [OPTION] [DEVICE]
    • -U UUID:根據指定UUID查找裝置
    • -L LABEL:根據指定的卷标檢視裝置
# 顯示/dev/sdb1分區的屬性資訊

[[email protected] ~]# blkid /dev/sdb1
/dev/sdb1: UUID="de7f400a-511b-4aac-b141-97818146052b" TYPE="ext4"

#  顯示/dev/sdb1分區的屬性資訊
[[email protected] /]# blkid /dev/sdb2
/dev/sdb2: LABEL="MYDATA" UUID="02c07346-6e58-4fa0-ad5d-a51971b9c82d" TYPE="ext4"

# 根據卷标查找裝置
[[email protected] /]# blkid -L "MYDATA"
/dev/sdb2

# 根據UUID查找裝置
[[email protected] /]# blkid -U 02c07346-6e58-4fa0-ad5d-a51971b9c82d
/dev/sdb2
           
  • tune2fs:重新設定ext系列檔案系統可調整參數的值
    • -l:檢視指定檔案系統的超級塊資訊
    • -L ‘LABEL’:修改卷标
    • -m #:修改預留給管理者的空間百分比
    • -j:将ext2更新為ext3
    • -O:檔案系統屬性資訊啟用或禁用
      • -O has_journal 開啟日志功能
      • -O ^has_journal 關閉日志功能
    • -o:調整檔案系統的預設挂載選項
    • -U UUID:修改UUID号
# 檢視指定分區的超級塊資訊
[[email protected] /]# tune2fs -l /dev/sdb2 
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   DATA
Last mounted on:          <not available>
Filesystem UUID:          02c07346-6e58-4fa0-ad5d-a51971b9c82d
Filesystem magic number:  0xEF53
..... #省略

# 啟用日志功能
[[email protected] /]# tune2fs -0 'has_journal' /dev/sdb1  

# 關閉日志功能
[[email protected] /]# tune2fs -O '^has_journal' /dev/sdb1
           
  • dumpe2fs:檢視整個檔案系統的結構資訊
    • -h :檢視超級塊資訊
[[email protected] /]# dumpe2fs /dev/sdb1
.... 前面省略
Group 0: (Blocks 1-8192) [ITABLE_ZEROED]
  校驗和 0xab1e,1997個未使用的inode
  主 superblock at 1, Group descriptors at 2-2
  保留的GDT塊位于 3-64
  Block bitmap at 65 (+64), Inode bitmap at 81 (+80)
  Inode表位于 97-347 (+96)
  7608 free blocks, 1997 free inodes, 2 directories, 1997個未使用的inodes
  可用塊數: 80, 83-96, 600-8192
  可用inode數: 12-2008
Group 1: (Blocks 8193-16031) [INODE_UNINIT, ITABLE_ZEROED]
  校驗和 0x1522,2008個未使用的inode
  備份 superblock at 8193, Group descriptors at 8194-8194
  保留的GDT塊位于 8195-8256
  Block bitmap at 66 (+4294959169), Inode bitmap at 82 (+4294959185)
  Inode表位于 348-598 (+4294959451)
  6751 free blocks, 2008 free inodes, 0 directories, 2008個未使用的inodes
  可用塊數: 9281-16031
  可用inode數: 2009-4016

# dumpe2fs -h 隻檢視檔案系統的超級塊資訊

[[email protected] /]# dumpe2fs -h /dev/sdb1
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          319da001-4962-40c6-bff5-6df98106d672
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              4016
Block count:              16032
Reserved block count:     801
Free blocks:              14359
           

- 檔案系統檢測修複

  • fsck:FILE System Check
    • fsck.FS_TYPE
    • fsck -t FS_TYPE
    • fsck -a:自動修複錯誤
    • fsck -r:互動式修複錯誤
注意:FS_TYPE一定要與分區上的檔案系統類型相同
  • e2fsck:ext系列檔案系統專用的檢測工具
    • -y:自動回答為yes
    • -f:強制修複(不管檔案系統有沒有錯誤直接修複,非常粗暴)
# 首先檢視檔案系統是否出現錯誤

[[email protected] /]# fsck.ext4 /dev/sdb1 
e2fsck 1.41.12 (17-May-2010)
/dev/sdb1: clean, 11/4016 files, 1673/16032 blocks

#如果出現錯誤則使用fsck -r 互動式修複錯誤

[[email protected] /]# fsck -r /dev/sdb1    
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb1: clean, 11/4016 files, 1673/16032 blocks

#強制,不管檔案系統是否出現問題,直接修複,非常粗暴,不建議使用
[[email protected] /]# e2fsck -f /dev/sdb1 
           

- 寫在最後的話:

  • 無論每個知識點的難易程度如何,我都會盡力将它描繪得足夠細緻
  • 歡迎關注我的CSDN部落格,IDYS’BLOG
  • 持續更新内容:運維 | 網工 | 軟體技巧
  • 如果你有什麼疑問,或者是難題。歡迎評論或者私信我。你若留言,我必回複!
  • 雖然我現在還很渺小,但我會做好每一篇内容。謝謝關注!
Linux基礎之檔案系統管理- 寫在開頭的話