如何在 Linux 虛擬機器中擴展磁碟分割區

虛擬磁碟空間不足可能會導致各種問題,包括效能不佳。例如,您設定了一個虛擬磁碟、建立分區,並在其中一個分區上安裝了客體作業系統。隨後您發現磁碟空間不足。 此時,您應擴充磁碟容量。

VMware 為 CPU、記憶體和磁碟等虛擬硬體提供靈活的配置選項,讓您能夠擴充現有虛擬磁碟的大小。請注意,由於擴充虛擬磁碟後會新增未分配的磁碟空間,因此必須手動調整分割區的大小。請繼續閱讀,了解在不同設定下調整分割區大小的各種方法。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

先決條件

在調整虛擬磁碟及其分區的大小之前,請確保符合以下條件:

  • 虛擬機器運作時,可以增加虛擬磁碟的大小。不過,您可能需要重新啟動虛擬機器,才能讓作業系統偵測到已調整大小的磁碟。
  • 若要調整虛擬磁碟的大小,該虛擬磁碟不得含有快照。若您的虛擬機器有快照,請在調整虛擬磁碟大小及變更磁碟分割區大小之前,先刪除(或整合)這些快照。
  • 建議您在對磁碟進行操作前,先備份您的虛擬機器。若在設定過程中發生失誤,變更磁碟分割區大小可能會帶來風險。

在 Linux Ubuntu 中擴展磁碟分割區

在本節中,我們將以 Ubuntu 為例,說明如何在擴展虛擬磁碟後,於 Linux 中擴展分割區。您可以在 Ubuntu 18、19、20、22 及更新版本上使用此工作流程。 調整磁碟分割區大小及擴展 Linux 分割區的方法有多種。您可以使用命令列工具或具圖形使用者介面的工具。首先,我們將在 ESXi 伺服器上擴展 Linux 虛擬機器的虛擬磁碟。此操作將透過 ESXi 命令列進行,但您亦可使用 VMware vSphere Client 或 VMware Host Client 執行。

在 ESXi 命令列中調整虛擬磁碟的大小

首先,請在 ESXi 的直接主控台使用者介面 (DCUI) 或 VMware Host Client 中啟用 ESXi 指令列介面與 Bash 主控台。接著連線至 ESXi 命令列介面 透過 SSH 或直接在 ESXi 主機上開啟 ESXi 命令列介面。

  1. 請前往虛擬機器所需虛擬磁碟的位置:

    cd /vmfs/volumes/datastore2/Ubuntu19/

  2. 檢查目錄的內容及檔案的大小:

    ls -al

    Checking the virtual disk size on an ESXi server

    我們有一項 精簡配置 虛擬磁碟 Ubuntu19.vmdk 其最大大小為 20 GB,而目前的虛擬磁碟大小約為 5.6 GB(即儲存於虛擬磁碟上的檔案總大小)。檔案大小在命令列中以位元組為單位顯示。

  3. 執行此指令,將虛擬磁碟從 20 GB 擴充至 30 GB。請輸入您希望虛擬磁碟達到的目標大小,而非您希望增加的增量大小。在本範例中,我們將 10 GB 的虛擬磁碟擴充至 30 GB,使用如下指令:

    vmkfstools -X 30G Ubuntu19.vmdk

    請選擇一個 vmdk 磁碟檔案,而非 -flat.vmdk. 請根據您的需求和設定,輸入所需的磁碟大小及虛擬磁碟檔案。G 代表千兆位元組、M 代表百萬位元組、K 代表千位元組、T 代表兆位元組,以此類推。若您希望在增加大小後獲得一個預先清零的厚磁碟,請使用類似以下的指令:

    vmkfstools -X 30G -d eagerzeroedthick vm-disk-name.vmdk.

  4. Grow 100% done – 此輸出表示虛擬磁碟已成功擴充。請檢查虛擬磁碟的新大小:

    ls -al

    如您在輸出結果中所見,虛擬磁碟的大小已增加。

    The virtual disk size has been increased

使用"磁碟"工具擴充 Linux 分割區

Ubuntu 的新版本內建了 磁碟 一款具備直觀圖形使用者介面(GUI)的工具,支援調整磁碟分割區的大小:只需點擊幾下即可:

  1. 擴充虛擬磁碟後,請開啟虛擬機器,並啟動安裝在該虛擬機器上的 Ubuntu Linux。
  2. 點擊 Dash > Utility > Disks,或輸入 Disks 在 Dash 選單中。一旦 磁碟 已找到並顯示公用程式圖示。

    調整虛擬磁碟大小後,Linux 分割區並不會自動擴充,您會看到磁碟上出現未分配(未分割)的空間。在我們的範例中,我們是使用預設的分區方案安裝 Ubuntu,該方案中我們有一個大型 / 磁碟上的 (root) 分區。

    How to extend partitions on Ubuntu with the Disks utility

  3. 讓我們擴展這個 / (root) 分區位於安裝了 Ubuntu 的虛擬磁碟上,可直接從此已安裝的 Ubuntu 實例中存取該分區,位於 磁碟 工具。選取第一個已掛載至 / 在 Linux 中,請點擊 settings icon,然後在快顯選單中,按一下 Resize.

    如果您有多個分割區,可以在 磁碟 實用工具。

    Changing disk partition size in Ubuntu with the Disks utility

  4. 調整磁區大小 視窗中,輸入新參數,例如分割區大小、後續可用空間或差異值。或者,將滑桿從當前大小拖曳至目標大小。然後點擊 Resize 按鈕。

    How to resize the volume of a partition

  5. 請輸入密碼,以便修改分割區設定及變更磁碟分割區大小。

    現在,該分割區已擴展至已增加容量的虛擬磁碟上。

    Changing disk partition size was completed successfully

如果您使用的不是 Ubuntu 的 Linux 系統,且您的 Linux 版本沒有 磁碟 用於調整磁碟分割區大小的工具,請使用 分開 該功能在所有 Linux 發行版中皆可使用。

使用 parted 擴充 Linux 分割區

分離 是一款用於管理 Linux 磁碟分割的命令列工具。 分離 此工具已預先安裝於 Ubuntu 中。然而,若您的 Linux 系統尚未安裝此工具,請從軟體儲存庫手動安裝(需具備 root 權限)。

  • 在 Debian 和 Ubuntu 系統上:

    sudo apt-get install parted

  • 在 RHEL(Red Hat Enterprise Linux)、CentOS 和 Fedora 上:

    yum install parted

  • 在 Fedora 22 及更高版本中:

    dnf install parted

  • 關於 OpenSUSE:

    zypper install parted

Unmounting partitions

請依照以下步驟調整 Linux 中的磁碟分割區大小:

  1. 在執行分區相關操作之前,請先卸載分區 分離. 對未掛載的分區進行操作可能會損壞磁碟上的資料。請使用 umount 用於卸載分割區的指令,例如:

    umount /dev/sdb1

  2. 請使用以下其中一個指令檢查分區是否已掛載:

    mount

    df -h

    cat /proc/mounts

Preparing to extend a system partition

若需調整已安裝作業系統所使用的系統分割區大小,請從 Live CD/DVD/USB 隨身碟開機,因為您無法卸載作業系統正在使用的分割區。您可以使用 Ubuntu 安裝媒體來執行此操作。此操作流程適用於 ESXi 主機上的虛擬機器以及安裝了 VMware 工作站的工作站。

  1. 在虛擬機器的虛擬光碟機設定中,選取 Ubuntu 安裝媒體的 ISO 檔案。
  2. 在下圖的螢幕截圖中,請查看 VMware vSphere Client 中某台虛擬機器(VM)的設定,其中包含光碟機(CD/DVD)的配置。

    Configuring virtual DVD settings in VMware vSphere Client

  3. 啟動虛擬機器。
  4. 點擊虛擬機器畫面,然後按下 F2 一旦虛擬機器開機,請立即進入虛擬機器的虛擬 BIOS。請盡快操作,因為您只有大約一秒鐘的時間按下 F2 鍵。

    : 當您選取安裝光碟時,虛擬 CD/DVD 光碟機將被設為虛擬機器內的預設開機裝置。完成客體作業系統的安裝後,安裝該客體作業系統的虛擬硬碟機將自動設為虛擬機器的預設開機裝置。若您希望從虛擬 CD/DVD 光碟機開機,請在虛擬機器的 BIOS 設定中選取適當的預設開機裝置。

    Press F2 to enter setup in a virtual machine

  5. 請選擇 Boot BIOS 中的 [] 標籤頁。選擇一個開機裝置,然後按下 + 以及 編輯開機裝置的順序。將虛擬機器(VM)的 CD/DVD 光碟機選為第一個開機裝置。儲存變更並退出(前往 Exit (分頁)。

    BIOS settings of a VMware virtual machine – boot devices

  6. 從 Ubuntu 即時安裝媒體開機,然後選擇 Try Ubuntu 選項。

變更磁碟分割區大小

請注意,一旦您在 分離, 變更會立即寫入磁碟。當您執行涉及磁碟分割的指令時,系統會顯示確認提示。

  1. 開啟終端機,並執行 分離 具有 root 權限:

    sudo parted

  2. /dev/sda 是預設開啟的磁碟。由於我們的 Ubuntu 虛擬機器只有一個虛擬磁碟,開啟 /dev/sda 是正確的選擇。
  3. 若要選取其他磁碟,例如 /dev/sdb, 請使用以下指令:

    select /dev/sdb

    這樣一來,您就可以選擇 /dev/sdb 用於該磁碟上的分割區操作。我們使用 /dev/sda 在此範例中。

  4. 列出選取磁碟上所有現有的 Linux 分割區。

    print

    請記下所需分區的編號(1 (就我們的情況而言)。

    Viewing disk partitions with parted in Linux

  5. 您可以列出所有已連接磁碟上的所有分割區:

    print all

  6. 檢查所選磁碟上的可用(未分割)磁碟空間:

    print free

    我們的未使用磁碟空間介於 21.5 GB 至 32.2 GB 之間,這是因為我們雖然增加了磁碟容量,但磁碟分割區並未自動擴充。

    Checking free (unpartitioned) disk space in parted

    讓我們解決這個問題,並擴充現有的磁碟分割區。

  7. 請在以下位置輸入指令 分開 要調整分割區的大小:

    resizepart

  8. 請輸入您要增加大小的目標分割區編號。我的分割區位於 /dev/sda 深諳箇中門道 1 在此範例中。

    Partition number? 1

  9. 請輸入分割區的結束大小(在本例中,分割區起始於 1049 KB,且必須結束於 32.2 GB)。若未指定單位,系統預設將使用兆位元組。

    End? 32.2GB

  10. 警告:縮小分割區可能會導致資料遺失,您確定要繼續嗎?

    Yes/No? y

    變更應已寫入磁碟。

  11. 確認變更已寫入磁碟。

    print

    How to extend partitions in parted running on Ubuntu

    已成功擴大分割區的大小。

在 Live CD 上使用 GParted

GParted 是《》的另一版本 分開 透過圖形使用者介面。此工具是免費的,就像 分開. 若您從 Live CD 開機,並使用 GParted, 您可以在不同的 Linux 發行版上調整分區大小,包括那些沒有內建即時調整分區大小工具的 Linux 發行版。此外,當系統因 Linux 已掛載並使用這些分區進行日常運作,而無法從作業系統內部調整分區大小時,您仍可透過本工具調整這些已安裝 Linux 的分區大小。

  1. 下載 從官方網站下載的 ISO 可開機映像檔。
  2. 插入可開機的 ISO 映像檔 GParted 並將其掛載至您正在調整磁碟大小的虛擬機器的虛擬 CD/DVD 光碟機中。
  3. 從此 ISO 映像檔開機(我們已在上一節說明如何從 ISO 映像檔開機)。
  4. 在開機選單中,請選擇 GParted Live (Default settings),然後按下 Enter.

    Booting from the GParted live CD and selecting boot options

    接著,您必須選擇一些選項。

  5. Configuring console data

    您可以保留預設值(Don’t touch keymap),然後按下 OK 繼續。

  6. Which language do you prefer?

    請選擇您的語言。我選擇 33 (US English). 按 Enter 若要保留預設值並繼續,請按;或輸入所需的選項編號,然後按 Enter.

  7. Which mode do you prefer?

    選擇 0 (Continue to start X to use GParted automatically).

    Selecting options before running GParted

  8. 現在您看到的是 GParted. 介面 GParted 操作簡便。請在右上角選取所需的磁碟(/dev/sda (在我們的情況下)。系統會顯示所選磁碟的分區及其相關資訊。

    The main window of GParted

  9. 選取所需的分區,然後點擊 Partition > Resize/Move (或右鍵點擊所需的分區以開啟此選單)。我們要調整大小(擴充)的分區是 /dev/sda1. 將虛擬磁碟大小從 20 GB 增加至 30 GB 後,我們目前有 10 GB 的未分配磁碟空間。

    How to extend partition size in GParted

  10. 在開啟的視窗中,請以兆位元組為單位輸入新的磁碟大小,或使用滑鼠調整磁碟分割區的大小。點擊 Resize/Move 在您設定好正確的新設定後。

    Changing disk partition size in GParted

  11. 點擊 Edit > Apply All Operations 以套用變更。在 GParted 變更不會立即寫入磁碟。您必須套用設定變更,才能將其寫入。

    Applying changes to a disk

  12. 現在,分區大小已擴展至 VMware 虛擬機器中擴展虛擬磁碟所能容納的最大值。請關閉虛擬機器,並使用 GParted,啟動您的虛擬機器,並從您已擴充且包含該已增加大小分割區的虛擬硬碟驅動器開機。
  13. 您可以在 Linux 開機後,使用 df -h 指令。請參閱以下螢幕截圖中的 /dev/sda1 調整大小前與調整大小後的分割區大小。

    Viewing the size of a partition before and after changing disk partition size

使用 LVM

如果您的 Linux 系統安裝在虛擬機器上,且使用 LVM 來管理磁碟區,當您想要增加虛擬磁碟的大小時,至少有兩種磁碟管理選項:

  1. 增加現有虛擬磁碟的大小。在擴展磁碟上建立一個新分割區(分割區類型必須為 Linux LVM,ID 為 8e),將此分割區新增至現有的卷組,並使用新分割區擴展邏輯卷。若使用 MBR,主要分割區的最大數量為四個。
  2. 新增一個虛擬磁碟,在該虛擬磁碟上建立一個分割區,將此分割區加入現有的卷組,並利用新虛擬磁碟上的新 LVM 分割區來擴展該卷組。

使用 VMware vCenter Converter

在 VMware 虛擬機器上,若將 Linux 作為客體作業系統安裝,還有另一種方法可以擴展分割區並調整磁碟分割區大小,那就是使用 VMware vCenter Converter 獨立版,這是一個免費工具。使用前需滿足以下條件:

  • 此轉換器必須安裝在 Windows 電腦上。
  • 轉換器元件、Linux 虛擬機器與 ESXi 主機或 vCenter Server 之間必須建立網路連線。
  • 必須在 Linux 虛擬機器上設定 SSH 存取。

請依照以下步驟,使用 VMware Converter 在 Linux 虛擬機器上擴展分割區:

  1. 開始 VMware Converter 獨立版 在 Windows 電腦上,然後按一下 Convert machine. 您可以使用任何已連接到來源 Linux 虛擬機器,且該虛擬機器必須部署在 ESXi 主機上的電腦。

    Starting to convert a Linux machine with a VMware vCenter Converter

  2. Source System 在精靈的此步驟中,請選取 Powered on 作為來源類型,並選擇 Remote Linux machine 在下拉式選單中。當使用 VMware Converter 擴展 Linux 虛擬機的分區時,Converter 會連線至該虛擬機的客體作業系統,這與連線至任何其他實體 Linux 機器時的情況類似。
  3. 請輸入在 Linux 機器上使用的使用者名稱和密碼。此使用者必須具備透過 SSH 遠端存取 Linux 機器的權限,並使用 sudo 在那台 Linux 電腦上。您可以查看原始碼詳細資訊,然後按下 Next 繼續。

    有時,在 VMware Converter 中連線至遠端 Linux 機器時可能會發生錯誤。在下文中,您可以找到最常見的錯誤及其解決方案。

    Selecting a remote Linux machine in the VMware converter

  4. 請選擇目標系統;該系統可以是來源 Linux 虛擬機器的位置,即同一台 ESXi 主機。此外,您也可以選擇另一台 ESXi 主機,用以存放轉換後包含擴展虛擬磁碟和分割區的虛擬機器。請輸入 ESXi 主機的 IP 位址或主機名稱,以及其 root 帳戶憑證。您亦可使用 vCenter 管理員憑證。

    Selecting a destination ESXi host to store the Linux VM

  5. 請輸入目標虛擬機的名稱,例如: Linux03. 在以下區段中,您可以查看位於所選 ESXi 主機上的虛擬機器。

    Entering a name for a Linux VM

  6. 選擇轉換後虛擬機器的目標位置。選擇一個 ESXi 主機,選擇一個連接到此主機的資料存放區,並定義虛擬機器的硬體版本。

    Selecting a datastore to store the Linux VM

  7. 設定選項並為轉換任務設定參數。點擊 EditData to Copy 本節。本節包含用於調整磁碟分割區大小的設定。

    Editing VM parameters for the conversion task in VMware vCenter Converter

  8. 請確保 Select volumes to copy 在下拉式選單中已選取。下方可查看當前虛擬機器的虛擬磁碟與分割區及其目前大小。點擊 Advanced 以開啟用於調整磁碟分割區大小的視窗。

    Selecting the advanced view to extend partitions of a Linux VM in the VMware converter

  9. 請選擇 Destination layout 選取"進階"檢視後,請按一下"分頁"按鈕。選擇"精簡配置"或"厚配置"的虛擬磁碟類型。

    Selecting the Destination layout tab to adjust disk partition size of the Linux VM

  10. 點選所需分割區的下拉式選單,然後點選 . 輸入新的分割區大小。擴充分割區後,虛擬磁碟的大小將會自動增加。

    Changing disk partition size for a Linux VM in VMware vCenter Converter Standalone

  11. 點擊 EditAdvanced 選項,並取消選取 Reconfigure destination virtual machine checkbox. 由於我們轉換的是已安裝在 VMware 虛擬機器上的 Linux 系統,因此無需重新設定該虛擬機器。若要將實體 Linux 機器轉換為虛擬機器,則需重新設定該虛擬機器,以調整轉換後虛擬機器的虛擬裝置相關系統設定。

    Deselecting the Reconfigure destination virtual machine checkbox

  12. 閱讀摘要並檢視轉換參數。點擊 Finish 以開始轉換程序。

    Reviewing the configuration summary

  13. 請等待虛擬機器轉換程序完成。
  14. 啟動已轉換的虛擬機器,並確認磁碟分割大小是否已成功調整。若操作成功,請將 SSH 安全設定與 sudo 權限設定恢復至轉換前的狀態。您可刪除原始虛擬機器。

使用 VMware vCenter Converter 時常見的錯誤

有時,在 VMware Converter 中連線至遠端 Linux 機器時可能會發生錯誤。

錯誤 1

無法查詢運作中的 Linux 來源主機。請確認當您以"user1"身分透過 SSH 登入來源主機時,執行 sudo 指令時無需輸入密碼。.

Solution:

  1. /etc/sudoers 檔案:

    sudo vim /etc/sudoers

    visudo

  2. 請加入以下行以允許 user1 要在不輸入密碼的情況下使用 sudo,請使用您的使用者名稱代替 user1.

    user1 ALL=(ALL) NOPASSWD:ALL

  3. 將變更儲存至檔案中。

錯誤 2

驗證錯誤。使用者名稱、密碼或客戶端私密金鑰不正確。此外,此操作還需來源主機的 SSH 守護程式設定允許遠端 root 登入.

Solution:

  1. 要解決此問題,請編輯 SSH 伺服器設定檔,並允許透過 SSH 以 root 身分登入。請使用 vim 或其他文字編輯器。

    sudo vim /etc/ssh/sshd_config

  2. 編輯(新增或取消註解)該 PermitRootLogin 行與設定 是的:

    PermitRootLogin yes

  3. 將變更儲存至檔案(按下 Esc, 輸入 :wq 然後按下 Enter (在 Vim 中) 並退出。
  4. 重新啟動 sshd 守護程序(服務):

    sudo service sshd restart

出於安全考量,請務必在完成 Linux 虛擬機器上的分割區轉換與擴充作業後,將這些設定檔(/etc/ssh/sshd_config 和 /etc/sudoers)的變更還原。

上述錯誤可能因以下原因而發生:

理由一

這些目錄被多次掛載為掛載點。

Solution:

多次掛載的目錄(被掛載超過一次)可能會導致問題。請卸載多餘的掛載點以解決此問題。

理由二

若在安裝 Linux 時使用了預設的分區佈局,可能會發生此問題。

Solution:

如果您打算為該 Linux 機器使用 VMware Converter,請在安裝 Linux 時嘗試使用手動分割磁碟區。

理由 3

VMware vCenter Converter 設定錯誤。

Solution:

  1. 請檢查安裝在您的 Windows 電腦上的 VMware Converter 的 XML 設定檔:

    %ALLUSERSPROFILE%Application DataVMwareVMware vCenter Converter Standalone

  2. 如果您編輯了代理程式、伺服器或工作節點的 XML 檔案,請在 Windows 中重新啟動相關服務,以啟用設定變更。

    Unable to query the live Linux source machine and similar VMware converter errors

結論

您可以使用 分開 在大多數 Linux 發行版中, 磁碟 此工具可在現代的 Ubuntu 發行版中使用。若需擴充已安裝 Linux 作業系統所使用的分割區,請使用 Live CD 開機,並 GParted,這是一款用於調整磁碟分割區大小的通用工具。在某些情況下,VMware vCenter Converter 對於 Linux 虛擬機器也頗有幫助。

在對虛擬機器的虛擬磁碟及磁碟分割區進行操作之前,建議您先備份這些虛擬機器,以避免資料遺失。 NAKIVO Backup & Replication 是一款通用資料保護解決方案,支援 VMware vSphere 虛擬機器備份。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read