9 文件系统管理
9.1 回顧分區(qū)和文件系統(tǒng)
分區(qū)類型
主分區(qū):總共最多只能分四個(gè)
擴(kuò)展分區(qū):只能有一個(gè),主分區(qū)加擴(kuò)展分區(qū)最多有四個(gè),必須再劃分成邏輯分區(qū)才能使用。
邏輯分區(qū):在擴(kuò)展分區(qū)中劃分的
? ? IDE硬盤最多支持59個(gè)邏輯分區(qū)
? ? SCSI硬盤最多支持11個(gè)邏輯分區(qū)
?
—————————————————————————————————————————————————
?
分區(qū)表示方法
主分區(qū)1 ???/dev/sda1
主分區(qū)2 ???/dev/sda2
主分區(qū)3 ???/dev/sda3
擴(kuò)展分區(qū) ??/dev/sda4
????邏輯分區(qū)1 ???/dev/sda5
????邏輯分區(qū)2 ???/dev/sda6
????邏輯分區(qū)3 ???/dev/sda7
.
.
.
?
主分區(qū)1 ???/dev/sda1
擴(kuò)展分區(qū) ??/dev/sda2
????邏輯分區(qū)1 ???/dev/sda5
????邏輯分區(qū)2 ???/dev/sda6
????邏輯分區(qū)3 ???/dev/sda7
.
.
.
?
—————————————————————————————————————————————————
?
文件系統(tǒng)
ext2:
是ext文件系統(tǒng)的升級(jí)版本,Red Hat Linux7.2版本以前的系統(tǒng)默認(rèn)都是ext2文件系統(tǒng)。
1993年發(fā)布,最大支持16TB的分區(qū)和最大2TB的文件(1TB=1024GB=1024*1024KB)
?
ext3:
ext3文件系統(tǒng)是ext2文件系統(tǒng)的升級(jí)版本,最大的區(qū)別就是帶日志功能
以在系統(tǒng)突然停止時(shí)提高文件系統(tǒng)的可靠性。支持最大16TB的分區(qū)和最大2TB的文件。
?
ext4:
它是ext3文件系統(tǒng)的升級(jí)版。ext4在性能、伸縮性、可靠性方面進(jìn)行了大量改進(jìn)。
ext4的變化可以說是翻天覆地的,比如向下兼容ext3、最大1EB文件系統(tǒng)和16TB文件,無限數(shù)量子目錄,Extents連續(xù)數(shù)據(jù)塊概念、多塊分配、延遲分配、持久預(yù)分配、快速FSCK、日志校驗(yàn)、無日志模式、在線碎片整理、inode增強(qiáng)、默認(rèn)啟用barrier等。是CentOS6.3的默認(rèn)文件系統(tǒng)
(1EB=1024PB=1024*1024TB)
?
—————————————————————————————————————————————————
?
9.2 文件系統(tǒng)常用命令
9.2.1 df du dumpe2fs
文件系統(tǒng)查看命令df
df ?#可以看到所有分區(qū)
df 選項(xiàng) 掛載點(diǎn) ???report file system disk space usage
-a 顯示所有的文件系統(tǒng)信息,包括特殊文件系統(tǒng),如/proc、/sysfs
-h 使用習(xí)慣單位顯示容量,如KB,MB或GB等
-T 顯示文件系統(tǒng)類型
-m 以MB為單位顯示容量
-k 以KB為單位顯示容量。默認(rèn)就是以KB為單位
?
—————————————————————————————————————————————————
?
統(tǒng)計(jì)目錄或文件大小
du 選項(xiàng) 目錄或文件名 ?estimate file space usage
-a 顯示每個(gè)子文件的磁盤占用量。默認(rèn)只統(tǒng)計(jì)子目錄的磁盤占用量
-h 使用習(xí)慣單位顯示磁盤占用量,如KB,MB或GB等
-s 統(tǒng)計(jì)總占用量,而不列出子目錄和子文件的占用量
?
du更慢,更耗費(fèi)資源
?
du命令和df命令的區(qū)別
du用于看文件大小
df用于看剩余空間
df命令是從文件系統(tǒng)考慮的,不光要考慮文件占用的空間,還要統(tǒng)計(jì)被命令或程序占用的空間(最常見的就是文件已經(jīng)刪除,但是程序并沒有釋放空間)
du命令是面向文件的,只會(huì)計(jì)算文件或目錄占用的空間
?
Linux服務(wù)器應(yīng)該定期重啟,以釋放程序占用的磁盤空間
游戲、下載、在線電影等高負(fù)載服務(wù)器應(yīng)每周重啟一次
網(wǎng)站應(yīng)每個(gè)月重啟一次
—————————————————————————————————————————————————
?
文件系統(tǒng)修復(fù)命令fsck ???check and repair a Linux file system
fsck 選項(xiàng) 分區(qū)設(shè)備文件名
-a 不用顯示用戶提示,自動(dòng)修復(fù)文件系統(tǒng)
-y 自動(dòng)修復(fù)。和-a作用一致,不過有些文件系統(tǒng)只支持-y
?
此命令是底層修復(fù)命令,系統(tǒng)會(huì)自動(dòng)執(zhí)行,知道作用就好,不需要自己操作,可能崩潰
—————————————————————————————————————————————————
?
顯示磁盤狀態(tài)命令dumpe2fs ???dump ext2/ext3/ext4 filesystem information
dumpe2fs 分區(qū)設(shè)備文件名
可以查看分區(qū)的數(shù)據(jù)塊有多大
?
dumpe2fs /dev/sda1
—————————————————————————————————————————————————
?
9.2.2 掛載命令
1、查詢與自動(dòng)掛載
mount -l
#查詢系統(tǒng)中已經(jīng)掛載的設(shè)備,-l會(huì)顯示卷標(biāo)名稱
/proc ?/sys 是內(nèi)存
?
mount -a
#依據(jù)配置文件/etc/fstab的內(nèi)容,自動(dòng)掛載
—————————————————————————————————————————————————
?
2、掛載命令格式
mount ?[-t 文件系統(tǒng)] ?[-L 卷標(biāo)名] ?[-o 特殊選項(xiàng)] 設(shè)備文件名 掛載點(diǎn)
-t 文件系統(tǒng):加入文件系統(tǒng)類型來指定掛載的類型,可以是ext3、ext4、iso9660等文件系統(tǒng)
-L 卷標(biāo)名:掛載指定卷標(biāo)的分區(qū),而不是安裝設(shè)備文件名掛載。卷標(biāo)相當(dāng)于別名
-o 特殊選項(xiàng):可以指定掛載的額外選項(xiàng)。針對(duì)分區(qū)
?
atime/noatime
更新訪問時(shí)間/不更新訪問時(shí)間。
訪問分區(qū)時(shí),是否更新文件的訪問時(shí)間,默認(rèn)更新
?
async/sync
異步/同步
默認(rèn)為異步
?
auto/noauto
自動(dòng)/手動(dòng)
mount -a命令執(zhí)行時(shí),是否會(huì)自動(dòng)安裝/etc/fstab文件內(nèi)容掛載,默認(rèn)為自動(dòng)
?
defaults
定義默認(rèn)值,相當(dāng)于rw suid dev exec auto nouser async 這七個(gè)選項(xiàng)
?
exec/noexec
執(zhí)行/不執(zhí)行
設(shè)定是否允許在文件系統(tǒng)中執(zhí)行可執(zhí)行文件,默認(rèn)exec允許
如果是文件服務(wù)器,可以設(shè)置為noexec
?
remount
重新掛載已經(jīng)掛載的文件系統(tǒng),一般用于指定修改特殊權(quán)限
?
rw/ro
讀寫/只讀
文件系統(tǒng)掛載時(shí),是否具有讀寫權(quán)限,默認(rèn)是rw
?
suid/nosuid
具有/不具有SUID權(quán)限
設(shè)定文件系統(tǒng)是否具有SUID和SGID的權(quán)限,默認(rèn)是具有
?
user/nouser
允許/不允許普通用戶掛載
設(shè)定文件系統(tǒng)是否具有SUID和SGID的權(quán)限,默認(rèn)是具有
?
usrquota
寫入代表文件系統(tǒng)支持用戶磁盤配額
默認(rèn)不支持
?
grpquota
寫入代表文件系統(tǒng)支持組磁盤配額
默認(rèn)不支持
?
?
例子:
mount -o remount,noexec /home
#重新掛載/home分區(qū),并使用noexec權(quán)限
cd /home
vi hello.sh ???
chmod 755 hello.sh
./hello/sh #提示權(quán)限不夠
mount -o remount,exec /home
—————————————————————————————————————————————————
?
9.2.3 掛載光盤與U盤
掛載光盤
1、建立掛載點(diǎn)
mkdir /mnt/cdrom/
?
2、掛載光盤,兩個(gè)可選命令
mount -t iso9660 /dev/cdrom /mnt/cdrom/
mount /dev/sr0 /mnt/cdrom
#在/dev下,cdrom是sr0的軟連接方式
?
?
卸載命令
umount 設(shè)備文件名或掛載點(diǎn)
?
例子:
umount /mnt/cdrom
—————————————————————————————————————————————————
?
掛載U盤
1、查看U盤設(shè)備文件名
fdisk -l
?
2、掛載U盤
mount -t vfat /dev/sdb1 /mnt/usb
?
把FAT16識(shí)別為FAT
把FAT32識(shí)別為VFAT
注意:Linux默認(rèn)是不支持NTFS文件系統(tǒng)的
—————————————————————————————————————————————————
?
9.2.4 掛載NTFS文件系統(tǒng)
兩種方法:
1、內(nèi)核編譯,將NTFS的驅(qū)動(dòng)加入進(jìn)來,用的極少
2、第三方軟件
???下載NTFS-3G插件
???http://www.tuxera.com/community/ntfs-3g-download/
?
tar -zxvf ntfs-3g_ntfsprogs-2014.2.15.tgz
cd ntfs-3g_ntfsprogs-2014.2.15
./configure
make
make install
mount -t ntfs-3g 分區(qū)設(shè)備文件名 掛載點(diǎn)
—————————————————————————————————————————————————
?
9.3 fdisk分區(qū)
Partition table manipulator for Linux
手工分區(qū)命令
?
fdisk命令分區(qū)過程
1、添加新硬盤
2、查看新硬盤
fdisk -l
Linux通過ID的方式來識(shí)別分區(qū)
83 Linux的標(biāo)準(zhǔn)分區(qū)
82 swap分區(qū)
5 ?Extended分區(qū)
?
3、使用fdisk命令分區(qū)
fdisk /dev/sdb
?
a 設(shè)置可引導(dǎo)標(biāo)記
b 編輯bsd磁盤標(biāo)簽
c 設(shè)置DOS操作系統(tǒng)兼容標(biāo)記
d 刪除一個(gè)分區(qū)
l 顯示已知的文件系統(tǒng)類型。82為Linux swap分區(qū),83為Linux分區(qū)
m 顯示幫助菜單
n 新建分區(qū)
o 建立空白DOS分區(qū)表
p 顯示分區(qū)列表
q 不保存退出
s 新建空白SUN磁盤標(biāo)簽
t 改變一個(gè)分區(qū)的系統(tǒng)ID
u 改變顯示記錄單位
v 驗(yàn)證分區(qū)表
w 保存退出
x 附加功能(僅專家)
?
4、重新讀取分區(qū)表信息
partprobe ?#避免重啟
?
5、格式化分區(qū) ?build a Linux file system
mkfs -t ext4 /dev/sdb1
#不能格式化擴(kuò)展分區(qū)
6、建立掛載點(diǎn)并掛載
mkdir /disk1
mount /dev/sdb1 /disk1
?
此時(shí),每次啟動(dòng)都要手動(dòng)掛載硬盤分區(qū)
—————————————————————————————————————————————————
分區(qū)自動(dòng)掛載與fstab文件修復(fù)
?
1、/etc/fstab文件
第一字段:分區(qū)設(shè)備文件名或UUID(硬盤通用唯一識(shí)別碼)
第二字段:掛載點(diǎn)
第三字段:文件系統(tǒng)名稱
第四字段:掛載參數(shù)
第五字段:指定分區(qū)是否被dump備份,0代表不備份,1代表每天備份,2代表不定期備份
第六字段:指定分區(qū)是否被fsck檢測(cè),0代表不檢測(cè),其他數(shù)字代表檢測(cè)的優(yōu)先級(jí),那么當(dāng)然1的優(yōu)先級(jí)比2高(手動(dòng)添加的分區(qū)應(yīng)小于等于2)
?
查看UUID命令
dumpe2fs -h /dev/sdb1
?
每個(gè)分區(qū)都有lost+found目錄用于備份
?
?
2、分區(qū)自動(dòng)掛載
/dev/sdb1 ?/disk1 ?ext4 ?defaults ?1 2
?
mount -a
#依據(jù)配置文件/etc/fstab的內(nèi)容,自動(dòng)掛載
?
?
3、/etc/fstab文件修復(fù)
mount -o remount,rw /
#重新掛載根分區(qū)為讀寫權(quán)限
然后修改fstab配置
—————————————————————————————————————————————————
?
新建swap分區(qū)
?
1、新建swap分區(qū)
fdisk /dev/sdb
#將分區(qū)ID改為82
?
2、格式化
mkswap /dev/sdb6 ???#mkswap ??set up a Linux swap area
?
3、加入swap分區(qū)
swapon /dev/sdb6
?
swapoff /dev/sdb6
#取消swap分區(qū)
?
4、swap分區(qū)開機(jī)自動(dòng)掛載
vi /etc/fstab
?
/dev/sdb6 ?swap ?swap ?defaults 0 0
?
5、free命令
#查看內(nèi)存與swap分區(qū)使用情況
cached(緩存):
把讀出來的數(shù)據(jù)保存在內(nèi)存當(dāng)中,當(dāng)再次讀取時(shí),不用讀取硬盤而直接從內(nèi)存當(dāng)中讀取
加速了數(shù)據(jù)的讀取過程
?
buffers(緩沖):
在寫入數(shù)據(jù)時(shí),先分散的寫入操作保存到內(nèi)存中,當(dāng)達(dá)到一定程度再集中寫入硬盤
減少了磁盤碎片和硬盤的反復(fù)尋道,加速了數(shù)據(jù)的寫入過程
?
?
?
?
總結(jié)
- 上一篇: Java06集合
- 下一篇: 机器学习08机器学习系统设计