分區里的inode號是0號和1號的block

来源:http://www.cnblogs.com/lyhabc/archive/2016/06/02/5552079.html
-Advertisement-
Play Games

分區里的inode號是0號和1號的block 我相信大家在使用Linux的時候都遇到過誤刪文件系統數據的情況,不管是自己誤刪還是幫人家恢復誤刪 現在用的比較多的恢復工具大概是ext3grep 、extundelete 這兩個 當然本文不是要說這兩個工具的使用方法,而是介紹每個分區里的inode號為0 ...


分區里的inode號是0號和1號的block

 

我相信大家在使用Linux的時候都遇到過誤刪文件系統數據的情況,不管是自己誤刪還是幫人家恢復誤刪

現在用的比較多的恢復工具大概是ext3grep 、extundelete 這兩個

當然本文不是要說這兩個工具的使用方法,而是介紹每個分區里的inode號為0或1號的block到底是什麼

 

在使用ext3grep 、extundelete 的時候,基本上都會有這樣一個步驟

在Linux下可以通過“ls-id”命令來查看某分區目錄的inode值,可以輸入:

[root@localhost /]#lsid /
2 /
[root@steven ~]# ls -id /boot
2 /boot

 

可以看到,無論是哪個分區,它的inode值都是2,而不是0,也不是1

並且當你用find命令來搜索一下0或1號inode的時候也是什麼也找不到

 find /  -inum 0
find: `/proc/1461/task/1461/fd/5': No such file or directory
find: `/proc/1461/task/1461/fdinfo/5': No such file or directory
find: `/proc/1461/fd/5': No such file or directory
find: `/proc/1461/fdinfo/5': No such file or directory

那麼inode為0或1的block去哪裡了?

 

 

boot sector 與 superblock 的關係

block 為 1024 bytes (1K) 時:

如果 block 大小剛好是 1024 的話,那麼 boot sector 與 superblock 各會占用掉一個 block , 也表示boot sector 是獨立於 superblock 外面的。

[root@www ~]# dumpe2fs /dev/hdc1
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name:   /boot
....(中間省略)....
First block:              1
Block size:               1024
....(中間省略)....

Group 0: (Blocks 1-8192)
  Primary superblock at 1, Group descriptors at 2-2
  Reserved GDT blocks at 3-258
  Block bitmap at 259 (+258), Inode bitmap at 260 (+259)
  Inode table at 261-511 (+260)
  511 free blocks, 1991 free inodes, 2 directories
  Free blocks: 5619-6129
  Free inodes: 18-2008

看到最後一個特殊字體的地方嗎? Group0 的 superblock 是由 1  號 block 開始的

上面結果可以發現 0 號 block 是保留下來留給 boot sector 用的

 

block 大於 1024 bytes (2K, 4K) 時:

如果 block 大於 1024 的話,那麼 superblock 將會在 0 號!

[root@www ~]# dumpe2fs /dev/hdc2
dumpe2fs 1.39 (29-May-2006)
....(中間省略)....
Filesystem volume name: /1 
....(中間省略)....
Block size: 4096
....(中間省略)....

Group 0: (Blocks 0-32767) 
Primary superblock at 0, Group descriptors at 1-1
Reserved GDT blocks at 2-626
Block bitmap at 627 (+627), Inode bitmap at 628 (+628)
Inode table at 629-1641 (+629)
0 free blocks, 32405 free inodes, 2 directories
Free blocks:
Free inodes: 12-32416

可以發現 superblock 就在第一個 block (第 0 號) 上,但是 superblock 其實就只有 1024bytes 

為了怕浪費更多空間,因此第一個 block 內就含有 boot sector 與 superblock

上面結果顯示,因為每個 block 占有 4K ,但是 superblock 其實就只有 1024bytes

因此在第一個 block 內 superblock 僅占有 1024-2047 ( 由 0 號起算的話),而 0-1023 就保留給 boot sector 來使用。

而後面的2048bytes 的空間保留

 

 

現在也明白了為什麼df命令這麼快了吧,它是讀取每個分區inode為0的superblock裡面的信息,

而superblock裡面就保存了分區文件系統類型、大小、已使用大小、可用大小

 

 

 

 

我們可以使用tune2fs命令查看某一分區的塊大小等信息

tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          4814e6f2-6550-4ac5-bf2d-33109fc53061
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file 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:              65280
Block count:              261048
Reserved block count:     13052
Free blocks:              252525
Free inodes:              65269
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      63
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8160
Inode blocks per group:   510
Flex block group size:    16
Filesystem created:       Thu Jun  2 12:23:23 2016
Last mount time:          Thu Jun  2 12:24:06 2016
Last write time:          Thu Jun  2 12:24:06 2016
Mount count:              1
Maximum mount count:      20
Last checked:             Thu Jun  2 12:23:23 2016
Check interval:           15552000 (6 months)
Next check after:         Tue Nov 29 12:23:23 2016
Lifetime writes:          32 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:              256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      fad5ad24-52ef-482c-a54b-367a5bb4f122
Journal backup:           inode blocks

 

通過上面的信息就可以知道superblock是在block 0還是block 1

那麼上面的信息又是從哪裡讀取出來的

答案是:還是superblock

 

superblock如此重要,所以系統也對superblock做了一些保護措施

文件系統會有一些備用超級塊,備用超級塊一般創建於塊 8193、16384 或 32768

ext類文件系統會把block分區一組一組來管理,可以看到Blocks per group這一行,就是每個group都包含了32768個block

每個group都會有一個備用superblock,所以備用超級塊一般創建於塊 8193、16384 或 32768,根據格式化時的block size而定

tune2fs -l /dev/sda4 |grep group
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Reserved blocks gid: 0 (group root)

 

 

註意:非ext類文件系統是不能用tune2fs命令的,而且原理和內部格式跟ext類文件系統不相同!!

tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
tune2fs: Bad magic number in super-block while trying to open /dev/sdb1
Couldn't find valid filesystem superblock.

 

 

 

以上內容針對於ext類文件系統,不對的地方歡迎拍磚

部分參考了鳥哥文章:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem_6.php


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

-Advertisement-
Play Games
更多相關文章
  • 實例的體繫結構 當用戶希望訪問資料庫時,需要在操作系統中運行相關的應用程式,如SQL*Plus ,啟動用戶進程。用戶進程通過實例訪問資料庫。 實例和資料庫組成了資料庫伺服器,-個資料庫伺服器中至少有一個實例。在單機環境中,實例和資料庫是一一對應的,一個實例只能和一個資料庫建立關聯關係,一個資料庫也只 ...
  • 作為一個關係資料庫產品, Oracle 目前占據了關係資料庫市場的最大份額。 與同類產品比較, Oracle提供了一套完整的機制,保證用戶快速、安全地訪問資料庫,同時保證資料庫安全、穩定地運行。在用戶眼中, Oracle具有性能穩定、運行高效等優點。Oracle的優點是顯而易見的,然而它的體繫結構卻 ...
  • 1、修改啟動MongoDB時要求用戶驗證加參數 --auth 即可。現在我們把MongoDB服務刪除,再重新添加服務 2、創建用戶,並使用創建的用戶登錄打開shell操作界面,預設test數據,再查看所有資料庫,發現報錯,因為沒有用戶驗證。使用db.auth("user","pwd")進行用戶驗證。 ...
  • 小生今年研二,目前主要從事軟體工程數據挖掘與分析。之前一直苦於找不到一個從數據預處理、數據分析、數據可視化和軟體建模的統一平臺。因此,小生輾轉反轍學習了java,R語言,python,scala等等。最後忽然發現python正是小生苦苦尋覓的“稀世珍寶”。在這裡主要總結利用python分析數據的一些 ...
  • 本文內容 測試數據 欄位屬性 按多行解析運行時日誌 把多行日誌解析到欄位 參考資料 在處理日誌時,除了訪問日誌外,還要處理運行時日誌,該日誌大都用程式寫的,比如 log4j。運行時日誌跟訪問日誌最大的不同是,運行時日誌是多行,也就是說,連續的多行才能表達一個意思。 本文主要說明,如何用 multil... ...
  • 觸發器是一種特殊的存儲過程,它在創建後就存儲在資料庫中。觸發器的特殊性在於它是建立在某個具體的表之上的,而且是自動激發執行的,如果用戶在這個表上執行了某個DML操作( UPDATE 、INSERT 、DELETE ),觸發器就被激發執行。觸發器常用於自動完成一些資料庫的維護工作。例如,觸發器可以具有 ...
  • select COLUMN_NAME from ( SELECT t.COLUMN_NAME, COUNT(*) c FROM USER_TAB_COLUMNS t WHERE t.TABLE_NAME ='table1' OR t.TABLE_NAME='table2' GROUP BY COLU ...
  • 1.安裝FTP組件 點擊:控制面板—》程式和功能—》打開或關閉Windows功能。勾選“FTP伺服器”及“FTP服務”“FTP擴展性”,點擊“確定”,安裝FTP組件。 2.添加FTP站點 點擊:控制面板—》管理工具。選中“Internet信息服務(IIS)管理器”。 雙擊“Internet信息服務( ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...