你不能直接將一個分區分配給/dev/mapper/centos-root
,因為這是一個邏輯卷(屬于 LVM 系統)。不過,你可以通過以下步驟將/dev/sda3
添加到現有卷組或創建新的邏輯卷:
確認磁盤和分區信息
首先檢查分區是否已格式化以及是否包含數據:
lsblk # 查看新硬盤路徑(假設為 /dev/sda3)
df -h # 查看已掛載的文件系統
方案 A:將分區添加到現有 LVM 卷組(推薦)
如果你的系統使用 LVM,且卷組空間不足,可以將/dev/sda3
添加到現有卷組(如centos
):
**步驟 1:**創建物理卷(PV)
sudo pvcreate /dev/sda3
步驟 2:查看卷組
sudo vgs # 確認卷組總容量
sudo pvs # 查看物理卷列表
步驟 3:將 PV 添加到卷組(VG)
centos 為卷組名
sudo vgextend centos /dev/sda3
步驟 4:擴展邏輯卷(LV)
擴展centos-root
邏輯卷:
sudo lvextend -L +50G /dev/mapper/centos-root # 增加50GB
# 或擴展至最大可用空間:
sudo lvextend -l +100%FREE /dev/mapper/centos-root
參數說明:
-l +100%FREE
:將所有空閑空間分配給目標邏輯卷- 若只需分配部分空間(如 50GB),可使用:
-L +50G
步驟 5:擴展文件系統
根據文件系統類型執行:
# 若為XFS文件系統:
sudo xfs_growfs /dev/mapper/centos-root# 若為ext4文件系統:
sudo resize2fs /dev/mapper/centos-root
最后效果:
lsblk
centos-root 就是我的根目錄
原理
為什么centos-root 在兩個物理分區(sda2和sda3)下?
這是因為你的系統使用了邏輯卷管理(LVM)技術。在 LVM 中,邏輯卷可以跨越多個物理卷,從而實現靈活的存儲管理和空間擴展
以下是具體解釋:
- LVM 的基本概念
- 物理卷(PV):是 LVM 的基本存儲單元,通常對應一個物理分區,如
/dev/sda2
和/dev/sda3
都可以被創建為物理卷。 - 卷組(VG):由一個或多個物理卷組成,它就像一個存儲池,包含了所有物理卷的存儲空間。
- 邏輯卷(LV):從卷組中劃分出來的邏輯存儲單元,可將其視為一個虛擬的分區,如
centos - root
就是一個邏輯卷,它可以被格式化并掛載到文件系統,供用戶存儲數據。
- 物理卷(PV):是 LVM 的基本存儲單元,通常對應一個物理分區,如
- 為何出現兩個分區下都有 centos - root:
/dev/sda2
和/dev/sda3
這兩個分區都被添加到了同一個卷組中(很可能是默認的centos
卷組)。centos - root
邏輯卷從這個卷組中分配了空間,且其存儲空間跨越了/dev/sda2
和/dev/sda3
這兩個物理分區,所以你會看到centos - root
在兩個分區下都有顯示,這是 LVM 實現存儲資源整合和靈活分配的一種方式。
這種方式的好處是便于管理員根據實際需求動態調整邏輯卷的大小,當一個邏輯卷空間不足時,可以將其他未使用的物理卷添加到卷組中,然后再將卷組中的空閑空間分配給邏輯卷,而無需像傳統分區那樣受到固定分區大小的限制
同一卷組(VG)中的所有物理卷(PV)的空間會被整合為一個統一的 “存儲池”,而邏輯卷(LV)則從這個共享的存儲池中分配空間。
具體來說:
- 卷組(VG)是 “容器”,它將多個物理卷(如
/dev/sda2
、/dev/sda3
)的空間合并成一個整體,消除了物理分區的邊界。 - 邏輯卷(LV)如
centos-root
、centos-swap
,都是從這個卷組的共享空間中劃分出來的,它們的空間來源是整個卷組的空閑容量,而非某個特定的物理分區。 - 多個邏輯卷可以 “共享” 卷組中的總空間,只要卷組有剩余空間,就可以動態擴展任意邏輯卷的大小(前提是文件系統支持)。
舉個例子:
假設卷組centos
由/dev/sda2
(49G)和/dev/sda3
(78G)組成,總容量約為 127G。
centos-root
分配了 122G,centos-swap
分配了 5G,兩者總和剛好接近卷組總容量(127G),說明卷組空間已被充分利用。- 如果未來
centos-root
需要擴容,只要卷組有新增的物理卷(如再添加一個分區),就能直接從卷組中分配空間給它,無需關心新增空間來自哪個物理設備。
這種機制正是 LVM 的核心優勢:打破物理設備的限制,實現存儲空間的靈活管理和動態調整。
移除這塊硬盤
如果后續需要移除這塊硬盤,可按以下步驟操作:
# 縮小邏輯卷和文件系統(需提前備份數據)
sudo lvreduce -L -50G /dev/mapper/centos-root
sudo xfs_growfs / # 調整文件系統大小# 移除物理卷
sudo vgreduce centos /dev/sdb
sudo pvremove /dev/sdb
到此,擴容已經完畢