一、Linux磁盤基本信息查看命令
df -h 查看已經(jīng)在使用或掛載的磁盤信息。查看的是文件系統(tǒng)的大小
ubuntu@ubuntu:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 391M 1.5M 390M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop1 71M 71M 0 100% /snap/lxd/21029
/dev/sda2 976M 107M 803M 12% /boot
/dev/loop0 62M 62M 0 100% /snap/core20/1242
/dev/loop2 56M 56M 0 100% /snap/core18/2253
/dev/loop4 33M 33M 0 100% /snap/snapd/12704
/dev/loop3 56M 56M 0 100% /snap/core18/2128
/dev/loop5 43M 43M 0 100% /snap/snapd/14066
/dev/loop6 68M 68M 0 100% /snap/lxd/21835
tmpfs 391M 0 391M 0% /run/user/1000
/dev/sdb2 1.8G 5.6M 1.7G 1% /mnt
關(guān)鍵是重要的系統(tǒng)分區(qū)掛載:
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% /
/dev/sda2 976M 107M 803M 12% /boot
lsblk 查看所有存在的磁盤及分區(qū)(不管使用掛載是否),查看的是磁盤的大小
在此sda為默認(rèn)磁盤,系統(tǒng)也在這塊磁盤之中,操作需謹(jǐn)慎在謹(jǐn)慎,尤其是sda3分區(qū)。
ubuntu@ubuntu:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 61.9M 1 loop /snap/core20/1242
loop1 7:1 0 70.3M 1 loop /snap/lxd/21029
loop2 7:2 0 55.5M 1 loop /snap/core18/2253
loop3 7:3 0 55.4M 1 loop /snap/core18/2128
loop4 7:4 0 32.3M 1 loop /snap/snapd/12704
loop5 7:5 0 42.2M 1 loop /snap/snapd/14066
loop6 7:6 0 67.2M 1 loop /snap/lxd/21835
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 19G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 99M 0 part
└─sdb2 8:18 0 1.9G 0 part /mnt
lsblk -f 查看磁盤分區(qū)格式,有格式才能掛載成功。
ubuntu@ubuntu:~$ lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop0 squashfs 0 100% /snap/core20/1242
loop1 squashfs 0 100% /snap/lxd/21029
loop2 squashfs 0 100% /snap/core18/2253
loop3 squashfs 0 100% /snap/core18/2128
loop4 squashfs 0 100% /snap/snapd/12704
loop5 squashfs 0 100% /snap/snapd/14066
loop6 squashfs 0 100% /snap/lxd/21835
sda
├─sda1
├─sda2 ext4 d5001b8f-61a9-4256-a0b9-a80655679a94 802.7M 11% /boot
└─sda3 LVM2_member AHD2gO-JnY7-HtBk-fazX-yTYH-9oBh-venh4n
└─ubuntu--vg-ubuntu--lv ext4 e5f6d371-d930-4ff3-a798-b01e0ba04d9a 10.9G 36% /
sdb
├─sdb1 ext4 ae939992-ca1f-4acc-878e-500f6ce2371b
└─sdb2 ext4 e9278c58-39b8-4825-99f6-d055ca818ad0 1.7G 0% /mnt
分區(qū)無格式的,通過以下命令格式化分區(qū)格式。
#格式化/dev/sdb2為ext4格式。
sudo mkfs.ext4 /dev/sdb2
#或者
sudo mkfs -t ext4 /dev/sdb2
二、添加新硬盤直接掛載,或分區(qū)后掛載
1:直接掛載整個硬盤
添加一塊新硬盤,注:是添加一塊新硬盤,不是擴容硬盤。
添加后的硬盤名字信息為:sdb,sbc,sdd....以此類推。
如這里添加一塊sdb,沒有任何操作,是沒法掛載。
ubuntu@ubuntu:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 61.9M 1 loop /snap/core20/1242
loop1 7:1 0 70.3M 1 loop /snap/lxd/21029
loop2 7:2 0 55.5M 1 loop /snap/core18/2253
loop3 7:3 0 55.4M 1 loop /snap/core18/2128
loop4 7:4 0 32.3M 1 loop /snap/snapd/12704
loop5 7:5 0 42.2M 1 loop /snap/snapd/14066
loop6 7:6 0 67.2M 1 loop /snap/lxd/21835
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 19G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /
sdb 8:16 0 20G 0 disk
格式化,掛載。
#格式化硬盤
sudo mkfs.ext4 /dev/sdb
#掛載硬盤
sudo mount /dev/sdb /mnt/
#查看掛載信息
df -h
ubuntu@ubuntu:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 391M 1.5M 390M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop1 71M 71M 0 100% /snap/lxd/21029
/dev/sda2 976M 107M 803M 12% /boot
/dev/loop0 62M 62M 0 100% /snap/core20/1242
/dev/loop2 56M 56M 0 100% /snap/core18/2253
/dev/loop4 33M 33M 0 100% /snap/snapd/12704
/dev/loop3 56M 56M 0 100% /snap/core18/2128
/dev/loop5 43M 43M 0 100% /snap/snapd/14066
/dev/loop6 68M 68M 0 100% /snap/lxd/21835
tmpfs 391M 0 391M 0% /run/user/1000
/dev/sdb 20G 45M 19G 1% /mnt
最簡單的方式,掛載成功,完成。
2:硬盤分區(qū)后掛載分區(qū)
注:分區(qū)前,確保此硬盤沒有重要數(shù)據(jù),或者數(shù)據(jù)已備份。
先取消掛載,取消掛載后再分區(qū)。不取消掛載,也可以分區(qū),但是一旦分區(qū)保存完成,此硬盤格式為無格式狀態(tài),雖然你還可以在原來掛載目錄操作,但機器重啟后,掛載自動取消,無法在掛載整個硬盤上去,原整個硬盤數(shù)據(jù)也全部沒有了。分區(qū)也只有硬盤取消掛載的情況下,格式化分區(qū)才能生效,同時才能掛載上去。
sudo umount /mnt/
分區(qū)命令為 fdisk , fdisk -l 可查看所有已分區(qū)
#對sdb硬盤分區(qū)
sudo fdisk /dev/sdb
相關(guān)操作參數(shù)輸入:
#輸入m查看命令操作
Command (m for help): m
#輸入n添加新分區(qū)
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
#輸入P,類型主分區(qū),只能4個主分區(qū),擴展分區(qū)一般作用多為創(chuàng)建邏輯分區(qū)。擴展分區(qū)無法直接被使用的。
Select (default p): p
#主分區(qū)號碼,默認(rèn)即可,從1到4的順序
Partition number (1-4, default 1):
#分區(qū)開始扇區(qū),默認(rèn)2048,不要小于2048,否則有些功能異常,不支持2048以下
First sector (2048-41943039, default 2048): 2048
#接受扇區(qū),即多大空間的分區(qū),自己換算,這里20000000大概為9.5G左右。
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 20000000
Created a new partition 1 of type 'Linux' and of size 9.5 GiB.
#w保存分區(qū)
Command (m for help): w
The partition table has been altered.
Syncing disks.
#p打印顯示已存在分區(qū)
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfc5ea7ec
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux
#q退出
有些系統(tǒng)需要重啟生效,可以不重啟生效的命令
#更新內(nèi)核分區(qū)表
sudo partprobe
分區(qū)后的名稱,以此類推為sdb1,sdb2,sdb3,sdb4.......
格式化,掛載分區(qū)
sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 /mnt/
分區(qū)掛載完成,可以操作寫入數(shù)據(jù)了
3:注意事項(擴展)
注:請不要在分區(qū)下(如sdb1,sdb2),在創(chuàng)建子分區(qū)。雖然創(chuàng)建出來分區(qū)有名稱類似sdb2p1,sdb2p2,sdb2p3,sdb2p4的名稱,保存也成功,但是系統(tǒng)不識別sudo fdisk -l,或者lsblk,都查看不到,沒有生效。唯一的作用就是將此分區(qū),格式變成無格式狀態(tài),需重新格式化掛載。數(shù)據(jù)也完了。
本人曾經(jīng)小白失敗經(jīng)歷分享:
一次查看硬盤,覺得sda(主硬盤,系統(tǒng)分區(qū)都在這里)下面分區(qū)挺大的,尤其是sda3,如下:
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 499G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 499G 0 lvm /
覺得可以從sda3中在分區(qū)出來一點空間掛載, sudo fdisk /dev/sda3 然后一頓操作。
重啟后,玩完,進(jìn)不了系統(tǒng),因為ubuntu--vg-ubuntu--lv根目錄 / 被分區(qū)后,無法識別了,只能格式化此分區(qū)。如果格式化此分區(qū),數(shù)據(jù)也全沒了,關(guān)鍵還進(jìn)不去系統(tǒng)了。當(dāng)時一身冷汗,還好此服務(wù)器沒部署服務(wù)。所以重裝系統(tǒng)了。
這次經(jīng)歷注意兩點:
- 1:不要輕易操作sda主硬盤下的分區(qū)。
- 2:不要在分區(qū)下,在創(chuàng)建子分區(qū)。
三、擴展分區(qū)與邏輯分區(qū)
分區(qū)的時候有主分區(qū)(primary)和擴展分區(qū)(extended),主分區(qū)都知道,那擴展分區(qū)什么時候用呢?
主分區(qū)只能存在4個,無法再創(chuàng)建了,如果想創(chuàng)建多于4個主分區(qū),這時候就需要創(chuàng)建擴展分區(qū),通過擴展分區(qū)創(chuàng)建邏輯分區(qū)就可以使用了,和主分區(qū)使用沒啥區(qū)別。注:extended無法直接使用,不可格式化,不可掛載,必須創(chuàng)建邏輯分區(qū)后才能使用。擴展分區(qū)下可創(chuàng)建多個邏輯分區(qū)。
創(chuàng)建擴展分區(qū)和邏輯分區(qū)
#分區(qū)
sudo fdisk /dev/sdb
創(chuàng)建擴展分區(qū),Partition type選擇e即可,其他步驟一致。
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2):
First sector (20000001-41943039, default 20000768):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (20000768-41943039, default 41943039): 30000000
Created a new partition 2 of type 'Extended' and of size 4.8 GiB.
#p查看擴展分區(qū)sdb2完成。
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfc5ea7ec
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux
/dev/sdb2 20000768 30000000 9999233 4.8G 5 Extended
創(chuàng)建邏輯分區(qū),Partition type選擇這時只有p和l選擇,選擇l(邏輯分區(qū)),其他步驟一致
Command (m for help): n
Partition type
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (20002816-30000000, default 20002816):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (20002816-30000000, default 30000000):
Created a new partition 5 of type 'Linux' and of size 4.8 GiB.
#p查看邏輯分區(qū)sdb5完成。
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfc5ea7ec
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux
/dev/sdb2 20000768 30000000 9999233 4.8G 5 Extended
/dev/sdb5 20002816 30000000 9997185 4.8G 83 Linux
擴展分區(qū)默認(rèn)sdb5開始命名,表示在4個主分區(qū)以后。邏輯分區(qū)好后,可以格式化掛載了。
sudo mkfs.ext4 /dev/sdb5
sudo mount /dev/sdb5 /mnt/
df -h
查看結(jié)果如下,掛載成功,可以使用了。
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 9.5G 0 part
├─sdb2 8:18 0 1K 0 part
└─sdb5 8:21 0 4.8G 0 part /mnt
四、標(biāo)準(zhǔn)分區(qū)擴容(非LVM)
在同一塊硬盤下的標(biāo)準(zhǔn)擴容,相對比較簡單。步驟為刪除需要擴容的分區(qū)編號,重新分區(qū)編號,重新掛載即可。
這里以sdb1為例,已掛載至/mysql路徑,總共有20G,還有將近10G空閑,將空閑的分配給sdb1。
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 9.8G 0 part /mysql
為了測試數(shù)據(jù)完整性,在sdb1創(chuàng)建一個文件test.txt,
cd /mysql/
sudo vim test.txt
內(nèi)容為test,mysql,12345678。
ubuntu@ubuntu:/$ cat /mysql/test.txt
test,mysql,12345678
取消掛載
sudo umount /mysql
重新分區(qū)
sudo fdisk /dev/sdb
刪除分區(qū),再重新分區(qū)
#刪除分區(qū),選擇所要擴展分區(qū)的編號,這里只有1個,默認(rèn)刪除第一個sdb1.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
#重新分區(qū)
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
#選擇主分區(qū)
Select (default p): p
#編號1,還是原來的sdb1.
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
#結(jié)束大小不要小于原來的大小,否則容易造成數(shù)據(jù)改變或丟失,原來時10G,這里改為大概15G
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 30780000
Created a new partition 1 of type 'Linux' and of size 14.7 GiB.
Partition #1 contains a ext4 signature.
#按 N 保留 xfs 簽名,移除的話分區(qū)的 UUID 會變更。
Do you want to remove the signature? [Y]es/[N]o: n
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
擴容完成,注:不需要重新格式化,否則數(shù)據(jù)丟失,直接掛載使用即可。
掛載查看原來數(shù)據(jù)是否還在,原來數(shù)據(jù)還在,沒有改變。至于為什么,涉及到磁盤的構(gòu)成,有柱面,扇區(qū),簇,編號之類的,有興趣自己可以研究。
ubuntu@ubuntu:/$ sudo mount /dev/sdb1 /mysql/
ubuntu@ubuntu:/mysql$ cat mysql/test.txt
test,mysql,12345678
lsblk查看大小,sdb1由原來的10G左右,擴容為15G左右。擴容完成
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 14.7G 0 part /mysql
五、系統(tǒng)根分區(qū)(LVM)擴容
主要擴容系統(tǒng)根分區(qū)。如以下的系統(tǒng)的sda3,ubuntu--vg-ubuntu--lv根分區(qū)。
需謹(jǐn)慎操作,涉及到系統(tǒng)相關(guān)磁盤分區(qū)。
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 19G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /
1:物理卷,卷組,邏輯卷
擴展之前。需要了解的三個概率:物理卷,卷組,邏輯卷。引入這個概念,可以解除物理隔離的限制。
- 物理卷:Physical volume 簡稱 PV
物理卷在邏輯卷管理器中屬于最底層的,任何的邏輯卷和卷組都必需依靠物理卷來建立,物理卷可以是一個完整的硬盤,也可以是硬盤中的某一個分區(qū)。
卷組是建立在物理卷之上,一個卷組中可以包含一個或者多個物理卷。
- 邏輯卷 - Logical volume 簡稱 LV
邏輯卷類似于非 LVM 系統(tǒng)中的硬盤分區(qū),在邏輯卷之上可以建立文件系統(tǒng) (比如 /home 或者 /usr 等)。
加上還有其他元素(有興趣自己深究),一起構(gòu)成LVM(Logical Volume Manager)邏輯卷管理。
總結(jié):多個磁盤/分區(qū)/raid-->多個物理卷PV-->合成卷組VG-->從VG劃分出邏輯卷LV-->格式化LV,掛載使用。
功能 | PV管理命令 | VG管理命令 | LV管理命令 |
scan 掃描 | pvscan | vgscan | lvscan |
create 創(chuàng)建 | pvcreate | vgcreate | vcreate |
display 顯示 | pvdisplay | vgdisplay | lvdisplay |
remove 移除 | pvremove | vgremove | lvremove |
extend 擴展 | | vgextend | lvextend |
reduce 減少 | | vgreduce | lvreduc |
舉個通俗例子:多個磁盤/分區(qū)就是多袋小麥,創(chuàng)建物理卷(PV)就是分別磨成面粉,合成卷組(VG)就是把面粉和成一大團(tuán)面團(tuán),邏輯卷(LV)就是分出去的一個個小坨小面團(tuán)分別做包子餃子之類其他功能的。想要擴容給小面團(tuán)(LV),就需要從大面條(VG)里面取出來補。需要擴容的根分區(qū)就是那一坨小面團(tuán)。
2:同一塊硬盤擴容根分區(qū)
如下:總磁盤30G大小,根分區(qū)20G,有10G空閑需要分配給ubuntu--vg-ubuntu--lv根分區(qū)。
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 19G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /
從根分區(qū)的邏輯卷管理(lvm)的名稱可以看出,已存在的卷組(VG)為ubuntu--vg,和邏輯卷(LV)為ubuntu--lv,所有想要擴容,只要增加卷組(VG)的空間,然后分配給邏輯卷(LV)即可。
2.1:查看卷組(VG)和邏輯卷(LV)信息
也可以自行查看存在的卷組(VG)和邏輯卷(LV)。
#查看卷組,F(xiàn)ree PE 為空閑可分配的空間。
ubuntu@ubuntu:~$ sudo vgdisplay
[sudo] password for ubuntu:
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID Gvpatz-SSYp-qfrV-5AGf-BXAD-aVC7-XZlewX
#查看邏輯卷
ubuntu@ubuntu:~$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID XND7LS-kWJL-LISf-HmrN-eK7S-X8ea-2Lazo7
LV Write Access read/write
LV Creation host, time ubuntu-server, 2021-11-27 09:39:38 +0000
LV Status available
# open 1
LV Size <19.00 GiB
Current LE 4863
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
2.2:創(chuàng)建分配分區(qū)(獲取小麥原材料)
為了給增加卷組(VG)的空閑可用空間,先創(chuàng)建一個分區(qū),將剩下的分配給分區(qū)。
sudo fdisk /dev/sda
n分區(qū),全部默認(rèn)回車即可,記住主分區(qū)為4,即sda4。
Command (m for help): n
Partition number (4-128, default 4):
First sector (41940992-62914526, default 41940992):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (41940992-62914526, default 62914526):
Created a new partition 4 of type 'Linux filesystem' and of size 10 GiB.
Command (m for help): p
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0EC75B7E-5AD4-4971-B452-57826F74E4FD
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 2101247 2097152 1G Linux filesystem
/dev/sda3 2101248 41940991 39839744 19G Linux filesystem
/dev/sda4 41940992 62914526 20973535 10G Linux filesystem
Command (m for help): w
The partition table has been altered.
Syncing disks.
2.3:創(chuàng)建物理卷PV(磨成面粉)
sudo pvcreate /dev/sda4
顯示如下:
ubuntu@ubuntu:~$ sudo pvcreate /dev/sda4
Physical volume "/dev/sda4" successfully created.
注意:老的Linux在創(chuàng)建PV時,需要將分區(qū)類型改為Linux
LVM(8e)。但新的系統(tǒng)已經(jīng)非常智能,即使默認(rèn)的Linux分區(qū)(83),也可以創(chuàng)建PV。具體過程是fdisk 過程中,選擇參數(shù)
l:查看所有分區(qū)類型代碼,及 t:修改分區(qū)類型代碼,選擇代碼8e類型即可。
2.4:添加到卷組VG中(大面團(tuán))
將物理卷PV添加到卷組VG中(面粉加到大面團(tuán)中),卷組VG這里已有,上面查詢得知名稱為ubuntu-vg
sudo vgextend ubuntu-vg /dev/sda4
顯示如下:
ubuntu@ubuntu:~$ sudo vgextend ubuntu-vg /dev/sda4
Volume group "ubuntu-vg" successfully extended
再次查看卷組VG,F(xiàn)ree PE / Size 已經(jīng)有了10G的空閑空間可分配了。
ubuntu@ubuntu:~$ sudo vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 28.99 GiB
PE Size 4.00 MiB
Total PE 7422
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 2559 / <10.00 GiB
VG UUID Gvpatz-SSYp-qfrV-5AGf-BXAD-aVC7-XZlewX
2.5:分配空間給邏輯卷根LV(小面團(tuán))
從卷組VG分配空間給邏輯卷根LV目錄(從大面團(tuán)取出可用的給需要的小面團(tuán)),上面可查詢可知,LV名稱為ubuntu-lv,擴容命令及參數(shù)參考如下:
#分配10G ,-L指定邏輯卷的大小,單位為“kKmMgGtT”字節(jié)
sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv
#或者100%空閑分配, -l指定邏輯卷的大?。↙E數(shù))
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
#或者邏輯卷擴展至30G
sudo lvextend -L 30G /dev/ubuntu-vg/ubuntu-lv
#以上都可以加上參數(shù)-r ,將邏輯卷的文件系統(tǒng)擴展(如:房子建好了,需要裝修,不需要指定大?。?
剛開始不夠10G,多少有點誤差,所有分配9.9G就可以了。顯示successfully成功,顯示如下:
ubuntu@ubuntu:~$ sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv
Insufficient free space: 2560 extents needed, but only 2559 available
ubuntu@ubuntu:~$ sudo lvextend -L +9.9G /dev/ubuntu-vg/ubuntu-lv
Rounding size to boundary between physical extents: 9.90 GiB.
Size of logical volume ubuntu-vg/ubuntu-lv changed from <19.00 GiB (4863 extents) to <28.90 GiB (7398 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
2.6:resize2fs重新計算磁盤大小
執(zhí)行之后并不會立馬生效需要執(zhí)行,需要重新計算磁盤大小。這時候只能查看lsblk磁盤已增大,但是df -h里面文件系統(tǒng)沒有變化,所以需要操作這一步生效。
resize2fs命令是用來增大或者收縮未加載的“ext2/ext3/ext4”文件系統(tǒng)的大小。
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
顯示如下成功:
ubuntu@ubuntu:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 4
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 7575552 (4k) blocks long.
2.7:查看磁盤大小
df -h或者lsblk可查看,已經(jīng)擴容成功為30G.
df -h
/dev/mapper/ubuntu--vg-ubuntu--lv 29G 6.8G 21G 26% /
lsblk
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
├─sda3 8:3 0 19G 0 part
│ └─ubuntu--vg-ubuntu--lv 253:0 0 28.9G 0 lvm /
└─sda4 8:4 0 10G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 28.9G 0 lvm /
3:添加硬盤擴容根分區(qū)
3.1:添加新硬盤sdb
lsblk查看已顯示磁盤
sdb 8:16 0 20G 0 disk
3.2:創(chuàng)建物理卷PV
你可以分區(qū)后創(chuàng)建物理卷,也可以整塊硬盤創(chuàng)建物理卷PV,這里直接將整塊創(chuàng)建PV,將所有空間給系統(tǒng)根分區(qū)擴容。
sudo pvcreate /dev/sdb
下面步驟與上面添加類似
3.3:添加到卷組VG
sudo vgextend ubuntu-vg /dev/sdb
#查看free PE時候添加成功。
sudo vgdisplay
3.4:分配空間給邏輯卷根LV
sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv
3.5:重新計算磁盤,分配給系統(tǒng)文件
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
3.6:查看磁盤大小
df -h 和 lsblk 查看大小
ubuntu@ubuntu:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 391M 1.5M 390M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 39G 6.9G 30G 19% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop0 56M 56M 0 100% /snap/core18/2128
/dev/loop2 71M 71M 0 100% /snap/lxd/21029
/dev/loop1 62M 62M 0 100% /snap/core20/1242
/dev/sda2 976M 107M 803M 12% /boot
/dev/loop3 43M 43M 0 100% /snap/snapd/14066
/dev/loop4 68M 68M 0 100% /snap/lxd/21835
/dev/loop5 56M 56M 0 100% /snap/core18/2253
/dev/loop6 33M 33M 0 100% /snap/snapd/12704
tmpfs 391M 0 391M 0% /run/user/1000
ubuntu@ubuntu:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.4M 1 loop /snap/core18/2128
loop1 7:1 0 61.9M 1 loop /snap/core20/1242
loop2 7:2 0 70.3M 1 loop /snap/lxd/21029
loop3 7:3 0 42.2M 1 loop /snap/snapd/14066
loop4 7:4 0 67.2M 1 loop /snap/lxd/21835
loop5 7:5 0 55.5M 1 loop /snap/core18/2253
loop6 7:6 0 32.3M 1 loop /snap/snapd/12704
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
├─sda3 8:3 0 19G 0 part
│ └─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /
└─sda4 8:4 0 10G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /
sdb 8:16 0 20G 0 disk
└─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /
六、縮減LVM空間
重要事情說三遍:
正式環(huán)境,非必要情況或者不熟悉的情況下,請勿操作,寧愿空著,也別冒險
正式環(huán)境,非必要情況或者不熟悉的情況下,請勿操作,寧愿空著,也別冒險
正式環(huán)境,非必要情況或者不熟悉的情況下,請勿操作,寧愿空著,也別冒險
xfs類型不可以直接縮減,只擴不減。如果是ext2,ext3,ext4可以在線縮減,如果xfs盤要縮小就要刪除后重新添加
1:非系統(tǒng)根分區(qū)LVM縮容
四步,這里以名稱為 lv 為例子,這里是縮減至多少大小,不是縮減了多少。
1、取消掛載
系統(tǒng)根分區(qū)無法在線取消掛載,所以這時請勿對系統(tǒng)根分區(qū)執(zhí)行任何縮容操作
系統(tǒng)根分區(qū)無法在線取消掛載,所以這時請勿對系統(tǒng)根分區(qū)執(zhí)行任何縮容操作
系統(tǒng)根分區(qū)無法在線取消掛載,所以這時請勿對系統(tǒng)根分區(qū)執(zhí)行任何縮容操作
umount /lv/ #取消掛載目錄
2、e2fsck檢查修復(fù)磁盤完整性
e2fsck -f /dev/vg0/lv0
3、縮小系統(tǒng)文件空間,即df -h查看的空間
不取消掛載,這步會報錯,注:一定先減文件系統(tǒng),再減邏輯卷
resize2fs /dev/vg0/lv0 10G
4、縮小磁盤空間,即lsblk查看的空間
不執(zhí)行上面的操作,直接執(zhí)行這步,雖然成功,但是會操作數(shù)據(jù)丟失,系統(tǒng)無法啟動。
lvreduce -L 10G /dev/vg0/lv0
5、重新掛載
mount -a
最后查看lvs空間
lvs
擴展:
加上參數(shù)-r 可以一步到位,即將上面的3和4步驟一起執(zhí)行。
lvreduce命令使用-L選項減少空間,-r選項減少文件系統(tǒng)空間,實現(xiàn)動態(tài)調(diào)整(這是ext4文件系統(tǒng))
lvreduce -L 10G -r /dev/vg0/lv0
2:系統(tǒng)根分區(qū)LVM縮容
跟上面步驟一致,唯一的區(qū)別是沒法在線取消掛載,所以需要進(jìn)入救援模式(單用戶模式)
救援模式分兩種,一種是正常啟動系統(tǒng)進(jìn)入,另一種是加載鏡像是進(jìn)入。
縮容系統(tǒng)根分區(qū)必須是掛載鏡像時的救援模式才可以操作。
1、正常啟動系統(tǒng)進(jìn)入救援模式
啟動按shift鍵,出現(xiàn)選擇系統(tǒng)界面,按e。找到以單詞 linux 開頭的行,并在該行的末尾添加以下內(nèi)容(要到達(dá)末尾,只需按下 CTRL+e 或使用 END 鍵或左右箭頭鍵):
systemd.unit=rescue.target
添加完成后,只需按下 CTRL+x 或 F10 即可繼續(xù)啟動救援模式。幾秒鐘后,你將以 root 用戶身份進(jìn)入救援模式(單用戶模式)
2、掛載iso或者啟動盤進(jìn)入救援模式
系統(tǒng)不同,進(jìn)入也不同,本人ubuntu20.04,沒有找到合適的方式,其他的系統(tǒng)自行研究