【Linux學習筆記】第4章 Linux磁盤管理
df 查看文件系統磁盤空間使用情況。
文件系統 磁盤總大小(kB) 已使用 可用 已用% 掛載點(目錄)
Linux磁盤不能直接訪問,必須要有一個掛載點。
參數:
-h 可根據磁盤大小顯示適當的單位。
帶有tmpfs代表臨時的文件系統,重啟之後會自動消失。
/dev/shm代表內存,占物理內存的一半。
-i 查看分區下inode數量及使用情況。
創建好分區,格式化之後,就預分配好了分區大小以及inode數量。當inode使用量滿了的時候,即便磁盤空間還有剩余,也不能寫進數據了。
-m 以M為單位顯示。
free 查看剩余空間,可加-m參數以M為單位顯示。
4.2du命令
du 參數 dir/filename
參數:
-s 只查看所寫目錄總和,不查看子目錄。
-h 自動調節單位。
常用du -sh dir/filename
每個塊只能有一個文件。
4.3磁盤分區(上)
服務器支持熱插拔磁盤。
fdisk -l 列出系統中所有的磁盤和分區表。
fdisk -l 設備名稱 顯示相應設備的信息。
在虛擬機中,新添加了磁盤分區,fdisk -l未顯示新添加的磁盤,說明還未識別,需要reboot重啟,再fdisk -l查看。
若沒有-l選項,fdisk 設備名稱將進入對磁盤進行分區操作的模式。根據提示,輸入m,可獲取幫助信息,在裏面如果輸入錯誤,需要按Ctrl+U刪除錯誤的輸入。
n 增加新分區new。
p 列出分區print。
d 刪除分區delete。
輸入n創建分區,會出現選項:
p 主分區
e 擴展分區
MBR分區,最高支持2T,最多4個主分區,若要劃分多個分區,可先劃分3個主分區,最後一個分區劃分為擴展分區,擴展分區可繼續劃分為多個邏輯分區。主分區+擴展分區<=4個。
輸入相應命令後,根據提示設置分區號及起始扇區、結束扇區(+扇區或+size{K,M,G})。
當4個主分區劃分完之後,將提示不能再新建分區,若要再建一個分區,需要先刪掉一個分區。
當4個分區創建完畢,若有擴展分區,再創建新的分區時,會提示添加邏輯分區5。根據相應提示完成創建。
4.4磁盤分區(下)
d 刪除分區後,若刪除主分區,分區號留空,若刪除邏輯分區,後面的會往前補上,分區號不留空。
若創建了擴展分區後,主分區+擴展分區\<4個,再創建分區時將提示:
p 創建主分區。
l 創建邏輯分區。
主分區或擴展分區號可以不連續,但邏輯分區號必須從5開始,連續。
擴展分區可以劃分空間,但真正占有空間的是其中的邏輯分區,因而擴展分區中不能寫數據,也不能格式化。
4.5磁盤格式化(上)
Windows系統支持NTFS、fat格式。
Linux系統支持的文件格式可cat /etc/filesystems查看。Centos6及之前版本使用ext格式,從centos7開始,改為了xfs格式。但可格式化為ext格式。
創建分區之後,進行格式化,使用mke2tf命令。
mke2fs 參數 設備名稱
參數:
-t 格式 指定格式化後的文件系統格式(ext4/3/2等,mke2fs不支持格式化為xfs格式。)。如果不指定格式,將默認為ext2格式(可使用後面提到的blkid命令查看到未掛載的設備文件格式)。
-b SIZE 指定塊大小(B)。du -sh所查看到的是塊的總大小,而du -sb所查看到的是文件的實際占用大小,跟ls -l查看到的大小一致。
mkfs.ext4<=>mke2fs -t ext4 (3,2類似)。
當已經存在文件格式,重新格式化的時候,會提示加-f選項強制格式化。
mke2fs不支持格式化為xfs格式,但可以用mkfs.xfs來滿足格式化為xfs格式的需求。
格式化之後,由於還未掛載到任何掛載點,使用mount是無法查看到的。
blkid [設備名稱] 可查看到還未掛載的設備
4.6磁盤格式化(下)
mke2fs 參數 設備名稱
參數:
-m SIZE 指定分區預留大小百分比(1代表1%)。
單文件系統存放的都是視頻音樂等大型文件時,可將塊大小設置大一些,可加快讀取。
-i SIZE 指定多少字節對應一個inode,至少一個塊大小才能對應一個inode(若不指定,默認4個塊對應一個inode)。
4.7磁盤掛載(上)
一個磁盤可以不分區,直接格式化。
mount 設備名稱/UUID 掛載點 掛載設備(如:mount /dev/sdb /mnt/)。
umount 設備名稱/掛載點 卸載磁盤。
若在掛載點內,將提示目標忙,無法卸載相應磁盤。
若在掛載點內,要卸載相應磁盤,可使用
umount -l 掛載點 參數l表示懶得退出去。
4.8磁盤掛載(下)
mount -o 具體選項
-o 具體選項(man mount查看具體選項,在man內查找:/defaults可看到defaults所包含的選項,選項前加no,表反義。而async反義sync,sync內存隨時同步到磁盤,會加重負擔,默認async,不實時同步,過一會兒同步一次)。
系統文件/etc/fstab 中配置系統啟動時掛載的磁盤分區(man fstab),6列:
UUID/設備名稱 掛載點 分區格式 掛載選項(默認defaults) 是否備份(0/1) 設置優先級是否檢測(0(不檢測)/1(高級:根)/2(低級:其他)。
掛載也可以是將UUID寫到配置文件/etc/fstab中去。
4.9手動增加swap空間
當前期swap空間分配不夠的時候,需要手動增加swap空間。
dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
dd命令操作磁盤空間;if指定讀取位置,/dev/zero是Linux系統裏的到0器,能源源不斷地產生0;of指定(將前面的0)寫入的位置;bs指定塊大小;count指定of指定位置的塊的數量。
創建完成之後,可du -sh /tmp/newdisk查看。
創建完虛擬磁盤之後,需要格式化。
swap是一種特有的文件系統,需要使用mkswap命令
mkswap -f /tmp/newdisk 格式化
格式化完成之後,需要將改磁盤空間加載到現在的swap空間裏面去。
swapon /tmp/newdisk 將改磁盤空間加載到swap空間。
此時會提示權限不安全,但仍然能加載上去,為了安全起 見,根據建議修改權限。
不用了的時候,可卸載該磁盤空間。
swapoff /tmp/newdisk 卸載該磁盤。
rm -f /tmp/newdisk 刪掉該磁盤。
4.10lvm講解(上)
磁盤分區重組再分配。
磁盤:物理磁盤。
分區:創建為物理卷。
重組:卷組(物理卷的組合)。
再分配:邏輯卷LVM(Logical Volume)。
最後將邏輯卷LVM格式化,掛載使用。
準備一個磁盤,fdisk /dev/sdb查看信息。
創建三個分區。可以發現分區Id為83,System為Linux,說明是普通的分區,要使用LVM,需按t,根據提示,改為8e,此時p打印出來,可以發現Id變為了8e,System變為了Linux LVM。
磁盤分區準備完成後,創建為物理卷,使用pvcreate命令,需要先安裝lvm包(yum install -y lvm)。
根據命令搜索安裝包:yum provides “//command”
yum provides “//pvcreate” 可搜索到pvcreate命令所需的安裝包及版本。
若創建完成之後,系統沒有生成相應文件,ls /dev/sdb1查詢不到。運行partprobe命令,再ls /dev/sdb1即可查看到。一般創建完成後能自動生成文件。
partprobe 磁盤分區 命令無法對已掛載的磁盤使用,需要先取消掛載,才能創建物理卷。
partprobe /dev/sdb1 創建物理卷(2、3類似)。
4.11lvm講解(中)
物理卷創建完成之後:
pvdisplay 查看系統中所有物理卷信息。
pvs 也可查看當前的所有物理卷。
vgcreate 卷組名 物理卷1 [物理卷2]…… 創建卷組。
vgcreate vg1 /dev/sdb1 /dev/sdb2
vgdisplay 查看卷組信息。
vgs 也可查看卷組信息。
lvcreate -L SIZE -n LVNAME VGNAME
-L指定大小。
-n指定名字LVNAME。
從VGNAME裏面劃分出來。
lvcreate -L 100M -n lv1 vg1 從vg1裏面劃分出lv1,大小為100M。
創建完成後,對邏輯卷LVM格式化。
mkfs.ext4 /dev/vg1/lv1 對lv1格式化。
mount /dev/vg1/lv1 /mnt/ 掛載/dev/vg1/lv1,掛載點/mnt/。
擴容邏輯卷:
lvresize -L SIZE LVM 指定LVM新的大小,擴容。擴容之前應該先取消掛載。
umount /mnt/ 取消掛載。
lvresize -L 200M /dev/vg1/lv1 將/dev/vg1/lv1擴大到200M。
e2fsck -f /dev/vg1/lv1 檢查磁盤,看是否存在錯誤。
resize2fs /dev/vg1/lv1 更新邏輯卷信息,更新之後,再掛載,才能識別新的大小。
mount /dev/vg1/lv1 /mnt/ 掛載。
縮減邏輯卷(xfs格式不支持縮容):
umount /mnt/ 取消掛載。
e2fsck -f /dev/vg1/lv1 檢查磁盤,看是否存在錯誤。
resize2fs /dev/vg1/lv1 100M 更新邏輯卷信息。
lvresize -L 100M /dev/vg1/lv1 將/dev/vg1/lv1縮減到100M。
lvdisplay或lvs查看,可以看到新的邏輯卷為100M,當文件內容不大於邏輯卷總容量時,縮容不會導致邏輯卷內的文件丟失,可在縮容前後ls查看對比驗證。
mount /dev/vg1/lv1 /mnt/ 掛載。
e2fsck、resize2fs命令只能針對ext格式的文件系統使用。
4.12lvm講解(下)
格式化為xfs格式:
umount /mnt/ 取消掛載。
mkfs.xfs -f dev/vg1/lv1 格式化為xfs格式。
mount /dev/vg1/lv1 /mnt/ 掛載。
lvresiize -L 300M /dev/vg1/lv1 擴容到300M(xfs格式擴容不用卸載)
xfsgrowfs /dev/vg1/lv1 必須要在掛載的時候進行該命令操作。
df -h 查看,可以看到已經擴大到300M大小。
邏輯卷空間不能大於卷組空間,當邏輯卷已占用完卷組空間後,需要先擴容卷組,才能再擴容邏輯卷。
vgextend vg1 /dev/sdb3 將/dev/sdb3增加進vg1
vgdisplay 查看卷組信息,可以看到vg1的容量已經增加了/dev/sdb3的大小。
再對邏輯卷進行擴容。
4.13磁盤故障小案例
若掛載磁盤出現問題,不能正常掛載到掛載點,啟動的時候發現進入不了系統了。根據提示輸入root密碼。進入一個類似於正常登陸的界面。編輯/etc/fstab,將自己加入的錯誤掛載信息刪掉。保存退出再重啟即可。
【Linux學習筆記】第4章 Linux磁盤管理