前置知識
動態卷管理(LVM,Logical Volume Manger)實作將多個硬碟和硬碟磁區做成一個邏輯卷,并將邏輯卷統一管理,創建LVM順序為:物理卷PV->卷組VG->邏輯卷LV,
物理卷(PV,Physical Volume):物理硬碟或磁區;
卷組(VG,Volume Group):一個或多個物理卷集合;
邏輯卷(Logical Volume):供系統使用的元設備,虛擬磁區,
LVM常用的命令:
| 功能 | PV物理卷管理 | VG卷組管理 | LV邏輯卷管理 |
|---|---|---|---|
| 掃描 | pvscan | vgscan | lvscan |
| 創建 | pvcreate | vgcreate | lvcreate |
| 查看 | pvdisplay | vgdisplay | lvdisplay |
| 洗掉 | pvremove | vgremove | lvremove |
| 擴展 | / | vgextend | lvextend |
| 縮容 | / | vgreduce | lvreduce |
前提
首先查看現有磁盤容量使用狀況(我是在安裝軟體時提示:設備空間不足),
df -hl
lsblk

對于已經創建的虛擬機,想要擴展磁盤容量(不添加新的磁盤)要求該虛擬機沒有快照,所以首先要把快照都洗掉,洗掉后選擇擴容后的磁盤容量大小,

磁盤磁區
fdisk -l #磁盤
fdisk /dev/sda #磁盤磁區

磁盤磁區常見命令(這四個就夠用了):
m #幫助手冊
n #創建新磁區
p #磁區類別
w #保存磁區

磁區退出后重新查看磁盤情況然后重啟,
fdisk -l

重啟后磁盤格式化,
mkfs.ext4 /dev/sda3

創建LVM
vgcreate vg01 /dev/sda3 #這里創建vg會自動創建pv
lvcreate -L 30G vg01 #創建LV


mkfs.ext4 /dev/vg01/lvol0 #格式化LV

掛載
mkdir -p /data
mount -t ext4 /dev/vg01/lvol0 /data

這樣掛載重啟虛擬機之后掛載資訊又不見了,所以需要保存掛載資訊使得下次啟動后能夠自動掛載,最后加一行然后保存重啟,
vim /etc/fstab

還留存一個問題就是掛載點只允許root用戶讀寫檔案,普通用戶沒有權限,目前解決的方法是使用暴力加權限方法,
sudo chmod -R 777 /data
可能遇到的問題
1. 提示掛載需要root權限用戶
切換root用戶,
su
然后遇到第二個問題,su命令切換用戶輸入密碼后,提示:鑒定故障,因為在安裝linux系統時未設定root用戶密碼造成的,需要重新設定密碼后再切換用戶,
sudo passwd root
2. 修改/etc/fstab后無法正常開機
先說原因,原因是修改的內容格式不正確,這里我補充一點有關/etc/fstab檔案的內容,引自相關鏈接,
當系統啟動的時候,系統會自動地從這個檔案讀取資訊,并且會自動將此檔案中指定的檔案系統掛載到指定的目錄,
在這個檔案下,要關注的是六個域,分別為:[file system]、[mount point]、[type] 、[options]、[dump]、[pass],
-
[file sysytem]:用來指定你要掛載的檔案系統的設備名稱或塊資訊,也可以是遠程的檔案系統,做過嵌入式linux開發的朋友都可能知道 mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock (可以是其他IP)命令所代表的意義,它的任務是把IP為192.168.1.56的遠程主機上的/home/nfs/目錄掛載到本機的/mnt/nfs /目錄之下,如果要把它寫進/etc/fstab檔案中,file system這部分應填寫為:/192.168.1.56:/home/nfs/,
如果想把本機上的某個設備(device)掛載上來,寫法如:/dev/sda1、/dev/hda2或/dev/cdrom,其中,/dev/sda1 表示第一個串口硬碟的第一個磁區,也可以是第一個SCSI硬碟的第一個磁區,/dev/hda1表示第一個IDE硬碟的第一個磁區,/dev/cdrom 表示光驅,
此外,還可以label(卷標)或UUID(Universally Unique Identifier全域唯一識別符號)來表示,用label表示之前,先要e2label創建卷標,如:e2label /dir_1 /dir_2,其意思是說用/dir_2來表示/dir_1的名稱,然后,再在/etc/fstab下添加:LABEL=/dir_2 /dir_2,重啟后,系統就會將/dir_1掛載到/dir_2目錄上,對于UUID,可以用vol_id -u /dev/sdax來獲取,比如我想掛載第一塊硬碟的第一個磁區,先用命令vol_id -u /dev/sda11 來取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在 這個域上填寫: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11,Red Hat linux 一般會使用label,而Ubuntu linux 一般會用UUID, -
[mount point]:掛載點,也就是自己找一個或創建一個dir(目錄),然后把檔案系統[file sysytem]掛到這個目錄上,然后就可以從這個目錄中訪問要掛載檔案系統,對于swap磁區,這個域應該填寫:none,表示沒有掛載點,
-
[type]:這里用來指定檔案系統的型別,下面的檔案系統都是目前Linux所能支持的:adfs、befs、cifs、ext3、 ext2、ext、iso9660、kafs、minix、msdos、vfat、umsdos、proc、reiserfs、swap、 squashfs、nfs、hpfs、ncpfs、ntfs、affs、ufs,
-
[options]:這里用來填寫設定選項,各個選項用逗號隔開,由于選項非常多,而這里篇幅有限,所以不再作詳細介紹,如需了解,請用 命令 man mount 來查看,但在這里有個非常重要的關鍵字需要了解一下:defaults,它代表包含了選項rw,suid,dev,exec,auto,nouser和 async,
-
[dump]:此處為1的話,表示要將整個[file sysytem]里的內容備份;為0的話,表示不備份,現在很少用到dump這個工具,在這里一般選0,
-
[pass]:這里用來指定如何使用fsck來檢查硬碟,如果這里填0,則不檢查;掛載點為 / 的(即根磁區),必須在這里填寫1,其他的都不能填寫1,如果有磁區填寫大于1的話,則在檢查完根磁區后,接著按填寫的數字從小到大依次檢查下去,同數字 的同時檢查,比如第一和第二個磁區填寫2,第三和第四個磁區填寫3,則系統在檢查完根磁區后,接著同時檢查第一和第二個磁區,然后再同時檢查第三和第四個磁區,
另外如果不確定是否修改正確,但是又不想靠重啟來驗證,可以嘗試掛載看看是否報錯,
mount -a
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/554311.html
標籤:其他
下一篇:返回列表
