Linux的磁盤管理
1、查看磁盤或者目錄的容量
df:顯示已掛載的磁盤信息,包括總容量、使用容量、剩餘容量等等,默認單位KB
-i:顯示inode使用情況
-h:以合適的單位顯示(G、M、K)
-m:以MB爲單位顯示
-k:以KB爲單位顯示
du:查看某個文件或者目錄的大小,如果不加任何選項和參數則表示列出當前目錄,包括子目錄的大小,單位默認是KB
-a:表示將全部文件都列出來,包括隱藏文件
-s:僅顯示總計
-h:以合適的單位顯示
-b:以字節爲單位顯示
-k:以KB爲單位顯示
-m:以MB爲單位顯示
2、磁盤的分區和格式化(有時候分區完後,分區不存在,需要使用partx -a來更新以下分區)
fdisk:查看磁盤的使用情況,也可以對磁盤分區
-l:列出磁盤的分區表信息
分區:fdisk 設備名
m:幫助
d:刪除一個分區
l:列出已有的分區類型
n:增加一個新的分區
p:打印分區表信息
q:退出不保存
w:寫入分區表並退出
t:更改分區的系統id號(分區類型)
有時候分完區後,在格式化時發現這個還沒有分區,可以使用partprobe來刷新,也可以使用partx命令
格式化分區:
我們可以查看Centos下支持哪些文件系統,/etc/filesystems
有ext4,ext3,ext2,nodev proc(虛擬文件系統),nodev devpts,iso9669(光盤),vfat(就二十windows下的fat32),hfs,hfsplus
格式化分區命令:mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4
mke2fs是一個通用的命令,它可以格式化成ext2、ext3、ext4等等
mke2fs -t [文件類型] [設備名稱]
-b:指定分區是的block大小,4k、2k、1k,默認是4k
-i:指定inode的大小
-N:指定inode的數量
-c:在格式化之前先檢測磁盤是否有問題
-L:預設該分區的標籤 (e2lable命令可以查看或者修改分區的標籤:e2lable [設備] [標籤])
-j:指定ext3的格式,也可以-t指定
-t:指定文件系統的格式,可以是ext4、ext3等等
-m:指定給管理員保留區塊的比例,預設爲5%,一般格式化時默認bolck(5.00%)reserved for the super user //意思就是給超級用戶預留了一部分空間,作爲特殊用途
3、掛載/卸載磁盤
我們格式化磁盤後,需要掛載後才能使用,外部設備(U盤等)也需要掛載才能使用
mount:將設備或者文件系統掛載到指定的掛載點,才能訪問到裏面的數據
-a:加載文件"/etc/fstab"中描述的所有文件系統
-t:指定掛載的分區類型,默認不指定會默認識別
-o:指定掛載的分區有那些特性,就是下面介紹到的第四列的mount參數
-o loop:掛載鏡像,或者光盤
--bind:可以掛載目錄
/etc/fstab:這個文件裏顯示了系統啓動時需要掛載的各個分區
第一列:分區的標識,這裏可以寫lable(標籤)、分區的UUID。也可以寫分區名(/dev/sdb)
第二列:掛載點
第三列:分區的格式,文件系統
第四列:mount的一些掛載參數,一般情況下直接寫defaults即可
第五列:這些數字表示是否被 dump備份,1表示備份,0表示不備份
第六列:這些數字表示開機時是否自檢磁盤,1和2都表示檢測,0表示不檢測,1比2的優先級高
也可以將掛載文件系統寫到/etc/rc.d/rc.local裏面,也可是實現開機自動掛載,和上面一樣
第四列的mount的掛載參數是什麼意思呢?這裏我們可以man mount查看幫助文檔,找到一行字符爲"FILESYSTEM INDEPENDENT MOUNT OPTIONS"的這一行,有很多參數
async/sync:async表示磁盤和內存不同步,系統每隔一段時間會把內存數據寫入到磁盤,而sync則會實時同步內存和磁盤的數據
auto/noauto:表示開機自動掛載/不自動掛載
default:表示按照大多數永久文件系統的默認值設置掛載定義,它包含了rw、suid、dev、exec、auto、nousr和sync。
ro:表示按只讀權限掛載
rw:表示按可讀可寫權限掛載
exec/noexec:表示允許/不允許可執行文件執行,如果把根分區掛載爲noexec,會導致無法使用系統,甚至連mount命令也無法使用
user/nouser:表示允許/不允許root以外的其他用戶掛在分區
suid/nosuid:表示允許/不允許分區有suid屬性,一般設置爲nosuid
usrquota:表示啓動用戶的磁盤配額模式。磁盤配額會針對用戶限定他們使用的磁盤額度
grquota:表示啓動羣組的磁盤配額模式。
umount:卸載已經掛載的設備
-a:卸載掉/etc/mtab中記錄的所有文件系統
-l:強制卸載
有時候我們會遇到某個磁盤A它被掛載後的名字是/dev/sda,我把它拔了,換另一個端口,發現變成/dev/sdb了,這是爲什麼呢?
因爲如果該磁盤已被掛載使用,那麼就會爲它分配一個UUID,所以有可能換了端口你使用了其它就UUID號,那麼也會顯示成其它的磁盤名稱
blkid:顯示塊設備的屬性,包括UUID、LABEL、文件系統類型