歡迎您光臨本站 註冊首頁

Linux筆記16.磁碟管理

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

16.磁碟管理

物理組成

磁柱也是磁碟分割( partition ) 時的最小單位

扇區就是硬碟盤上面的最小儲存物理量

這就是磁碟分割的重點:記錄每一個分割區的起始與結束磁柱!!

MBR的限制:

僅提供最多四個

partition 的記憶,主分區與擴展分區的最多只能有四個的原因

文件系統
每一個 partition 就是一個 Filesystem
邏輯區塊是在 partition 進行 filesystem 的格式化時,所指定的最小儲存單位
一個 Block 最多僅能容納一個檔案,檔案大小可能造成的硬碟空間浪費

ext3文件系統的優化與高級特性
磁碟檢查
磁碟配額
自動掛載分區

-i 2048 inode 2KB
-b 8192設置block size的大小為8kB
-f 1024設置fragments的大小為1KB
mkfs.ext3 –N 2939495 /dev/sdb2


N 2939495更改inode count.
注意:
-i 最小值是1024,這個值的大小決定inode count的大小
i=2048 Inode count:1025024
i=1024 Inode count:2048256

保留塊:為管理員保留的磁碟管理空間,默認為總數據塊的5%

mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sda2

//設置保留塊的數量佔總數量的百分之2

Tune2fs --調整ext2/etx3文件系統特性的工具.

-l <device> 查看文件系統信息
-c <count> 設置強制自檢的掛載次數
-i <n day> 設置強制自檢的間隔時間
-m <percentage> 保留塊的百分比
-j

ext2 文件系統轉換成etx3格式

文件系統檢查工具

fsck : 檢查文件系統數據完整性的工具
用法一:fsck -t ext2 /dev/hda1
用法二:fsck.ext2 /dev/hda1
e2fsck 檢查ext2/ext3文件系統的工具


文件系統管理(inode

partition 被格式化為 ext2 ext3 的文件系統時,他一定會有 inode table block area 這兩個區域.


* 文件系統管理(inode)
– 目錄:


– 文件:

* block 大小越小,而 inode 數量越多,則可利用的空間越多,但是大文件寫入的效率較差;這種情況適合檔案數量多,但是文件容量小的系統.

* Block 大小越大,而 inode 數量越少時,大文件寫入的效率較佳,但是可能浪費的硬碟空間較多;這種狀況則比較適合文件容量較大的系統

Linux

文件系統的運行:
通常採取非同步處理的方式
當系統讀取了某一個檔案,則該檔案所在的 區塊數據會被載入到內存當中,所以該磁碟區塊就會被放置在主存儲器的緩衝快取區中,若這些區塊的數據被改變時,剛開始數據僅有主存儲器的區塊數據會被改變,在緩衝區當中的區塊數據會被標記為” Dirty “,這個時候磁碟實體區塊尚未被修正!所以亦即” Dirty “ 表示,這些” Dirty “區塊的數據必需回寫到磁碟當中,以維持磁碟實體區塊上的數據與主存儲器中的區塊數據的一致性.

查看硬碟或目錄的容量

df 查看已掛載磁碟的總容量、使用容量

inode
du 查看檔案使用掉的容量有多少?
語法: df -[ikm]
參數說明:

-i: 使用 i-nodes 顯示結果

-k: 使用 KBytes 顯示結果

-m: 使用 MBytes 顯示結果

說明:這是用來顯示目前磁碟空間的指令!
語法: du [-abckms] [目錄名稱]

參數說明:
目錄名稱 可以省略,如果省略的話,表示要統計目前所在目錄的檔案容量
-a :全部的檔案與目錄都列出來!默認值是指列出目錄的值!
-b :列出的值以 bytes 輸出
-c :

加總 total
-k : 列出的值以KB輸出
-m :列出的值以 MB 輸出
-s :只列出加總的值!

鏈接文件:
Hard Link
使用 hard link

設定連結文件時,磁碟的空間與inode 的數目都不會改變
.hard link 只是在某個目錄下的 block 多寫入一個關連數據,所以不會用掉inode 與磁碟空間
* 不能跨 Filesystem
* 不能 link 目錄.
Symbolic Link
就是在建立一個獨立的檔案,而這個檔案會讓數據的讀取指向他 link 的那個檔案內容!由於只是利用檔案來做為指向的動作,所以,當來源檔被刪除之後,symbolic link 的檔案會開不了.

Symbolic Link 的使用方面較廣

* ln
語法:
ln [-s] [ 來源檔 ] [ 目的檔]
參數說明:
-s :提供 symbolic line 的連結!


如果不加任何參數的話,那麼就屬於 hard link
ln -s /tmp/test test

分區與格式化硬碟:
fdisk 硬碟切割 partition 的工具
mke2fs 就是 Linux 底下重要的 format 格式化的工具
e2label 修改硬碟的

label (表頭名稱)的工具!
mknod 新增硬體對應文件的工具!

* fdisk
語法:
[root @test /root ]# fdisk [-l] [裝置名稱]
參數說明:
-l :直接列出該硬碟裝置的 partition table


範例:
[root @test root]# fdisk /dev/hdb<==分割我的hdb 磁碟,記得後面不接數字
硬碟信息:通常我們需要知道這顆硬碟的信息時,直接按P
刪除扇區:如果我要刪除一個以存在的扇區時,就需要:fdisk /dev/hdb先進入 fdisk 畫面;
p:先看一下扇區的信息,假設要掉 ;

d:這個時候會要你選擇一個

partition
w: 儲存到磁碟數據表中,並離開 fdisk

新增扇區:

– n新增一個磁區
– p : 選擇為primary

1-4 primary 只允許四個
w :同樣的儲存離開!

* mke2fs
語法:
[root @thiz root ]# mke2fs [-b block-size] [-i inode-size]
[root @thiz root ]# mke2fs [-c]
[root @thiz root ]# mke2fs [-L]
[root @thiz root ]# mke2fs [-j]

參數說明:
-b :在設定每個數據區塊佔用的大小,目前支持的大小有 1024,2048, 4096 三種!
-i :設定 inode 值!
-c :檢查錯誤磁碟,會比較慢!
-L :規劃設定這個扇區的 label (表頭名稱)
-j :建立 ext3 這個 journaling 的檔案格式

* e2label
語法:
[root @test /root ]# e2label [/dev/hd...] [label_name]

各分區的掛載:
– mount
[root @thiz root ]# mount [-ahlV]
[root @thiz root ]# mount -t type /dev/hdxx /mountpoint
[root @thiz root ]# mount -o [options]
[root @thiz root ]# umount /mountpoint


參數說明:
-a :依照 /etc/fstab 的內容將所有相關的磁碟都掛上來!
-h :只列出 mount 相關的參數,並不掛載任何裝置
-l :列出目前已經掛載的裝置、檔案系統名稱與掛載點!
-V :列出 mount 的版本信息
type :將後面 /dev/hdxx 這個裝置以

type 的檔案格式掛載到 /mountpoint 這個點,

常見的 type 有底下幾個:
vfat, msdos :這個是支持 Windows 系統的檔案格式,尤其是 vfat 常用!
ext, ext2 :這個就是 Linux 的主要檔案格式!
iso9660 :光碟機的檔案格式


nfs, ntfs, ufs :Windows 2000 使用 NTFS 格式!

-o :
w   :讓 mount 的扇區為可擦寫
suid   :允許該扇區可以設定檔案為 SUID 的狀態!
exec   :允許該扇區可以執行 binary 的檔案!
auto

  :允許該扇區可以使用 mount -a 的參數設定!
async :允許扇區可以進行非同步記錄(內存與硬碟不同步!最常用!)
defaults:同時具有 rw, suid, dev, exec, auto, nouser, async 這些功能的設定值!
nosuid :不許該扇區具有 SUID 的檔案屬性!
ro   :設定為只讀屬性!
remount :讓系統本來掛載的扇區重新被掛載!

* umount


語法:
[root @thiz root]# umount [-f] [device|mount_point]
參數說明:
-f :強制將該檔案系統退出,最常使用在無法退出的 NFS 檔案系統中了!
開機掛起:vim /etc/fstab
1、分區或標頭(卷標):就是分區
2、掛載的目錄點:就是 mount 的掛載點!


3、該扇區的檔案格式:目前 Linux 大都使用ext2, ext3, reiserfs 等等的, 
4、檔案格式參數區:
5、是否可以被 dump 指令備份
6、檢驗扇區:這個數字在用來以 fsck 檢驗扇區用的!需要設定為1 不需要設定為0 0

虛擬內存 Swap
– 設定一個 swap partition
– 建立一個虛擬內存的文件
建立虛擬內存的分區 :
第一種正規的方法是:直接再加一塊硬碟,並且將其中某個扇區規劃為swap 的文件系統
1、使用fdisk 建立一個swap分區


註:t, 82swap 分區格式的代號
2、以mkswap 可格式化新建的swap分區
#mkswap /dev/hdb3
3、將swap啟動 swapon 設備名swapon /dev/hdb3
4、關掉swap

swapoff

建立虛擬內存檔案 :
1 dd 指令來建立 swapfile
2、以 mkswap 來將 swapfile 格式化為 swap 的檔案格式;
3、以 swapon 來啟動該檔案,使成為 swap
4、以 swapoff 來關閉該檔案


dd if=/dev/zero of=/tmp/swap bs=4k count=16382
dd這個指令是用來轉換檔案並且copy用的
if指的是要被轉換的輸入檔案格式 /dev/zero可以由man zero來查看內容
of指的是輸出的檔案,我們將之輸出到/tmp/swap這個檔案
bs指的是一個扇區佔用幾個kb;
count指的是要使用多少個bs,所以的容量為bs*count = 4k


2. mkswap 來將swapfile格式化為swap的檔案格式
3.以swapon來啟動該檔案,使之成為swap, 執行完后可以用free查看.
dev/zero 文件代表一個永遠輸出0的設備文件,使用它作輸入可以得到全為空的文件.
/dev/null,外號叫無底洞,你可以向它輸出任何數據

DMA的英文拼寫是“Direct Memory Access”,就是直接內存訪問,是一種不經過CPU而直接從內存存取數據的數據交換模式.PIO模式下硬碟和內存之間的數據傳輸是由CPU來控制的;而在DMA模式下,CPU只須向DMA控制器下達指令,讓DMA控制器來處理數的傳送,數據傳送完畢再把信息反饋給CPU,這樣就很大程度上減輕了CPU資源佔有率.

磁碟效能:
hdparm


語法:
[root @test /root ]# hdparm [-cdmXTt] [裝置名稱]
參數說明:

[root @test /root]# hdparm -Tt /dev/hda <== 測試 hda 這顆硬碟的 cache 與實際效能
[root @test /root]# hdparm -d0 /dev/hda<== DMA 模式!
[root @test /root]# hdparm -d1 -c3 -X66

/dev/hda<==開啟 DMA 模式在 DMA 66 ,並且


[火星人 ] Linux筆記16.磁碟管理已經有618次圍觀

http://coctec.com/docs/linux/show-post-49963.html