![]() |
VOOZH | about |
**使用du時可能會出現次目錄累加,需要加-S參數~
輸出的結果信息為:
Filesystem:代表該文件系統是在哪個 partition ,所以列出裝置名稱; 1k-blocks:說明底下的數字單位是 1KB,可利用 -h 或 -m 來改變容量; Used:顧名思義,就是使用掉的硬碟空間; Available:也就是剩下的磁碟空間大小; Use%:磁碟的使用率。如果使用率高達 90% 以上時, 最好需要注意一下了,免得容量不足造成系統問題;
Mounted on:就是磁碟掛載的目錄所在(掛載點)。 實體連結與符號連結: ln
透過文件系統的 inode 連結來產生新檔名,而不是產生新文件。
簡單的說,hard link 只是在某個目錄下新增一筆檔名連結到某 inode 號碼的關連記錄而已。
因此,對其中任何一個文件的操作,保存之後另一個文件的內容也跟著改動(因為事實上兩者是連結到同一哥inode上)。
hard link 是有限制的:
不能跨 Filesystem; 不能 link 目錄。
例子: ln /etc/crontab . :在當前目錄下創建crontab的實體連結。
類似 Windows 的快捷方式功能的文件,可以讓你快速的連結到目標文件(或目錄)
Symbolic link 就是創建一個獨立的文件,會占用inode和block,block中存放的是所指向的文件的檔名。由於只是利用文件來做為指向的動作, 所以,當來源檔被刪除之後,symbolic link 的文件會失效。
例子: ln -s /etc/crontab crontab2
當我們創建一個新目錄名稱為 /tmp/testing 時,基本上會有三個東西,那就是:
/tmp/testing /tmp/testing/. /tmp/testing/..
而其中 /tmp/testing 與 /tmp/testing/. 其實是一樣的,都代表該目錄~而 /tmp/testing/.. 則代表 /tmp 這個目錄,所以說,當我們創建一個新的目錄時, 新的目錄的 link 數為 2 ,而上一級目錄的 link 數則會添加 1 。
如果我們想要在系統裡面新增一顆硬碟,應該做以下動作:
對磁碟進行分割,以創建可用的 partition ; 對該 partition 進行格式化( format ),以創建系統可用的 filesystem; 若想要仔細一點,則可對剛剛創建好的 filesystem 進行檢驗; 在 Linux 系統上,需要創建掛載點 ( 亦即是目錄 ),並將他掛載上來; 磁碟分區: fdisk
可先用df查看根目錄所在的磁碟。
之後fdisk /dev/sda (磁碟名,注意不用加數字),輸入m可以查看菜單。
做完分割之後,可以reboot重啟生效,或者用 partprobe 這個命令,它僅是告知核心必須要讀取新的分割表而已,因此並不會在屏幕上出現任何信息。
操作環境的說明:
以 root 的身份進行硬碟的 partition 時,在單人維護模式底下比較安全一些, 此外,在進行 fdisk 的時候,如果該硬碟某個 partition 還在使用當中, 那麼很有可能系統核心會無法重載硬碟的 partition table ,解決的方法就是將該使用中的 partition 給他卸除,然後再重新進入 fdisk 一遍,重新寫入 partition table ,那麼就可以成功。
磁碟格式化:mkfs(make filesystem)mkfs [tab][tab]可看mkfs支持的文件格式。(事實上,mkfs是一個綜合命令)
使用mke2fs則可指定格式化的一些細部配置。
磁碟檢驗: fsck, badblocksfsck(filesystem check):用來檢查與修正文件系統錯誤的命令。注意:通常只有身為 root 且文件系統有問題的時候才使用這個命令,否則在正常狀況下使用此一命令, 可能會造成對系統的危害!通常使用這個命令的場合都是在系統出現極大的問題,導致你在 Linux 啟動的時候得進入單人單機模式下進行維護的行為時,才必須使用此一命令!運行 fsck 時, 被檢查的 partition
務必不可掛載到系統上,即需要在卸除的狀態!
(實際上,我們運行的 fsck 命令,其實是呼叫 e2fsck 這個軟體)
badblocks:用來檢查硬碟或軟盤扇區有沒有壞軌的命令。
磁碟掛載與卸除注意事項:
單一文件系統不應該被重複掛載在不同的掛載點(目錄)中; 單一目錄不應該重複掛載多個文件系統; 要作為掛載點的目錄,理論上應該都是空目錄才是。
利用『mount 裝置文件名 掛載點』進行掛載。
使用 Label name 進行掛載的方法: 使用 dumpe2fs查詢裝置標頭,用mount掛載時用標頭代替文件名。好處:系統不必知道該文件系統所在的接口與磁碟文件名;壞處:不能隨意修改標頭。
umount:將裝置文件卸除。
磁碟參數修訂:mknod,e2label,tune2fs,hdparm啟動掛載 /etc/fstab 及 /etc/mtab系統掛載的一些限制:
根目錄 / 是必須掛載的﹐而且一定要先於其它 mount point 被掛載進來。 其它 mount point 必須為已創建的目錄﹐可任意指定﹐但一定要遵守必須的系統目錄架構原則 所有 mount point 在同一時間之內﹐只能掛載一次。 所有 partition 在同一時間之內﹐只能掛載一次。 如若進行卸除﹐您必須先將工作目錄移到 mount point(及其子目錄)
之外。
/etc/fstab (filesystem table) 就是將我們利用 mount 命令進行掛載時, 將所有的選項與參數寫入到這個文件中。除此之外, /etc/fstab 還加入了 dump 這個備份用命令的支持! 與啟動時是否進行文件系統檢驗 fsck 等命令有關。
用cat查閱下/etc/fstab:
第一欄:磁碟裝置文件名或該裝置的 Label;
第二欄:掛載點 (mount point);
第三欄:磁碟分區槽的文件系統;
第四欄:文件系統參數:
| 參數 | 內容意義 |
|---|---|
| async/sync(異步/同步) | 配置磁碟是否以異步方式運行!默認為 async(效能較佳) |
| auto/noauto(自動/非自動) | 當下達 mount -a 時,此文件系統是否會被主動測試掛載。默認為 auto。 |
| rw/ro(可擦寫/只讀) | 讓該分割槽以可擦寫或者是只讀的型態掛載上來,如果你想要分享的數據是不給用戶隨意變更的, 這裡也能夠配置為只讀。則不論在此文件系統的文件是否配置 w 權限,都無法寫入! |
| exec/noexec(可運行/不可運行) | 限制在此文件系統內是否可以進行『運行』的工作?如果是純粹用來儲存數據的, 那麼可以配置為 noexec 會比較安全,相對的,會比較麻煩! |
| user/nouser(允許/不允許使用者掛載) | 是否允許用戶使用 mount 命令來掛載呢?一般而言,我們當然不希望一般身份的 user 能使用 mount,因為太不安全了,因此這裡應該要配置為 nouser! |
| suid/nosuid(具有/不具有 suid 權限) | 該文件系統是否允許 SUID 的存在?如果不是運行文件放置目錄,也可以配置為 nosuid 來取消這個功能! |
| usrquota | 注意名稱是『 usrquota 』不要拼錯了!這個是在啟動 filesystem 支持磁碟配額模式。 |
| grpquota | 注意名稱是『grpquota』,啟動 filesystem 對群組磁碟配額模式的支持。 |
| defaults | 同時具有 rw, suid, dev, exec, auto, nouser, async 等參數。 基本上,默認情況使用 defaults 配置即可! |
第五欄:能否被 dump 備份命令作用: 0 代表不要做 dump 備份, 1 代表要每天進行 dump 的動作。 2 也代表其他不定日期的 dump 備份動作, 通常這個數值不是 0 就是 1 。
第六欄:是否以 fsck 檢驗扇區:0 是不要檢驗, 1 表示最早檢驗(一般只有根目錄會配置為 1), 2 也是要檢驗,不過 1 會比較早被檢驗! 一般來說,根目錄配置為 1 ,其他的要檢驗的 filesystem 都配置為 2 就好了。
基本上 Linux 的正統文件系統為 Ext2 ,該文件系統內的信息主要有:
superblock:記錄此 filesystem 的整體信息,包括inode/block的總量、使用量、剩餘量, 以及文件系統的格式與相關信息等;
inode:記錄文件的屬性,一個文件占用一個inode,同時記錄此文件的數據所在的 block 號碼;
block:實際記錄文件的內容,若文件太大時,會占用多個 block 。
Ext2 文件系統的數據存取為索引式文件系統(indexed allocation)
需要碎片整理的原因就是文件寫入的 block 太過於離散了,此時文件讀取的效能將會變的很差所致。 這個時候可以透過碎片整理將同一個文件所屬的 blocks 匯整在一起。
Ext2文件系統主要有:boot sector, superblock, inode bitmap, block bitmap, inode table, data block 等六大部分。
data block 是用來放置文件內容數據地方,在 Ext2 文件系統中所支持的 block 大小有 1K, 2K 及 4K 三種而已
inode 記錄文件的屬性/權限等數據,其他重要項目為: 每個 inode 大小均固定為 128 bytes; 每個文件都僅會占用一個 inode 而已; 因此文件系統能夠創建的文件數量與 inode 的數量有關;
文件的 block 在記錄文件的實際數據,目錄的 block 則在記錄該目錄底下文件名與其 inode 號碼的對照表;
日誌式文件系統 (journal) 會多出一塊記錄區,隨時記載文件系統的主要活動,可加快系統復原時間;
Linux 文件系統為添加效能,會讓主存儲器作為大量的磁碟高速緩存;
實體連結只是多了一個文件名對該 inode 號碼的連結而已;
符號連結就類似Windows的快捷方式功能。
磁碟的使用必需要經過:分割、格式化與掛載,分別慣用的命令為:fdisk, mkfs, mount三個命令
啟動自動掛載可參考/etc/fstab之配置,配置完畢務必使用 mount -a 測試語法正確否。