文件系統及其管理

来源:https://www.cnblogs.com/shenxm/archive/2018/01/28/8371198.html
-Advertisement-
Play Games

文件系統及其管理 文件系統 文件系統是操作系統用於明確存儲設備或分區上的文件的方法和數據結構,即在存儲設備上組織文件的方法。 操作系統中負責管理和存儲文件信息的軟體結構稱為文件管理系統,簡稱文件系統。 從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和 ...


文件系統及其管理

文件系統

文件系統是操作系統用於明確存儲設備或分區上的文件的方法和數據結構,即在存儲設備上組織文件的方法。
操作系統中負責管理和存儲文件信息的軟體結構稱為文件管理系統,簡稱文件系統。
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和檢索的系統。
具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日誌,壓縮,加密等
linux支持的文件系統:
    /lib/modules/`uname –r`/kernel/fs
    /proc/filesystems

文件系統的分類

Linux文件系統:ext2(Extended file system)、ext3、ext4、 xfs (SGI )、btrfs (Oracle )、reiserfs、jfs(AIX )、swap、iso9660(光碟)。
Windows文件系統:FAT32、exFAT、NTFS。
Unix文件系統:FFS(fast)、UFS(unix)、JFS2。
網路文件系統:NFS、CIFS。
集群文件系統:GFS2、OCFS2(oracle)
分散式文件系統:fastdfs、ceph、moosefs、mogilefs、glusterfs、Lustre。
未經處理或者未經格式化產生的文件系統:RAW
日誌型文件系統: ext3, ext4, xfs, ...
非日誌型文件系統: ext2, vfat
linux的虛擬文件系統:VFS
文件系統的選擇:
    類型      支持限制    root分區      boot分區      註釋
    xfs       500TB     YES           YES       預設分區格式
    ext4      50TB      YES           YES       相容ext3、ext2
    brfs      50TB      YES           YES       技術預覽
    gfs2     2-16個節點    YES         NO         集群文件共用存儲

文件系統管理命令

mkfs
    分區後,才可對新建的分區創建文件系統
    mkfs - build a Linux file system
    mkfs用於在設備上建立Linux文件系統,通常是一個硬碟分區。
    mkfs [-V] [-t type] [fs-options] device [size]
         -t, --type=<type>      指定文件系統的類型,當不指定時,採用 ext2 文件系統。
         fs-options         所創建文件系統的選項參數。
         <device>           設備的全路徑
         <size>             指定設備的塊大小
         -V, --verbose      顯示過程,specifying -V more than once will cause a dry-run

mke2fs
    mke2fs - create an ext2/ext3/ext4 filesystem
    mke2fs  [options]  device [blocks-count]
    options:
        -b<區塊大小>:   指定區塊大小,單位為位元組
        -c: 檢查是否有損壞的區塊
        -f<不連續區段大小>:    指定不連續區段的大小,單位為位元組
        -F: 不管指定的設備為何,強制執行mke2fs
        -i<位元組>: 指定"位元組/inode"的比例
        -N<inode數>: 指定要建立的inode數目
        -l<文件>: 從指定的文件中,讀取文件西中損壞區塊的信息
        -L<標簽>: 設置文件系統的標簽名稱
        -m<百分比值>:   指定給管理員保留區塊的比例,預設為5%
        -M: 記錄最後一次掛入的目錄
        -q: 執行時不顯示任何信息
        -r: 指定要建立的ext2文件系統版本
        -R=<區塊數>:   設置磁碟陣列參數
        -S: 僅寫入superblock與group descriptors,而不更改inode able inode bitmap以及block bitmap
        -v: 執行時顯示詳細信息
        -V: 顯示版本信息。
    device: 指定要創建的文件系統的分區設備文件名
    blocks-count:指定要創建的文件系統的磁碟塊數量

mkfs.fs_type
    分區後,才可對新建的分區創建文件系統
    mkfs.fs_type - build a fs_type  Linux file system,其中fs_type代表多種文件類型。
    mkfs.fs_type可以是mkfs.btrfs、mkfs.cramfs、mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.fat、mkfs.minix、mkfs.msdos、mkfs.vfat、mkfs.xfs    
    上述每個命令都對應一個類型的文件系統,選項太多也就不再一一寫出了,當用到那個時,具體看幫助。
    
blkid
    與之有關的文件/etc/fstab
    blkid - locate/print block device attributes,塊設備屬性查看
    blkid [options][<device>]
        -c <file>       從文件中讀取,而不是從預設的緩存文件中讀取 (-c /dev/null means no cache)
        -d              不編碼不列印的字元
        -h              列印幫助信息
        -g              丟棄收集到blkid緩存信息
        -o <format>     輸出格式,可以是value, device, export or full中的一個,預設為full
        -k              列出所有已經知道的文件系統或RAIDS並退出
        -s <tag>        顯示指定的 tag(s),預設顯示所有 tags
        -t <token>      用特定的象徵來找到設備(NAME=value pair)
        -l              僅查找第一設備,配合使用的是-t token選項
        -L <label>      轉換LABEL為設備名
        -U <uuid>       轉換UUID為設備名
        -V              輸出版本
        <dev>           指定要檢查的設備(default: all devices)
        -p              檢查低水平的超級塊 (bypass cache)
        -i              收集關於I/O限制的信息
        -S <size>       重寫設備尺寸
        -O <offset>     檢查給定的偏移
        -u <list>       過濾(e.g. -u filesystem,raid)
        -n <list>       通過文件系統過濾 (e.g. -n vfat,ext3)

findfs
    findfs - find a filesystem by label or UUID,通過label或uuid來查找文件系統
    findfs {LABEL,UUID,PARTUUID,PARTLABEL}=<value>

tune2fs
    tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems,重新設定ext系列可調整的參數。
    tune2fs [options] device
        -c: 調整最大載入次數;
        -C: 設置文件系統已經被載入的次數;
        -e: 設置內核代碼檢測到錯誤時的行為;
        -f: 強制執行修改,即使發生錯誤;
        -i: 設置相鄰兩次文件系統檢查的相隔時間;
        -j: 為“ext2”文件系統添加日誌功能,將其轉換為“ext3”文件系統;
        -l: 顯示文件超級塊內容;
        -L: 設置文件系統捲標;
        -m: 顯示文件保留塊的百分比;
        -M: 設置文件系統最後被載入到的目錄;
        -o: 設置或清除文件系統載入的特性或選項;
        -O: 設置或清除文件系統的特性或選項;
        -r: 設置文件系統保留塊的大小;
        -T: 設置文件系統上次被檢查的時間;
        -u: 設置可以使用文件系統保留塊的用戶;
        -U: 設置文件系統的UUID。

dumpe2fs
    dumpe2fs - dump ext2/ext3/ext4 filesystem information
    dumpe2fs [options] <device>
        -b: 列印文件系統中預留的塊信息;
        -ob<超級塊>:   指定檢查文件系統時使用的超級塊;
        -OB<塊大小>:   檢查文件系統時使用的指定的塊大小;
        -h: 僅顯示超級塊信息;
        -i: 從指定的文件系統映像文件中讀取文件系統信息;
        -x: 以16進位格式列印信息塊成員。

e2label
    e2label - Change the label on an ext2/ext3/ext4 filesystem
    e2label device [ new-label ]

fsck
    常用於發生於死機或者非正常關機之後,掛載為文件系統標記為“no clean” 的情況。註意,一定不要在掛載狀態下修複。
    fsck - check and repair a Linux filesystem
    fsck [-lrsAVRTMNP] [-C [fd]] [-t fstype] [filesystem...]  [--] [fs-specific-options]
        -a: 自動修複文件系統,不詢問任何問題;
        -A: 依照/etc/fstab配置文件的內容,檢查文件內所列的全部文件系統;
        -N: 不執行指令,僅列出實際執行會進行的動作;
        -P: 當搭配"-A"參數使用時,則會同時檢查所有的文件系統;
        -r: 採用互動模式,在執行修複時詢問問題,讓用戶得以確認並決定處理方式;
        -R: 當搭配"-A"參數使用時,則會略過/目錄的文件系統不予檢查;
        -s: 依序執行檢查作業,而非同時執行;
        -t<文件系統類型>: 指定要檢查的文件系統類型;
        -T: 執行fsck指令時,不顯示標題信息;
        -V: 顯示指令執行過程。
    返回數值所代表的信息:
        0       沒有錯誤
        1       文件系統錯誤糾正
        2       系統應該被重啟
        4       系統錯誤,未修正
        8       操作錯誤
        16      用法或語法錯誤Usage or syntax error
        32       通過用戶請求檢查緩存
        128      共用存儲錯誤

fsck.fs_tyoe
    和mkfs.fs_tpe類型。fy_type代表許多文件系統。
    fsck。fs_type用於針對不通的文件系統進行檢查和修複
    fsck。fs_type可以是fsck.btrfs、fsck.cramfs、fsck.ext2、fsck.ext3、fsck.ext4、fsck.fat、fsck.minix、fsck.msdos、fsck.vfat、fsck.xfs
    同樣由於選項太多就不一一描述了,用到那個具體查看man幫助等。

e2fsck
    e2fsck - check a Linux ext2/ext3/ext4 file system
    e2fsck [options] <device>
        -p                      自動修複 (no questions)
        -n                      對文件系統不做更改
        -y                      設置對所有文件回答為YES
        -c                      檢查的壞塊並添加到壞塊列表中
        -f                      強迫執行檢查,即使會把文件系統清空
        -v                      顯示詳情
        -b superblock           使用更改的超級塊兒
        -B blocksize            當查找超級塊兒時指定塊兒大小
        -j external_journal     設置外部日誌的位置
        -l bad_blocks_file      添加到壞塊列表中
        -L bad_blocks_file      設置壞塊兒列表

df
    df - report file system disk space usage,查看文件系統磁碟空間使用情況。
    df [OPTION]... [FILE]...
        -a, --all               顯示所有文件系統
        -B, --block-size=SIZE   在顯示前通過SIZE來測量尺寸大小; e.g., '-BM' prints sizes in units of 1,048,576 bytes,
        --direct            顯示文件狀態
        --total             顯示總結
        -h, --human-readable    用可讀性格式顯示尺寸大小(e.g., 1K 234M 2G)
        -H, --si                用1000的格式而不是1024的格式顯示
        -i, --inodes            顯示節點信息
        -k                      同 --block-size=1K
        -l, --local             僅顯示本地文件系統
        --no-sync           在得到有用信息之前不調用同步功能(default)
        --output[=FIELD_LIST]   使用被FLELD_LIS定義的格式輸出,或如果FIELD_LIST被忽略就輸出所有區域。
        -P, --portability       使用可移植性的系統介面POSIX輸出格式 
        --sync              在取得信息前,調用同步功能
        -t, --type=TYPE         限制文件系統列出的類型
        -T, --print-type        列印文件系統類型
        -x, --exclude-type=TYPE     不限制文件系統的列出類型

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 【01】淺談HTTP在WebApi開發中的運用 【02】聊聊WebApi體繫結構 【03】詳解WebApi如何傳遞參數 【04】詳解WebApi測試和PostMan 【05】淺談WebApi Cores 【06】詳解WebApi 異常處理 【07】用WebAPI寫個基於EF的CURD 【08】淺談W ...
  • 源自:https://segmentfault.com/q/1010000000534091?_ea=178721 Model:很簡單,就是業務邏輯相關的數據對象,通常從資料庫映射而來,我們可以說是與資料庫對應的model。 View:也很簡單,就是展現出來的用戶界面。 基本上,絕大多數軟體所做的工 ...
  • 前面說過,每個線程都有自己的資源,但是代碼區是共用的,即每個線程都可以執行相同的函數。這可能帶來的問題就是幾個線程同時執行一個函數,導致數據的混亂,產生不可預料的結果,因此我們必須避免這種情況的發生。 C#提供了一個關鍵字lock,它可以把一段代碼定義為互斥段(critical section),互 ...
  • 1.最新版本 2.打開文件,將包含以下文件: Ext.Net.dll Ext.Net.Utilities.dll Ext.Net.xml Newtonsoft.Json.dll Newtonsoft.Json.xml 3.打開 Visual Studio,創建C#網站項目 打開菜單創建網站 彈出"創 ...
  • http://blog.csdn.net/dndxhej/article/details/7434615 對sysfs和設備模型有瞭解的都會知道sysfs實際是為了將設備模型導出到用戶空間的一個記憶體文件系統。 設備模型的關鍵結構體kobject會組成設備模型的樹形結構,而sysfs的關鍵結構體sys ...
  • 工作原理: 簡單的來說,Sed一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱之為“模式空間”(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕,接著處理下一行,直到文件末尾。 語法: sed [option] [script'(se ...
  • 堅持知識分享,該文章由Alopex編著, 轉載請註明源地址: http://www.cnblogs.com/alopex/ 索引: 什麼是shell shell的分類 shell腳本的執行方式 摘要: 瞭解shell的本質是什麼 瞭解除bash這個shell之外,還有哪些shell shell 腳本 ...
  • 文件查找在文件系統上查找符合條件的文件文件查找命令:locate:非實時查找( 資料庫查找)find:實時查找 locate:查詢系統上預建的文件索引資料庫/var/lib/mlocate/mlocate.db 依賴於事先構建的索引索引的構建是在系統較為空閑時自動進行( 周期性 任務),管理員 手動 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...