linux 下的邏輯卷(LVM)
Linux 系統(tǒng)中的每一個(gè)分區(qū)都是一個(gè)文件系統(tǒng)。
文件系統(tǒng)就是指對存在物理空間上的文件的一種管理軟件(個(gè)人認(rèn)為)
Linux 2.4 內(nèi)核以后,開始支持大量的文件系統(tǒng);
日志文件系統(tǒng); ext3 ReiserFS XFSJFS
Linux2.4內(nèi)核以后支持的文件系統(tǒng)有; JFS , ReiserFs, ext, ext2, ext3, , ISO9660, XFS, Minx, MSDOS, UMSDOS, VFAT, NTFS, HPFS, NFS, SMB, SysV, PROC 等等
Ext2/ext3 采用block+ innode 方式來存放文件
Ext2/ext3 有一個(gè)空間被稱為超級塊
(superblock) 存放文件系統(tǒng)的原數(shù)據(jù)
包括;卷標(biāo)名, block數(shù), inode 數(shù) 等等
Inode是存放文件元數(shù)據(jù),包括文件權(quán)限,屬性,更改時(shí)間等數(shù)據(jù)
Inode 就是一個(gè)索引節(jié)點(diǎn), 這個(gè)inode紀(jì)錄文件的屬性,位置等信息。
每個(gè)inode都有一個(gè)號碼,稱為索引節(jié)點(diǎn)號(inode號)
Linux 文件系統(tǒng)將索引節(jié)點(diǎn)號和文件名同時(shí)保存在目錄中。所以目錄只是將文件的名稱和他的索引點(diǎn)號結(jié)合在一起的一張表,目中的每個(gè)文件名和索引點(diǎn)號稱為一個(gè)連接。
一個(gè)文件只有一個(gè)對應(yīng)的inode號,但是一個(gè)inode可以有多個(gè)文件名與其對應(yīng)。因此,在磁盤上的同一個(gè)文件可以通過不同的路徑去訪問他。
書上說ext2不是日志文件系統(tǒng)
從ext2 變成ext3不需要格式化,用tune2fs 就可以
從ext3 變成ext2 可以不用作任何的改動(dòng)
Ext3 特性;
1. 高效性; 非法關(guān)機(jī)后恢復(fù)ext3文件系統(tǒng)只要10秒左右
2. 數(shù)據(jù)完整性;避免非法關(guān)機(jī)對數(shù)據(jù)完整性的破壞
3. 文件系統(tǒng)的速度; 對磁盤驅(qū)動(dòng)器讀寫進(jìn)行了優(yōu)化
4. 數(shù)據(jù)的轉(zhuǎn)化; ext2-ext3, ext3-ext2
5. 多種日志模式;對所有數(shù)據(jù)進(jìn)行日志紀(jì)錄模式,只對metadata進(jìn)行日志紀(jì)錄,而不對數(shù)據(jù)進(jìn)行日志紀(jì)錄
Data=journal 所有數(shù)據(jù)日志紀(jì)錄模式
Data=writeback 對metadata日志紀(jì)錄模式
提示metadata是定義文件系統(tǒng)中的數(shù)據(jù),即數(shù)據(jù)中的數(shù)據(jù)
Root可以根據(jù)實(shí)際的工作情況來定義,在系統(tǒng)的工作速度和數(shù)據(jù)完整性來選擇
將一個(gè)新的分區(qū)格式化成ext3文件系統(tǒng)
# mke2fs -j /dev/hda8
將ext2 轉(zhuǎn)換成ext3文件系統(tǒng)
# tune2fs -j /dev/hda9
提示; 將ext2文件系統(tǒng)轉(zhuǎn)換成ext3時(shí),不需要將分區(qū)卸載。直接轉(zhuǎn)換就可以。不要忘記把/etc/fstab 里的ext2改成ext3
用e2fsck 修復(fù)ext3文件系統(tǒng)
1. # umount /dev/hda8 先卸載該分區(qū).
2.#e2fsck -fy /dev/hda8 修復(fù)該分區(qū)
Reiserfs文件系統(tǒng)
1997 年 hans reiser 把reserfs文件系統(tǒng)在網(wǎng)上公布
Reserfs 比ext2fs要快的的多
當(dāng)前reserfs 只能在intel結(jié)構(gòu)體系上使用
Reiserfs 文件系統(tǒng)一直被用于在高端的unix系統(tǒng)上
Reiserfs 特點(diǎn);
1. 先進(jìn)的日志機(jī)制
Reiserfs 日志機(jī)制在每個(gè)實(shí)際數(shù)據(jù)要修改之前把相應(yīng)的日志寫入到磁盤空間,這樣提高數(shù)據(jù)的安全性
2. 高效的磁盤利用率
Reiserfs對一些小的文件不分配inode。而是將這些小文件打包,存放在同一個(gè)磁盤塊中。而其他的文件系統(tǒng)是每個(gè)文件都要占用一個(gè)block塊。這意味著如果有1000個(gè)小文件,那么就要占用1000個(gè)block。這樣非常浪費(fèi)磁盤空間。
3. 獨(dú)特的搜索方式
Reserfs基于平衡樹(balanced tree)搜索,這種方式的速度要比ext2快的多。平衡樹是一種高效的算法。
4. 支持海量硬盤
Reserfs可以管理上百G的數(shù)據(jù)。Rerserfs最大支持文件系統(tǒng)的尺寸是16TB。這非常適合企業(yè)級應(yīng)用。
5. 優(yōu)異的性能
Reserfs 文件系統(tǒng)啟動(dòng)X -windows的速度比ext2快2倍
文件的附加屬性
# chattr +〔AadijS〕 filename 設(shè)置文件的附加屬性
# lsattr filename 查看文件的附加屬性
A; 當(dāng)文件被改變時(shí),文件的更改時(shí)間不變
a; 只能向該文件追加內(nèi)容,不可以更改原內(nèi)容
i; 文件不可以刪除, 重命名, 改變內(nèi)容
j; 在ext3文件系統(tǒng)中,次文件一定被寫入日志
S; 當(dāng)文件被改動(dòng),此改動(dòng)會(huì)同步寫入文件系統(tǒng)
將原ext2轉(zhuǎn)換升級成ext3文件系統(tǒng)
# tune2fs -j /dev/hda1 這是直接轉(zhuǎn)換
# mke2fs -j /dev/hda2 這是格式化轉(zhuǎn)換
常見的文件系統(tǒng)
Minix ; linux第一個(gè)支持的文件系統(tǒng),比較古老,現(xiàn)在每人用了
ISO9660; 標(biāo)準(zhǔn)的cdrom 文件系統(tǒng)
NFS ; 是sun公司推出的網(wǎng)絡(luò)文件系統(tǒng),準(zhǔn)許多臺計(jì)算機(jī)共享一個(gè)文件系統(tǒng)
提示; redhat linux默認(rèn)是不支持ntfs 文件系統(tǒng)的。我們可以自己編輯kernel來讓系統(tǒng)支持ntfs,但是可能會(huì)對數(shù)據(jù)造成損壞
常用創(chuàng)建文件系統(tǒng)工具
Mkfs 可以用于創(chuàng)建各種文件系統(tǒng),由-t參數(shù)來指定
Mke2fs 創(chuàng)建ext2/ext3文件系統(tǒng)
# Mk2fs -j /dev/hda2
文件系統(tǒng)的使用
設(shè)備;就是一個(gè)具體的文件系統(tǒng),可以用設(shè)備名或卷標(biāo)名來表示
掛載點(diǎn):必須是一個(gè)目錄。當(dāng)一個(gè)目錄下有文件時(shí),則在該文件系統(tǒng)被掛載后,原文件暫時(shí)無法訪問。直到當(dāng)前掛載的文件被卸載以后,才能繼續(xù)訪問
Mount命令參數(shù)
掛載時(shí)使用mount命令
基本格式; mount 〔-參數(shù)〕 〔設(shè)備名〕 〔掛載點(diǎn)〕
Mount -t 指定文件系統(tǒng)的類型
Umount 卸載文件系統(tǒng)
Mount -o loop disk1.iso 掛載.iso 文件
Mount -o 選項(xiàng)指定掛載文件系統(tǒng)時(shí)的選項(xiàng)。有些時(shí)候也可以/etc/fstab來指定。常用的有
ro ; 以只讀的方式掛載
rw ; 以讀寫的方式掛載
nouser ; 使一般的用戶無法掛載設(shè)備
user ; 可以讓一般的用戶掛載設(shè)備
配置/etc/fstab
/etc/fstab 這個(gè)文件是文件系統(tǒng)的掛載信息
當(dāng)mount一個(gè)文件系統(tǒng)時(shí)如果給出的參數(shù)不全,系統(tǒng)會(huì)從/etc/fstab文件中讀取參數(shù)來補(bǔ)全
當(dāng)系統(tǒng)啟動(dòng)時(shí),系統(tǒng)會(huì)根據(jù)這個(gè)/etc/fstab這個(gè)文件中的配置信息來自動(dòng)加載文件系統(tǒng)
這個(gè)文件同時(shí),還可以被fsck, dump, quotaon, swapon等程序所使用
fstab 文件的格式[!--empirenews.page--]
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 /boot ext2 defaults 1 1
fs_spec ; 這個(gè)字段表示要加載的文件系統(tǒng)所在的設(shè)備或遠(yuǎn)程文件系統(tǒng)
fs_file; 表示文件系統(tǒng)的掛載點(diǎn)
fs_type; 文件系統(tǒng)的類型
說明;對于swap設(shè)別,該字段為none; 對于加載目錄名中包含空格的情況,用40來表示空格
Fs_options; 因?yàn)樵诮o指定的設(shè)備加載文件系統(tǒng)時(shí),需要使用特定的參數(shù),多個(gè)參數(shù)是由逗號分開的。對于大多數(shù)的系統(tǒng)都是default就可以滿足需要了
加載文件系統(tǒng)可以指定的參數(shù);
ro ; 以只讀的方式加載
sync; 不對該設(shè)備的寫操作進(jìn)行緩沖處理,這可以防止在非法關(guān)機(jī)時(shí)破壞文件系統(tǒng)和數(shù)據(jù)的完整性。但是這樣卻降低了計(jì)算機(jī)的工作效率
user ; 準(zhǔn)許普通用戶可以掛載這個(gè)文件系統(tǒng)
quota ; 強(qiáng)制的在該文件系統(tǒng)上進(jìn)行磁盤配額
noauto ; 不在使用mount -a 命令 (在系統(tǒng)啟動(dòng)時(shí)) 加載文件系統(tǒng)
fs_dump ; 該選項(xiàng)被“dump”命令使用來檢查一個(gè)文件系統(tǒng)應(yīng)該以多快的頻率進(jìn)行轉(zhuǎn)存,如果不需要轉(zhuǎn)存就設(shè)置為0
fs_pass ; 這個(gè)字段表示fsck命令用來決定在啟動(dòng)時(shí)需要被掃描文件系統(tǒng)的順序,根文件系統(tǒng)“/” 對應(yīng)該字段的值為1,其他文件系統(tǒng)應(yīng)該為2。如果該文件系統(tǒng)不需要在啟動(dòng)時(shí)掃描,則設(shè)置為0
檢查當(dāng)前系統(tǒng)中掛載的文件系統(tǒng)
# mount 使用mount命令
# cat /etc/fstab 使用/etc/fstab 文件
# cat /proc/mounts 使用內(nèi)存鏡像文件
卷標(biāo)的含義
由于設(shè)備的文件名可能在硬盤結(jié)構(gòu)發(fā)生變化時(shí)而改變,因此redhat linux 對ext2文件系統(tǒng)使用卷標(biāo)來掛載和卸載
卷標(biāo)紀(jì)錄在ext2/ext3文件系統(tǒng)的超級塊中(superblock)
e2label 命令可以查詢和更改ext2文件系統(tǒng)的卷標(biāo)名
# cat /etc/fstab
LABEL=/ / ext3 default 1 1
/dev/hda7 /usr ext3 default 1 1
第二的意思就是說,把/dev/hda7這個(gè)分區(qū)掛載到/usr這個(gè)目錄上
第一行沒有指明分區(qū),意思是把LABEL(卷標(biāo))為/ 的分區(qū)mount到/ 分區(qū)上。 這樣寫的好處就是當(dāng)你的硬盤從主板上的IDE1(hda)移動(dòng)到IDE2(hdc)上的時(shí)候,系統(tǒng)仍然可以自動(dòng)的掛載正確的分區(qū)
手動(dòng)添加新分區(qū),自定義卷標(biāo)
# e2label /dev/hdax /new
# mkdir /new
最后在/etc/fstab 文件中加入
LABEL=/new /new ext3 default 1 1
這樣就ok了, 下次重啟后系統(tǒng)會(huì)自動(dòng)掛載這個(gè)/new分區(qū)
查詢 ext2/ext3 的卷標(biāo)名
# e2label /dev/hda2 查看
Boot 系統(tǒng)返回信息
更改ext2/ext3的卷標(biāo)名
# e2label /dev/hda2 data 更改
# e2label /dev/hda2 查看
Data 系統(tǒng)返回信息
用卷標(biāo)名來掛載文件系統(tǒng)
# mount —L data /data
# mount LABEL=DATA /data
當(dāng)你想創(chuàng)建,刪除分區(qū)或重新劃分分區(qū)大小,分區(qū)所在的設(shè)備就不能是正在使用的(分區(qū)不能被掛載,并且交換空間也不能被啟動(dòng))。達(dá)到這個(gè)目錄的最簡單的方法就是,進(jìn)入救援模式中引導(dǎo)系統(tǒng)。由于已經(jīng)加載的文件系統(tǒng)的信息會(huì)自動(dòng)的寫道/etc/mstab中,所以用戶只需要給出設(shè)備或掛載點(diǎn)中的一個(gè)參數(shù)即可
如果驅(qū)動(dòng)器不包括任何這在使用的分區(qū),你可以使用umount來卸載分區(qū),使用swapoff 命令來關(guān)閉硬盤驅(qū)動(dòng)器上的交換空間
文件系統(tǒng)的維護(hù)命令
Fsck /filesystem check ; 用于檢查和修復(fù)文件系統(tǒng)
e2fsck; 檢查和修復(fù)ext2/ext3文件系統(tǒng)
tun2fs; 更改ext2文件系統(tǒng)的屬性
resize2fs; 更改ext2文件系統(tǒng)的大小
parted; 更改多種文件系統(tǒng)的大小
linux有個(gè)parted 工具可以調(diào)整分區(qū)的大小,但是他是有限制的。如果向增大一個(gè)分區(qū)那么該分區(qū)后面必須有沒有使用的空間,而且這個(gè)分區(qū)沒有被mount
# parted /dev/had resize 3 644 1300
意思是把分區(qū)3 調(diào)整從柱面644 到柱面1300結(jié)束,重新啟動(dòng)后就會(huì)生效了。
Linux系統(tǒng)將每隔20次啟動(dòng)系統(tǒng)或30天對文件系統(tǒng)進(jìn)行一次檢查。這些屬性可以用tune2fs 來設(shè)定(時(shí)間間隔的周期以秒指定)
# tune2fs -i 0 /dev/hdb5
設(shè)置檢查文件系統(tǒng)的時(shí)間間隔秒數(shù)(-i)為0,0就是禁止根據(jù)時(shí)間的周期進(jìn)行檢查。
文件系統(tǒng)訪問控制列表
可以為多個(gè)用戶和組建立文件訪問控制列表
基本格式化為; mount -o acl
Getfacl
Setfacl
Acl 訪問控制列表
自定義訪問控制列表是一種機(jī)制,每一個(gè)acl由一個(gè)用戶標(biāo)識和組標(biāo)識結(jié)合的整體。用戶標(biāo)識與組標(biāo)識配合相對應(yīng)的訪問權(quán)限組成了
(user.group.mode)
訪問級別
(u.g,rwx) 特定的一個(gè)用戶,特定的組
(u.%,rwx)特定的一個(gè)用戶, 任意的組
(%.g,rwx)任意一個(gè)用戶,特定的組
(%.%,rwx)任意一個(gè)用戶,任意一個(gè)組
每一個(gè)文件都有13組的訪問權(quán)限模式,如果有多個(gè)類型的訪問權(quán)限條目,那么較詳細(xì)的條目的優(yōu)先級較高。在acl中設(shè)置某一個(gè)特定用戶的讀寫權(quán)限,如果設(shè)置了m(ask), 那用戶的權(quán)限還要受到
m(umask)的限制。原來是要兩個(gè)權(quán)限相與一下,才四用戶的正確權(quán)限
比如; 設(shè)置userA 的權(quán)限為r+w,而m設(shè)置為r,那么userA的權(quán)限為r。
自動(dòng)掛載文件系統(tǒng)
系統(tǒng)通過autofs服務(wù)自動(dòng)的掛載文件系統(tǒng)
需要后臺的automount 進(jìn)程
Autofs服務(wù)的開關(guān)由 /etc/init.d/autofs腳本來控制
主要應(yīng)用在軟驅(qū)和光驅(qū)的場合
如果該設(shè)備在一段時(shí)間內(nèi)沒有被使用,那么autofs會(huì)自動(dòng)卸載該設(shè)備
Autofs 服務(wù)的主要配置文件
/etc/auto.master 和 /etc/auto.misc
通過這兩個(gè)文件來完成automount的設(shè)定
Auto.master 的每一行表示一個(gè)自動(dòng)掛載的集群
每一行的格式為
自動(dòng)掛載目錄的集合 參考文件(默認(rèn)文件為/etc/auto.misc)
Auto.misc 文件中紀(jì)錄的則是每一個(gè)自動(dòng)掛載的設(shè)備
每一個(gè)行的格式為;
掛載點(diǎn)(實(shí)際掛載點(diǎn)為“/自動(dòng)掛載的目錄集合/掛載點(diǎn)”) 自動(dòng)卸載的時(shí)間 設(shè)備文件名[!--empirenews.page--]