摘自:http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7621&extra=page%3D1%26filter%3Dtypeid%26typeid%3D36 1. 查看磁碟或者目錄的容量 df 查看磁碟各分區使用情況 不加參數以k為單 ...
摘自:http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7621&extra=page%3D1%26filter%3Dtypeid%26typeid%3D36
1. 查看磁碟或者目錄的容量
df 查看磁碟各分區使用情況
不加參數以k為單位
df -i inode數,df -h 以G或者T或者M
df -m 以M單位顯示
du 查看目錄或者文件的容量
不加參數 以k為單位顯示
-s 列出總和 -a 列出所有文件和目錄
-k 以k為單位 -m 以M為單位
-h 最合適的單位 最常用組合 -sh
擴展 ls -lh 看到的大小和du相比
2. 磁碟的分區和格式化
fdisk -l 查看磁碟和分區,大於2T用GPT
fdisk 設備名 m 列出常用命令,常用的有‘p’, ‘n’, ‘d’, ‘w’, ‘q’.
mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4
-t 文件系統格式 ext3 ext4
-b 指定每個數據塊大小,目前支持1024, 2048 及4096
-L 分區標簽
格式化時預設blocks (5.00%) reserved for the super user //給超級用戶預留的一部分空間,用來作為特殊用途
-m 可以更改這個比例,如 mke2fs -m 0.1 /dev/sdb1 //意思是,只預留出0.1%
3. 掛載、卸載磁碟分區
mount 不加任何選項和參數,查看已經掛載情況
mount 格式 mount -t type /dev/sda5 /mnt
mount -t 指定掛載分區格式,如 -t ext3
umount /dev/sda5 或者 umount /mnt
umount -l 強制卸載
mount -o 後面跟各種選項,比如remount,ro,noatime等,具體選項如下:
“async/sync” : async表示和磁碟和記憶體不同步,系統每隔一段時間把記憶體數據寫入磁碟中,而sync則會時時同步記憶體和磁碟中數據;
“auto/noauto” : 開機自動掛載/不自動掛載;
“default” : 按照大多數永久文件系統的預設值設置掛載定義,它包含了rw, suid, dev, exec, auto, nouser, async
“ro” : 按只讀許可權掛載 ;
“rw” : 按可讀可寫許可權掛載 ;
“exec/noexec” : 允許/不允許可執行文件執行,但千萬不要把根分區掛載為noexec,那就無法使用系統了,連mount命令都無法使用了,這時只有重新做系統了;
“user/nouser” : 允許/不允許root外的其他用戶掛載分區,為了安全考慮,請用nouser ;
“suid/nosuid” : 允許/不允許分區有suid屬性,一般設置nosuid ;
“usrquota” : 啟動使用者磁碟配額模式,磁碟配額相關內容在後續章節會做介紹;
“grquota” : 啟動群組磁碟配額模式;
特殊用法:mount -o loop 1.iso /mnt #掛載鏡像文件
mount --bind /dir1 /dir2 #掛載目錄
mount -a 會根據/etc/fstab 掛載所有分區
UUID是如何來的,使用命令 blkid
blkid命令 後可以不跟設備名,列出所有
mount UUID=“……” /mnt
使用UUID的好處是,多塊磁碟,如果在伺服器上換了插槽位置,設備名會變,但UUID是唯一的
4. 配置文件 /etc/fstab
第一列就是分區的標識,可以LABEL,也可以UUID,當然也可以 (/dev/sda1);
第二列是掛載點;
第三列是分區的格式;
第四列則是mount的一些掛載參數,一般情況下,直接寫defaults即可;
第五列的數字表示是否被dump備份,是的話這裡就是1,否則就是0;第六列是開機時是否自檢磁碟。1,2都表示檢測,0表示不檢測,
/ 分區必須設為1,而且整個fstab中只允許出現一個1,1比2優先順序高,所以先檢測1,然後再檢測2,如果有多個分區需要開機檢測那麼都設置成2吧,
1檢測完了後會同時去檢測2。
lvm配置 (參考內容,大家自行實踐)
LVM是Linux環境中對磁碟分區進行管理的一種機制,是建立在硬碟和分區之上、文件系統之下的一個邏輯層,可提高磁碟分區管理的靈活性。支持動態擴充磁碟空間。
首先從空的硬碟sdb上創建兩個分區sdb1 1G, sdb2 2G。
1)創建邏輯捲
pvcreate /dev/sdb1 /dev/sdb2 //創建物理捲
pvdisplay //可以列出已經創建的物理捲
vgcreate vgdata /dev/sdb1 /dev/sdb2 //創建捲組 vgdata ,並將剛纔創建好的兩個物理捲加入該捲組
vgdisplay //可以列出已經建好的捲組
#預設PE大小為4MB,PE是捲組的最小存儲單元.可以通過 –s參數修改大小。
lvcreate -L 500M -n lvdata1 vgdata //分割500M給新的邏輯捲lvdata1
lvdisplay //列出當前的邏輯捲
mkfs.ext4 /dev/vgdata/lvdata1 //格式化邏輯捲
mount /dev/vgdata/lvdata1 /aming //掛載邏輯捲
2)擴展邏輯捲
邏輯捲lvdata1不夠用了,我們如何給他增加空間呢?
lvextend –L +500M /dev/vgdata/lvdata1 //給lvdata1增加500M空間。
resize2fs /dev/vgdata/lvdata1 //同步文件系統
3)擴展卷組
當捲組不夠用的情況下,我們也是可以擴展卷組的。我們再創建一個新的分區叫做/dev/sdb3.
vgextend vgdata /dev/sdb3 //把sdb3加入到捲組vgdata中
4)減少邏輯捲大小
卸載 --> e2fsck 檢測剩餘空間 --> resize2fs 同步文件系統 --> 使用lvreduce命令將邏輯捲減少
註意:文件系統大小和邏輯捲大小一定要保持一致才行。如果邏輯捲大於文件系統,由於部分區域未格式化成文件系統會造成空間的浪費。
umount /data1
e2fsck -f /dev/mapper/vgdata-lvdata1
resize2fs /dev/mapper/vgdata-lvdata1 700M
lvreduce -L 700M /dev/vgdata/lvdata1
mount /dev/vgdata/lvdata1 /data1
5) 當磁碟或分區損壞時,如何轉移數據
pvmove 轉移空間數據 --> vgreduce命令將即將壞的磁碟或者分區從捲組vgdata裡面移除除去 --> pvremove命令將即將壞的磁碟或者分區從系統中刪除掉 --> 拆除或修複磁碟
pvmove /dev/sdb1
vgreduce vgdata /dev/sdb1
pvremove /dev/sdb1
6) 刪除整個邏輯捲
umount卸載邏輯捲 --> 修改配置文件/etc/fstab(若是之前更改過) --> lvremove 刪除邏輯捲lvdata1 --> vgremove 刪除捲組vgdata --> pvremove 將物理捲轉化成普通分區
umount /dev/vgdata/lvdata1
lvremove /dev/vgdata/lvdata1
vgremove vgdata
pvremove /dev/sdb2
pvremove /dev/sdb3