1. 程式人生 > >EXT2檔案系統

EXT2檔案系統

檔案系統特性

        舉例來說,windows 98 以前的微軟作業系統主要利用的檔案系統是 FAT (或 FAT16),windows 2000 以後的版本有所謂的 NTFS 檔案系統,至於 Linux 的正統檔案系統則為 Ext2 (Linux second extended file system, ext2fs)這一個。此外,在預設的情況下,windows 作業系統是不會認識 Linux 的 Ext2 的。

        那麼檔案系統是如何執行的呢?這與作業系統的檔案資料有關。較新的作業系統的檔案資料除了檔案實際內容外, 通常含有非常多的屬性,例如 Linux 作業系統的檔案許可權(rwx)與檔案屬性(擁有者、群組、時間引數等)。 檔案系統通常會將這兩部份的資料分別存放在不同的區塊,許可權與屬性放置到 inode 中,至於實際資料則放置到 data block 區塊中。 另外,還有一個超級區塊 (superblock) 會記錄整個檔案系統的整體資訊,包括 inode 與 block 的總量、使用量、剩餘量等。

        每個 inode 與 block 都有編號,至於這三個資料的意義可以簡略說明如下:

    superblock:記錄此 filesystem 的整體資訊,包括inode/block的總量、使用量、剩餘量, 以及檔案系統的格式與相關資訊等;
    inode:記錄檔案的屬性,一個檔案佔用一個inode,同時記錄此檔案的資料所在的 block 號碼;
    block:實際記錄檔案的內容,若檔案太大時,會佔用多個 block 。

        我們將 inode 與 block 區塊用圖解來說明一下,如下圖所示,檔案系統先格式化出 inode 與 block 的區塊,假設某一個檔案的屬性與許可權資料是放置到 inode 4 號(下圖較小方格內),而這個 inode 記錄了檔案資料的實際放置點為 2, 7, 13, 15 這四個 block 號碼,此時我們的作業系統就能夠據此來排列磁碟的閱讀順序,可以一口氣將四個 block 內容讀出來! 那麼資料的讀取就如同下圖中的箭頭所指定的模樣了。


        這種資料存取的方法我們稱為索引式檔案系統(indexed allocation)。那有沒有其他的慣用檔案系統可以比較一下啊? 有的,那就是我們慣用的閃盤(快閃記憶體),閃盤使用的檔案系統一般為 FAT 格式。FAT 這種格式的檔案系統並沒有 inode 存在,所以 FAT 沒有辦法將這個檔案的所有 block 在一開始就讀取出來。每個 block 號碼都記錄在前一個 block 當中, 他的讀取方式有點像底下這樣:


        上圖中我們假設檔案的資料依序寫入1->7->4->15號這四個 block 號碼中, 但這個檔案系統沒有辦法一口氣就知道四個 block 的號碼,他得要一個一個的將 block 讀出後,才會知道下一個 block 在何處。 如果同一個檔案資料寫入的 block 分散的太過厲害時,則我們的磁碟讀取頭將無法在磁碟轉一圈就讀到所有的資料, 因此磁碟就會多轉好幾圈才能完整的讀取到這個檔案的內容!

data block (資料區塊)

        data block 是用來放置檔案內容資料地方,在 Ext2 檔案系統中所支援的 block 大小有 1K, 2K 及 4K 三種而已。在格式化時 block 的大小就固定了,且每個 block 都有編號,以方便 inode 的記錄啦。 不過要注意的是,由於 block 大小的差異,會導致該檔案系統能夠支援的最大磁碟容量與最大單一檔案容量並不相同。 因為 block 大小而產生的 Ext2 檔案系統限制如下:


除此之外 Ext2 檔案系統的 block 還有什麼限制呢?有的!基本限制如下:

    原則上,block 的大小與數量在格式化完就不能夠再改變了(除非重新格式化);
    每個 block 內最多隻能夠放置一個檔案的資料;
    承上,如果檔案大於 block 的大小,則一個檔案會佔用多個 block 數量;
    承上,若檔案小於 block ,則該 block 的剩餘容量就不能夠再被使用了(磁碟空間會浪費)。

inode table (inode 表格)

再來討論一下 inode 這個玩意兒吧!如前所述 inode 的內容在記錄檔案的屬性以及該檔案實際資料是放置在哪幾號 block 內! 基本上,inode 記錄的檔案資料至少有底下這些:

    該檔案的存取模式(read/write/excute);
    該檔案的擁有者與群組(owner/group);
    該檔案的容量;
    該檔案建立或狀態改變的時間(ctime);
    最近一次的讀取時間(atime);
    最近修改的時間(mtime);
    定義檔案特性的旗標(flag),如 SetUID...;
    該檔案真正內容的指向 (pointer);


inode 的數量與大小也是在格式化時就已經固定了,除此之外 inode 還有些什麼特色呢?

    每個 inode 大小均固定為 128 bytes;
    每個檔案都僅會佔用一個 inode 而已;
    承上,因此檔案系統能夠建立的檔案數量與 inode 的數量有關;
    系統讀取檔案時需要先找到 inode,並分析 inode 所記錄的許可權與使用者是否符合,若符合才能夠開始實際讀取 block 的內容。

        我們約略來分析一下 inode / block 與檔案大小的關係好了。inode 要記錄的資料非常多,但偏偏又只有 128bytes 而已, 而 inode 記錄一個 block 號碼要花掉 4byte ,假設我一個檔案有 400MB 且每個 block 為 4K 時, 那麼至少也要十萬筆 block 號碼的記錄呢!inode 哪有這麼多可記錄的資訊?為此我們的系統很聰明的將 inode 記錄 block 號碼的區域定義為12個直接,一個間接, 一個雙間接與一個三間接記錄區。這是啥?我們將 inode 的結構畫一下好了。


        上圖最左邊為 inode 本身 (128 bytes),裡面有 12 個直接指向 block 號碼的對照,這 12 筆記錄就能夠直接取得 block 號碼啦! 至於所謂的間接就是再拿一個 block 來當作記錄 block 號碼的記錄區,如果檔案太大時, 就會使用間接的 block 來記錄編號。如上圖 1.3.2 當中間接只是拿一個 block 來記錄額外的號碼而已。 同理,如果檔案持續長大,那麼就會利用所謂的雙間接,第一個 block 僅再指出下一個記錄編號的 block 在哪裡, 實際記錄的在第二個 block 當中。依此類推,三間接就是利用第三層 block 來記錄編號!

Superblock (超級區塊)

Superblock 是記錄整個 filesystem 相關資訊的地方, 沒有 Superblock ,就沒有這個 filesystem 了。他記錄的資訊主要有:

    block 與 inode 的總量;
    未使用與已使用的 inode / block 數量;
    block 與 inode 的大小 (block 為 1, 2, 4K,inode 為 128 bytes);
    filesystem 的掛載時間、最近一次寫入資料的時間、最近一次檢驗磁碟 (fsck) 的時間等檔案系統的相關資訊;
    一個 valid bit 數值,若此檔案系統已被掛載,則 valid bit 為 0 ,若未被掛載,則 valid bit 為 1 。

[[email protected] ~]# dumpe2fs [-bh] 裝置檔名
選項與引數:
-b :列出保留為壞軌的部分(一般用不到吧!?)
-h :僅列出 superblock 的資料,不會列出其他的區段內容!

範例:找出我的根目錄磁碟檔名,並觀察檔案系統的相關資訊
[[email protected] ~]# df   <==這個命令可以叫出目前掛載的裝置
Filesystem    1K-blocks      Used Available Use% Mounted on
/dev/hdc2       9920624   3822848   5585708  41% /        <==就是這個光!
/dev/hdc3       4956316    141376   4559108   4% /home
/dev/hdc1        101086     11126     84741  12% /boot
tmpfs            371332         0    371332   0% /dev/shm

[[email protected] ~]# dumpe2fs /dev/hdc2
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name:   /1             <==這個是檔案系統的名稱(Label)
Filesystem features:      has_journal ext_attr resize_inode dir_index 
  filetype needs_recovery sparse_super large_file
Default mount options:    user_xattr acl <==預設掛載的引數
Filesystem state:         clean          <==這個檔案系統是沒問題的(clean)
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              2560864        <==inode的總數
Block count:              2560359        <==block的總數
Free blocks:              1524760        <==還有多少個 block 可用
Free inodes:              2411225        <==還有多少個 inode 可用
First block:              0
Block size:               4096           <==每個 block 的大小啦!
Filesystem created:       Fri Sep  5 01:49:20 2008
Last mount time:          Mon Sep 22 12:09:30 2008
Last write time:          Mon Sep 22 12:09:30 2008
Last checked:             Fri Sep  5 01:49:20 2008
First inode:              11
Inode size:               128            <==每個 inode 的大小
Journal inode:            8              <==底下這三個與下一小節有關
Journal backup:           inode blocks
Journal size:             128M

Group 0: (Blocks 0-32767) <==第一個 data group 內容, 包含 block 的啟始/結束號碼
  Primary superblock at 0, Group descriptors at 1-1  <==超級區塊在 0 號 block
  Reserved GDT blocks at 2-626
  Block bitmap at 627 (+627), Inode bitmap at 628 (+628)
  Inode table at 629-1641 (+629)                     <==inode table 所在的 block
  0 free blocks, 32405 free inodes, 2 directories    <==所有 block 都用完了!
  Free blocks:
  Free inodes: 12-32416                              <==剩餘未使用的 inode 號碼
Group 1: (Blocks 32768-65535)
....(底下省略)....
# 由於資料量非常的龐大,因此將一些資訊省略輸出了!
# 前半部在秀出 supberblock 的內容,包括標頭名稱(Label)以及inode/block的相關資訊
# 後面則是每個 block group 的個別資訊了!您可以看到各區段資料所在的號碼!
# 也就是說,基本上所有的資料還是與 block 的號碼有關就是了!很重要!

目錄

        當我們在 Linux 下的 ext2 檔案系統建立一個目錄時, ext2 會分配一個 inode 與至少一塊 block 給該目錄。其中,inode 記錄該目錄的相關許可權與屬性,並可記錄分配到的那塊 block 號碼; 而 block 則是記錄在這個目錄下的檔名與該檔名佔用的 inode 號碼資料。也就是說目錄所佔用的 block 內容在記錄如下的資訊:


[[email protected] ~]# ls -li
total 92
654683 -rw------- 1 root root  1474 Sep  4 18:27 anaconda-ks.cfg
648322 -rw-r--r-- 1 root root 42304 Sep  4 18:26 install.log
648323 -rw-r--r-- 1 root root  5661 Sep  4 18:25 install.log.syslog

[[email protected] ~]# ll -d / /bin /boot /proc /lost+found /sbin
drwxr-xr-x 23 root root  4096 Sep 22 12:09 /           <==一個 4K block
drwxr-xr-x  2 root root  4096 Sep 24 00:07 /bin        <==一個 4K block
drwxr-xr-x  4 root root  1024 Sep  4 18:06 /boot       <==一個 1K block
drwx------  2 root root 16384 Sep  5 01:49 /lost+found <==四個 4K block
dr-xr-xr-x 96 root root     0 Sep 22 20:07 /proc       <==此目錄不佔硬碟空間
drwxr-xr-x  2 root root 12288 Sep  5 12:33 /sbin       <==三個 4K block

檔案:

        當我們在 Linux 下的 ext2 建立一個一般檔案時, ext2 會分配一個 inode 與相對於該檔案大小的 block 數量給該檔案。例如:假設我的一個 block 為 4 Kbytes ,而我要建立一個 100 KBytes 的檔案,那麼 linux 將分配一個 inode 與 25 個 block 來儲存該檔案! 但同時請注意,由於 inode 僅有 12 個直接指向,因此還要多一個 block 來作為區塊號碼的記錄。

目錄樹讀取:

        由於目錄樹是由根目錄開始讀起,因此係統透過掛載的資訊可以找到掛載點的 inode 號碼(通常一個 filesystem 的最頂層 inode 號碼會由 2 號開始喔!),此時就能夠得到根目錄的 inode 內容,並依據該 inode 讀取根目錄的 block 內的檔名資料,再一層一層的往下讀到正確的檔名。

[[email protected] ~]# ll -di / /etc /etc/passwd
      2 drwxr-xr-x  23 root root  4096 Sep 22 12:09 /
1912545 drwxr-xr-x 105 root root 12288 Oct 14 04:02 /etc
1914888 -rw-r--r--   1 root root  1945 Sep 29 02:21 /etc/passwd


/ 的 inode:
透過掛載點的資訊找到 /dev/hdc2 的 inode 號碼為 2 的根目錄 inode,且 inode 規範的許可權讓我們可以讀取該 block 的內容(有 r 與 x) ;

/ 的 block:
經過上個步驟取得 block 的號碼,並找到該內容有 etc/ 目錄的 inode 號碼 (1912545);

etc/ 的 inode:
讀取 1912545 號 inode 得知 vbird 具有 r 與 x 的許可權,因此可以讀取 etc/ 的 block 內容;

etc/ 的 block:
經過上個步驟取得 block 號碼,並找到該內容有 passwd 檔案的 inode 號碼 (1914888);

passwd 的 inode:
讀取 1914888 號 inode 得知 vbird 具有 r 的許可權,因此可以讀取 passwd 的 block 內容;

passwd 的 block:
最後將該 block 內容的資料讀出來。

EXT2/EXT3 檔案的存取與日誌式檔案系統的功能

        上一小節談到的僅是讀取而已,那麼如果是新建一個檔案或目錄時,我們的 Ext2 是如何處理的呢? 這個時候就得要 block bitmap 及 inode bitmap 的幫忙了!假設我們想要新增一個檔案,此時檔案系統的行為是:

    1.先確定使用者對於欲新增檔案的目錄是否具有 w 與 x 的許可權,若有的話才能新增;
    2.根據 inode bitmap 找到沒有使用的 inode 號碼,並將新檔案的許可權/屬性寫入;
    3.根據 block bitmap 找到沒有使用中的 block 號碼,並將實際的資料寫入 block 中,且升級 inode 的 block 指向資料;
    4.將剛剛寫入的 inode 與 block 資料同步升級 inode bitmap 與 block bitmap,並升級 superblock 的內容。
        一般來說,我們將 inode table 與 data block 稱為資料存放區域,至於其他例如 superblock、 block bitmap 與 inode bitmap 等區段就被稱為 metadata (中介資料) 囉,因為 superblock, inode bitmap 及 block bitmap 的資料是經常變動的,每次新增、移除、編輯時都可能會影響到這三個部分的資料,因此才被稱為中介資料的啦。

日誌式檔案系統 (Journaling filesystem)

        為了避免上述提到的檔案系統不一致的情況發生,因此我們的前輩們想到一個方式, 如果在我們的 filesystem 當中規劃出一個區塊,該區塊專門在記錄寫入或修訂檔案時的步驟, 那不就可以簡化一致性檢查的步驟了?也就是說:

    1.預備:當系統要寫入一個檔案時,會先在日誌記錄區塊中紀錄某個檔案準備要寫入的資訊;
    2.實際寫入:開始寫入檔案的許可權與資料;開始升級 metadata 的資料;
    3.結束:完成資料與 metadata 的升級後,在日誌記錄區塊當中完成該檔案的紀錄。
        在這樣的程式當中,萬一資料的紀錄過程當中發生了問題,那麼我們的系統只要去檢查日誌記錄區塊, 就可以知道哪個檔案發生了問題,針對該問題來做一致性的檢查即可,而不必針對整塊 filesystem 去檢查, 這樣就可以達到快速修復 filesystem 的能力了!這就是日誌式檔案最基礎的功能.

Linux 檔案系統的執行:

        為了解決這個效率的問題,因此我們的 Linux 使用的方式是透過一個稱為非同步處理 (asynchronously) 的方式。所謂的非同步處理是這樣的:

        當系統載入一個檔案到記憶體後,如果該檔案沒有被更動過,則在記憶體區段的檔案資料會被配置為乾淨(clean)的。 但如果記憶體中的檔案資料被更改過了(例如你用 nano 去編輯過這個檔案),此時該記憶體中的資料會被配置為髒的 (Dirty)。此時所有的動作都還在記憶體中執行,並沒有寫入到磁碟中! 系統會不定時的將記憶體中配置為『Dirty』的資料寫回磁碟,以保持磁碟與記憶體資料的一致性。 你也可以利用第五章談到的 sync命令來手動強迫寫入磁碟。

        我們知道記憶體的速度要比硬碟快的多,因此如果能夠將常用的檔案放置到記憶體當中,這不就會新增系統性能嗎? 沒錯!是有這樣的想法!因此我們 Linux 系統上面檔案系統與記憶體有非常大的關係:

    系統會將常用的檔案資料放置到主儲存器的緩衝區,以加速檔案系統的讀/寫;
    承上,因此 Linux 的實體記憶體最後都會被用光!這是正常的情況!可加速系統效能;
    你可以手動使用 sync 來強迫記憶體中配置為 Dirty 的檔案回寫到磁碟中;
    若正常關機時,關機命令會主動呼叫 sync 來將記憶體的資料回寫入磁碟內;
    但若不正常關機(如跳電、宕機或其他不明原因),由於資料尚未回寫到磁碟內, 因此重新啟動後可能會花很多時間在進行磁碟檢驗,甚至可能導致檔案系統的損毀(非磁碟損毀)。

其他 Linux 支援的檔案系統與 VFS

        雖然 Linux 的標準檔案系統是 ext2 ,且還有添加了日誌功能的 ext3 ,事實上,Linux 還有支援很多檔案系統格式的, 尤其是最近這幾年推出了好幾種速度很快的日誌式檔案系統,包括 SGI 的 XFS 檔案系統, 可以適用更小型檔案的 Reiserfs 檔案系統,以及 Windows 的 FAT 檔案系統等等, 都能夠被 Linux 所支援喔!常見的支援檔案系統有:

    傳統檔案系統:ext2 / minix / MS-DOS / FAT (用 vfat 模組) / iso9660 (光碟)等等;
    日誌式檔案系統: ext3 / ReiserFS / Windows' NTFS / IBM's JFS / SGI's XFS
    網路檔案系統: NFS / SMBFS
        瞭解了我們使用的檔案系統之後,再來則是要提到,那麼 Linux 的核心又是如何管理這些認識的檔案系統呢? 其實,整個 Linux 的系統都是透過一個名為 Virtual Filesystem Switch 的核心功能去讀取 filesystem 的。 也就是說,整個 Linux 認識的 filesystem 其實都是 VFS 在進行管理,我們使用者並不需要知道每個 partition 上頭的 filesystem 是什麼~ VFS 會主動的幫我們做好讀取的動作呢~

        假設你的 / 使用的是 /dev/hda1 ,用 ext3 ,而 /home 使用 /dev/hda2 ,用 reiserfs , 那麼你取用 /home/dmtsai/.bashrc 時,有特別指定要用的什麼檔案系統的模組來讀取嗎? 應該是沒有吧!這個就是 VFS 的功能啦!透過這個 VFS 的功能來管理所有的 filesystem, 省去我們需要自行配置讀取檔案系統的定義啊~方便很多!整個 VFS 可以約略用下圖來說明:

相關推薦

ext2檔案系統結構分析

轉載自:https://blog.csdn.net/yuzhihui_no1/article/details/50256713 ext2檔案系統 總體儲存佈局 我們知道,一個磁碟可以劃分成多個分割槽,每個分割槽必須先用格式化工具(例如某種mkfs命令)格式化成某種格式的檔案系統,然後才能

淺談ext2檔案系統

我們知道檔案系統是組織和管理磁碟上的檔案,並向用戶提供操作介面(open、read、write等),Unix中的每個物件幾乎都可以當做檔案來看待。核心在沒有結構的硬體上構造結構化的檔案系統,而檔案抽象在整個系統中廣泛使用。Linux支援多種檔案系統,如ext2,ext3,vfat等,ex

Linux磁碟管理——Ext2檔案系統

前言 通常而言,對於一塊新磁碟我們不是直接使用,而是先分割槽,分割槽完畢後格式化,格式化後OS才能使用這個檔案系統。分割槽可能會涉及到MBR和GPT問題。至於格式化和檔案系統又有什麼關係? 這裡的格式化指的是高階格式化,由於每種OS所設定的檔案屬性/許可權並不相同, 為了能夠操作這些檔案,就需要對parti

Linux磁碟管理——日誌檔案系統與資料一致性 Linux磁碟管理——Ext2檔案系統

參考:Linux磁碟管理——Ext2檔案系統 資料不一致 上圖是Ext2結構圖,其他FS結構類似。 一般來說,我們將 inode table 與 data block 稱為資料區;至於其他例如 superblock、 block bitmap 與 inode bitmap 等稱為 metadata

EXT2檔案系統實現原理

目錄 二    塊快取    6 EXT2檔案系統結構概覽 1.1 EXT2檔案系統結構框圖 每一個檔案或者目錄在磁碟上都有一個inode用於管理檔案本身屬性資訊,還有資料塊用於存放檔案內容。其inode'和資料塊關係如下圖:   如果檔案比較小,其資料

EXT2檔案系統簡介

一、EXT2檔案系統檔案組織形式 EXT2檔案系統是Linux系統中廣泛使用的檔案系統,該檔案系統是一種索引式檔案系統,它將分割槽分為inode和block,它會給每個檔案分配一個inode,inod

(十三)linux檔案系統詳解(基於ext2檔案系統

  我們知道,一個磁碟可以劃分成多個分割槽,每個分割槽必須先用格式化工具(例如某種mkfs命令)格式化成某種格式的檔案系統,然後才能儲存檔案,格式化的過程會在磁碟上寫一些管理儲存佈局的資訊。下圖是一個磁碟分割槽格式化成ext2檔案系統後的儲存佈局:

(轉載)Ext2 檔案系統的硬碟佈局

轉自http://www.ibm.com/developerworks/cn/linux/filesystem/ext2/#icomments 前言 本文的資料來源是 Linux 核心中 ext3 檔案系統的原始碼。為了便於讀者查閱原始碼,本文中一些關鍵的技術詞彙都使用了核

ext2檔案系統原始碼之dir.c

今天我們來看ext2原始碼的dir.c檔案,這個檔案是做和目錄有關的操作的,也是很重要的一個檔案,大家認真看哦,有什麼和我不一致的大家一起探討~~ 在講這個之前我覺得還是先說下ext2檔案系統的目錄方面的基礎比較好,這樣會更容易看明白。 ext2檔案系統分為inode和bl

EXT2檔案系統

檔案系統特性         舉例來說,windows 98 以前的微軟作業系統主要利用的檔案系統是 FAT (或 FAT16),windows 2000 以後的版本有所謂的 NTFS 檔案系統,至於 Linux 的正統檔案系統則為 Ext2 (Linux second e

linux下的ext2檔案系統

當我們剛拿到一塊磁碟的時候,我們需要將磁碟格式化成某種格式的檔案系統,這樣才能讓磁碟儲存資料。在windows下,使用的是一種叫做NTFS的檔案系統,而在Linux下,使用的是ext系列的檔案系統,現在最新的版本是ext4,不過原理都差不多,這裡就ext2檔案系統做個簡要的

ext2檔案系統下rm-rf * 誤刪資料恢復

   如果你不小心執行了rm -rf * 或者 rm -rf XXX,在ext2系統並不是不可以恢復的。 一. 首先需要明確幾個基本概念:磁碟裝置檔案(簡稱硬碟)、分割槽、檔案系統、目錄&am

EXT2與EXT3檔案系統兩者的差別

其實這兩種檔案系統的格式是完全相同的,只是 ext3檔案系統會在硬碟分割槽的最後面留出一塊磁碟空間來存放日誌(Journal)記錄。 在 ext2格式的檔案系統上,當要向硬碟中寫入資料時,系統並不是立即將這些資料寫到硬碟上,而是先將這些資料寫到資料緩衝區中(記憶體),當資料緩衝區寫滿時,這些資料才會被寫到硬

嵌入式檔案系統ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等介紹

轉載來自:http://blog.chinaunix.net/uid-20769502-id-135683.html Linux支援多種檔案系統,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,為了對各類檔案系統 進行統一管理,L

ext2,3,4檔案系統的硬碟錯誤使用mount

參考連結  (man)mount的中文版:http://blog.csdn.net/evilcode/article/details/7007560   https://superuser.com/questions/932676/cannot-set-uid-with-m

戲說檔案系統ext2【上】

     我們今天要討論的就是這些元資料。這裡有個概念首先需要明確一下:塊裝置。所謂塊裝置就是以塊為基本讀寫單位的裝置,支援緩衝和隨機訪問。每個檔案系統提供的mk2fs.xx工具都支援在構建檔案系統時由使用者指定塊大小,當然使用者不指定時會有一個預設值。在博文“硬碟的儲存原理和內部架構”裡我們提到過,硬碟的每

使用Busybox'建立根目錄檔案系統以及製作ext2格式的映象

1.第一步去busybox官網(點選開啟連結)下載最新版本的busybox,我使用的是1.24版本的。 2.修改busybox原始碼的Makefile 檔案: ARCH = arm (架構) CROSS_COMPILE = /usr/local/arm/

磁碟儲存和檔案系統

裝置檔案 磁碟裝置的裝置檔案命名:/dev/DEV_FILE SCSI, SATA, SAS, IDE,USB: /dev/sd 虛擬磁碟:/dev/vd 不同磁碟標識:a-z,aa,ab…/dev/sda, /dev/sdb, ... 同一裝置上的不同分割槽:1,2, .../dev

Atitit 分散式檔案系統 hdfs nfs fastfs 目錄 1. 分散式檔案系統 1 2. 什麼是FastDFS 1 2.1. FastDFS特性: 1 2.1.1. fastdfs是否可在

Atitit 分散式檔案系統 hdfs nfs fastfs   目錄 1. 分散式檔案系統 1 2. 什麼是FastDFS 1 2.1. FastDFS特性: 1 2.1.1. fastdfs是否可在windows系統下安裝?可以的話,哪位可以..._百度知道 2

linux基礎3-磁碟和檔案系統相關 LINUX支援哪些檔案系統 linux下磁碟分割槽詳解 圖文(fdisk;mkfs)

一 dumpe2fs :    在Linux使用過程中,我們如果要了解檔案系統的配置情況,可以使用dumpe2fs檢視ext2/ext3/ext4格式的檔案系統資訊。 命令格式: dumpe2fs [選項] 裝置 常用選項: -h  僅列出超級塊中的資訊