磁盘及文件系统的管理
分區是為了創建文件系統
MBR:
??創建分區后,為了能夠快速的存取文件就有了文件系統
inode:中存儲了文件屬組,等與文件數據沒有關系的文件屬性信息,但是沒有文件名
每次訪問某個目錄的文件時是會進行緩存的,在一定的時間內再次訪問的時候會去這個緩存區查找
文件系統:如何存儲數據,一個硬盤會分成block區,還有inode區,在inode區里存儲文件的屬性類的信息,在block區存儲真正的數據,當我們存儲數據時首先在inode區查找能用的哪些inode區,在這里會記載著可用的block,當存儲數據時就會選擇那些可用的block,當要刪除數據時就會將那些存儲數據的block釋放,同時這些block就會被歸到那些可用的block序列中
一個文件只能有一個inode,一個inode也是只能有一個文件,inode與文件是一對一的關系
inode里存儲的應該是文件存儲數據時是用的哪幾個block,但若要是存儲的是另一個路徑的時候時應該是連接文件
ln:創建硬連接文件,-s則創建軟連接文件
??????????????? abc/test/123 將abc連接到123
硬鏈接
??????????????? 只能對文件創建,不能應用于目錄
??????????????? 不能跨文件系統
??????????????? 創建硬鏈接會增加文件被連接的次數
符號鏈接
??????????????? 可應用與目錄
??????????????? 可以跨文件系統
??????????????? 不會增加被連接文件的連接次數
??????????????? 大小為指定的路徑所包含的字符的個數
du:顯示一個文件或文件系統占據的整體的大小
df:顯示整個磁盤分區使用情況
設備文件
??????????????? b:按塊為單位,隨機訪問的設備
??????????????? c:按字符為單位,線性設備
??????????????? b:硬盤
??????????????? c:鍵盤
/dev(有兩個號)
??????????????? 主設備號
??????????????????????????????? 表示設備類型
??????????????? 次設備號
??????????????????????????????? 標識同一種類型中不同的設備
mknod:創建塊或字符的文件(可以指定權限和類型)
??????????????? -m:指定權限
硬盤設備的設備文件名
IDE,ATA:以hd開頭
SATA,SCSI,USB:以sd開頭
IDE
??????????????? 第一個IDE口:主從
??????????????? /dev/hda/dev/hdb
??????????????? 第二個IDE口:主從
??????????????? /dev/hdc/dev/hdd
查看當前系統識別了幾個硬盤使用fdisk –l,加上特定的硬盤分區查看相應的分區
Linux
由于VFS的存在使得Linux支持多中文件系統
管理磁盤分區
fdisk /dev/sda
??????????????? p:顯示當前硬件的分區,包括沒有保存的改動
??????????????? n:創建新的分區
??????????????????????????????? p:主分區
??????????????????????????????? e:擴展分區
??????????????? d:刪除
??????????????? w:保存退出
??????????????? q:不保存退出
??????????????? t:修改分區類型
??????????????? l:顯示所有支持的類型
目錄是原數據路徑的映射
為了加快inode與block的查找我們使用bitmap進行查找,為了更好的管理可以使用group管理inode與block,保存這些block的信息的是superblock
?
文件系統管理
重新創建文件系統會損壞原有文件
創建完文件系統可以使用cat/proc/partitions
mkfs:創建文件系統
??????????????? -t:文件系統的類型
專門管理ext系列文件
mke2fs
??????????????? -j:journal
??????????????? -b:指定塊大小,默認為4096
??????????????? -L:指定分區卷標
??????????????? -m #:指定留給超級用戶的塊數百分比
??????????????? -I #:指定多少個字節的空間創建一個inode默認為8192,這里給出的數值為塊大小的2^n倍
??????????????? -N #:指定inode個數
??????????????? -F:強制創建文件系統
??????????????? -E:用戶指定額外文件系統屬性
blkid+設備(哪個磁盤):查看磁盤或分區設備的相關屬性
??????????????? UUID&TYPE&LABLE
e2label:查看或是定義卷標
tune2fs:調整文件系統的相關屬性(無損創建)
??????????????? -j:不損壞原有數據將ext2升級為ext3
??????????????? -L:設定或修改卷標
??????????????? -m:調整預留百分比
??????????????? -r:指定預留塊數
??????????????? -o:設定默認掛載選項
??????????????????????????????? acl
??????????????? -c:指定掛載次數達到n次后進行自檢0或-1表關閉此功能
??????????????? -i:每掛載使用多少天后進行自檢0或-1表示關閉此功能
??????????????? -l:顯示超級塊信息
dumpe2fs:顯示文件屬性信息
??????????????? -h:只顯示超級塊信息
fsck:檢查并修復文件系統
??????????????? -t:指定文件系統
??????????????? -a:完成自動修復
e2fsck:檢查并修復ext3或是ext2文件系統
??????????????? -f:強制檢查
??????????????? -p:自動修復
掛載:將新的文件系統關聯至當前的根文件系統
卸載:將某文件系統有當前艮文件系統的關聯關系予以移除
mount:掛載
??????????????? -a:表示掛載/etc/fstab文件中定義的所有的文件系統
??????????????? -n:每掛載一次默認將掛載設備信息保存到/etc/mtab,使用-n表示不將信息保存至此文件中
??????????????? -t:指定正在掛載的設備上的文件系統的類型
??????????????? -r:只讀掛載
??????????????? -w:讀寫掛載
??????????????? -o:指定額外的掛載選項也知道文件系統
??????????????????????????????? -remount:重新掛載當前文件系統
???????????????????????????????
掛載點要求:1此目錄沒有被其他進程使用,2目錄需要事先存在,3目錄中原有文件暫時隱藏,掛載完成后要通過掛載點訪問對應的文件系統上的文件
umount:卸載
??????????????? 卸載注意事項:1掛載的設備沒有進程使用,2
文件系統類型
cat /proc/filesystems查看當前文件系統都有哪些(與內核打交道就要用到proc)
swap分區:允許內存可以過載使用
虛擬內存
free:查看物理內存和交換空間使用情況
分區是由格式的,在使用fdisk分區后是要使用t進行設置分區類型的,設置為82創建交換分區
創建交換分區
mkswap /dev/sda8
swapon:啟用交換分區
??????????????? -a:啟用所有定義在/etc/fstab上的swap文件中的交換設備
swapoff:關閉交換分區
當swap不夠用了,有本地回環設備loopback使用軟件模擬實現硬件
dd命令:復制文件,可以只復制一個文件的一部分,而cp必須復制整個文件
??????????????? dd if=數據來源of=數據存儲目標bs=512 count=2
磁盤上還有空間但是沒有分區了,可以暫時拿一個文件來代替分區
? ? ? ? ? ? ? ? ? ? ? ? ? ?
mount命令還可以掛載iso鏡像
??????????????? -o loop:掛載本地回環設備
文件系統配置文件/etc/fstab,寫在此文件內的定義的文件系統在開機的時候可以自動掛載
6個字段
掛載的設備
掛載點
文件系統類型
掛載選項
檢查
備份
fuser :驗證進程正在使用的文件或套接字文件
??????????????? -v:查看某個文件上正在運行的進程
??????????????? -k:
??????????????? -m:
??????????????? -km:終止正在訪問此掛載點的所有的進程
轉載于:https://blog.51cto.com/amazonjian/1713172
總結
以上是生活随笔為你收集整理的磁盘及文件系统的管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派4b上部署yolov3和v3-ti
- 下一篇: FPGA车牌数字识别系统设计verilo