File system
linux 檔案系統概念
分割區(partition)
- 把檔案系統的實體裝置做邏輯分割
- 資料存放在切割成數個分割區的實體裝置上
- 一個裝置可以有一個道術個不等的邏輯分割區
- 一個分割區是一個實體裝置(flash,disk)中,一塊邏輯切割區域,區域內的資料照著分割區的類型,按照一定的組織方法擺放。
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
在linux上我們可以利用fdisk
來查看分割區資訊
ext2
fdisk
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
mount
e2fsck
檢查ext2/ext3/ext4檔案系統的完整性
-y: fix block
ext3
和ext2差別於多了日誌(journaling),和資料庫系統的交易(transaction)作用相同。
ext2和ext3轉換
完成後會發現目錄下多了一支.journal檔案,下一次重新啟動系統時,會自動執行e2fsck,到時.journal就會被系統隱藏,的資料會被放進一個因特殊用途而保留下來的inode.
我們也可以指定將日誌檔案放於其他檔案系統
ext4
移除了檔案系統16TB的限制,最大可到1 exbibyte,單一檔案最大可到1024 GB
ReiserFs
和ext3一樣有日誌系統,有提供API給程式設計師。
JFFS2
主要用於Flash的檔案系統
建構JFFS2 image
cramfs
目的是將檔案系統塞進ROM,所以cramfs是唯讀檔案系統
NFS
掛載遠端nfs
將HSTNAME機器上的/home/xxx/xxx
掛載到本地端的/workspace
kernel也要有組態支援
加入核心命令列選項
ip=的參數定義放在Document/filesystem/nfsroot.txt
虛擬檔案系統(pseudo file systems)
/proc file system
- 讓linux和process交換訊息的介面
- 利用
mount
(不帶任何參數)可以列出所有已經掛載的檔案系統
- 所有在核心中執行的使用者行程,都有一個/proc中的項目代號(PID)
- /proc本身也是被掛載的檔案系統,類型是proc,因此系統中最上層目錄必須要有一個掛載點/proc讓proc掛載
- 掛載proc:
- mount -t proc /proc /proc
- mount -t proc none /proc
- 需要在核心模組中啟用
- Pseudo File Systems->File Systems
我們可以從proc中得到一些有趣的資訊,像是maps
可以得到虛擬記憶體區段和區段的屬性,stack
可以得知堆疊的區段,status
可以知道process的狀態。
sysfs
和proc一樣sysfs並不是實體裝置,sysfs將特定實體裝置,建立模型並表示出來,並提供機制將裝置與裝置驅動程式聯繫。
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
sysfs存放的大部分資訊是提供給機器而分人類閱讀的格式,但是我們可以透過systool
來幫助我們瀏覽目錄結構。
建構簡單的檔案系統
這裡我們會使用loopback
裝置,將普通檔案當作一個區快來使用。
- 從一個簡單的檔案開始
- 格式化檔案系統
- 裝置掛載
完後你就可以對這個裝置上下其手了
參考資料
更多檔案系統的比較資料的資料可以參考這裡