是否可以調整主分區的大小?
我的公司正在使用 CentOS 執行雲託管。過去,當它達到最大 SSD 容量時,他們會對其進行升級。
據我了解,他們通過創建主分區並將其安裝在 /. 所以我們以 sda 上的 4 個主分區結束。
現在我再次將空間從 300GB 升級到 400GB,我需要分配這 100 GB 的額外空間。
我能做的最好的事情是添加這 100GB 嗎?
我收集的一些資訊:
分開 /dev/sda > 列印:
Numero Inicio Fin Tamaño Typo Sistema de ficheros Banderas 1 1049kB 525MB 524MB primary xfs arranque 2 525MB 85,9GB 85,4GB primary lvm 3 85,9GB 129GB 42,9GB primary lvm 4 129GB 322GB 193GB primary lvm
fdisk /dev/sda >p:
Disk /dev/sda: 429.5 GB, 429496729600 bytes, 838860800 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Identificador del disco: 0x000a2b1e Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 167772159 83373056 8e Linux LVM /dev/sda3 167772160 251658239 41943040 8e Linux LVM /dev/sda4 251658240 629145599 188743680 8e Linux LVM
df -h:
S.ficheros Tamaño Usados Disp Uso% Montado en /dev/mapper/centos-root 298G 290G 8,4G 98% / devtmpfs 7,8G 0 7,8G 0% /dev tmpfs 7,8G 0 7,8G 0% /dev/shm tmpfs 7,8G 12M 7,8G 1% /run tmpfs 7,8G 0 7,8G 0% /sys/fs/cgroup /dev/sda1 497M 187M 311M 38% /boot tmpfs 1,6G 0 1,6G 0% /run/user/0
lsblk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 300G 0 disk ├─sda1 8:1 0 500M 0 part /boot ├─sda2 8:2 0 79,5G 0 part │ ├─centos-swap 253:0 0 2G 0 lvm [SWAP] │ └─centos-root 253:1 0 297,5G 0 lvm / ├─sda3 8:3 0 40G 0 part │ └─centos-root 253:1 0 297,5G 0 lvm / └─sda4 8:4 0 180G 0 part └─centos-root 253:1 0 297,5G 0 lvm / sr0 11:0 1 1024M 0 rom
與在這個問題上看到的評論相反,因為您的分區表是
Disk label type: dos
,而不是Disk label type: gpt
,如果不先刪除物理分區以使其充當邏輯分區容器,就不可能添加邏輯分區,因為只有 4 個插槽用於物理MBR 中的分區。在不失去/損壞已經存在的數據的情況下執行此操作並非易事,因為邏輯分區的佈局與物理分區的對齊方式並不完全相同:最好不要。你可以做以前可以做的事情(例如在第一個 LVM 分區上,而不是添加新分區),使用正在執行的系統(至少如果使用
xfs
:CentOS 的預設值,或者ext4
可能還有其他幾個文件系統),無需重新啟動或停機時間。
- 有備份。總有可能出錯(錯別字……)。
- 擴大磁碟分區
有擴大空間的分區是最後一個(因為它的塊至少在這裡,也佔據了磁碟上的最後一個位置)。這是我回答中最棘手的部分:使用
fdisk
,注意分區 4 的開頭,並刪除分區 4。請注意,此操作目前僅在記憶體中完成。重新創建一個“新的”主分區 4(如上所述,不要嘗試任何邏輯分區),重用相同的分區開始:這應該是251658240
. 讓它提供整個剩餘尺寸以使其更大。警告:較新
fdisk
的工具可能會提供擦除檢測到的分區簽名,如果現在詢問或寫入磁碟時不要這樣做:它檢測到您目前的 PV/LVM 簽名。放回分區類型
8e
(可能只是裝飾性的)。如果一切正常,寫入新的分區表並退出fdisk
。更新:要清楚,上面的操作首先在記憶體中完成。在相同的起始位置刪除和重新創建分區 4,在
fdisk
的記憶體中完成的總體結果是擴大了分區 4。當將其從fdisk
磁碟送出時,只有 MBR(即:磁碟的第一個扇區由/dev/sda
) 被重寫:儲存在扇區 251658240 及以後的數據沒有改變。更高級別(GUI… 甚至parted
)工具會提供放大選項(resizepart
forparted
),但最終結果是相同的。分區 4 從未在任何時候從磁碟中刪除(即使它被錯誤地從磁碟中刪除,這仍然不會是致命的,只要它在同一位置重新創建並且在作業系統抱怨之前)。
- 更新分區新大小的核心視圖
因為分區正在使用(由設備映射器等)
fdisk
肯定會抱怨它不能讓系統重新讀取分區表並且舊的仍在使用中。為避免重新啟動,只需使用正確的工具來更新更改的內容:partx
. 這很簡單,因為只有分區的大小發生了變化。# cat /sys/class/block/sda4/size 188743680 # partx -u /dev/sda4 $ cat /sys/class/block/sda4/size [bigger value]
驗證大小現在是否已增加並與使用 看到的結果相匹配
fdisk
。否則,出現問題,可能需要重新啟動。
- 放大 PV、LV、文件系統。一些 LVM 選項可能能夠在更少的命令中連結這些選項,但這裡是所有步驟
如果沒有選項,它將使用所有可用空間。
# pvresize /dev/sda4
PV 上的額外空間立即在 VG 上可供 LV 使用。
# lvextend -l +100%FREE /dev/centos/root # or any other choice
然後對於 xfs:
# xfs_growfs / # remember that xfs may never shrink back
或 ext4:
# resize2fs /dev/centos/root # and ext4 can't be shrunk back while mounted