開始前先了解

請先完成為虛擬機新增額外硬碟. 本篇所有指令都在 Ubuntu 虛擬機內執行, 不在 Proxmox VE 節點 Shell 操作.

分割與格式化會清除選定磁碟的資料. 本篇只適用於已確認沒有資料, 沒有掛載, 也不屬於系統或 LVM 的新空白碟. 需要保留的磁碟不可照本篇重新格式化.

示範新增容量為 4 GiB, 以下以 /dev/sdb 及 /dev/sdb1 說明. 裝置名稱必須依自己的查詢結果替換, 不能假定第二顆磁碟永遠叫作 sdb.

如果磁碟有加密, RAID, 既有 LVM 或其他分割配置, 請先確認對應的管理方式, 不要套用這個空白單碟流程.

本系列使用 Proxmox VE 9 繁體中文介面的真實截圖. 節點, 儲存名稱與示範數值請換成自己的環境; 作業系統安裝程式可能維持其原有語言.

01先確認新資料碟, 排除系統磁碟

登入 Ubuntu, 查詢磁碟容量, 檔案系統與掛載關係:

lsblk -o NAME,SIZE,TYPE,FSTYPE,UUID,MOUNTPOINTS
findmnt /

用新增前後差異, 4 GiB 容量與 Proxmox VE 硬體頁資訊共同辨識資料碟. findmnt / 顯示根目錄的來源; 即使根目錄位於 LVM 邏輯卷, 也要在 lsblk 樹狀結構中找出它上層的實體裝置並排除.

確認資料碟沒有掛載點, 沒有既有分割區, 沒有檔案系統, 也不是 LVM 的成員. 如有任何項目與新空白碟不符, 先停止確認. 看不到掛載點不等於磁碟可以清除.

Ubuntu 顯示系統 LVM 與新增的空白 4 GiB 磁碟 放大圖片
先用容量與掛載關係辨識新空白碟, 根目錄所在磁碟不可格式化.

02在已確認的空白碟建立 GPT 分割區

只有在上一個步驟確認 /dev/sdb 是這次新增且可清除的空白資料碟後, 才執行以下指令. 若你的裝置名稱不同, 先替換再操作.

先安裝分割工具, 再建立 GPT 分割表與一個使用整顆資料碟的分割區. mklabel gpt 會重建分割表, 不可對系統碟或有資料的磁碟執行.

sudo apt-get update
sudo apt-get install -y parted
sudo parted /dev/sdb --script mklabel gpt
sudo parted /dev/sdb --script mkpart primary ext4 1MiB 100%
sudo udevadm settle
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS /dev/sdb

確認新的分割區為 /dev/sdb1, 類型為 part, 容量略小於整顆磁碟. 若顯示裝置忙碌, 分割表錯誤或其他警告, 先停止處理, 不要追加強制選項.

Ubuntu 執行 parted 後出現 sdb1 分割區 放大圖片
只在已確認的新空白資料碟建立分割表與分割區.

03將新分割區格式化為 ext4

再次核對這次建立的分割區名稱與容量. 接著只格式化 新資料碟上的新分割區, 不要格式化 /dev/sda 或根目錄使用的邏輯卷.

下列格式化指令會覆蓋指定分割區原本的檔案系統. 本篇不加入強制覆寫參數; 如果工具提示已有檔案系統或資料, 應先停止確認.

sudo mkfs.ext4 -L demo-data /dev/sdb1
sudo blkid /dev/sdb1

記錄輸出的 UUID 與 TYPE="ext4". 後續自動掛載使用的是檔案系統 UUID, 不是磁碟標籤或 Proxmox VE 的儲存卷名稱.

Ubuntu 主控台顯示新資料碟 ext4 格式化與 blkid UUID 放大圖片
格式化的對象是新資料分割區, 並記錄其檔案系統 UUID.

04建立空資料夾並先手動掛載

本篇將資料碟掛載到 /srv/data. 先確認該資料夾沒有既有業務檔案; 掛載到有檔案的資料夾會暫時遮住原本內容, 容易誤以為資料遺失.

在 Ubuntu 執行以下指令, 核對來源裝置, 檔案系統與可用容量:

sudo mkdir -p /srv/data
sudo mount /dev/sdb1 /srv/data
findmnt /srv/data
df -hT /srv/data

findmnt 應顯示資料碟掛載在 /srv/data, df 的檔案系統應為 ext4. 若需要讓網站或特定帳號寫入, 依該服務的實際帳號設定擁有者與權限, 不要為了測試直接給所有人完整寫入權限.

Ubuntu findmnt 與 df 顯示資料碟掛載在 srv data 放大圖片
先完成手動掛載, 確認資料夾確實來自資料碟.

05使用 UUID 設定重新開機後自動掛載

先備份 /etc/fstab, 再用編輯器開啟. 保留原本的系統掛載設定, 只增加這顆資料碟的項目:

sudo cp -a /etc/fstab /etc/fstab.before-data-disk
sudo nano /etc/fstab

新增一行如下. 請把 YOUR-DATA-DISK-UUID 替換成步驟 03 查到的實際 UUID, 這個文字不能原樣使用. 若選擇其他掛載目錄, 也要一併替換.

UUID=YOUR-DATA-DISK-UUID /srv/data ext4 defaults,nofail 0 2

nofail 可讓此額外磁碟掛載失敗時不阻止開機, 但不代表應用程式可以忽略掛載失敗. 需要此資料碟的服務, 必須在磁碟成功掛載後才啟動, 避免把檔案寫進系統碟上的同名資料夾.

sudo systemctl daemon-reload
findmnt --verify --verbose
Ubuntu 編輯 fstab 增加資料碟 UUID 自動掛載設定 放大圖片
fstab 使用資料碟的實際 UUID, 保留其他系統掛載項目.

06測試掛載設定, 再核對重新開機

先確定沒有程式正在使用 /srv/data, 離開該資料夾, 再卸載並依 fstab 重新掛載. 這次 mount 只指定目錄, 用來確認它能正確讀取新增的設定:

cd ~
sudo umount /srv/data
sudo mount /srv/data
findmnt /srv/data
df -hT /srv/data

如果重新掛載失敗, 先修正 UUID, 路徑或檔案系統類型, 不要在設定仍有錯誤時重新開機. 確認測試通過後, 安排正常重新開機並再次執行 findmnt /srv/data 與 df -hT /srv/data.

只有確認資料碟已掛載到正確位置後, 才讓應用程式開始寫入. 如果之後要移除資料碟, 須先停止服務, 移除對應 fstab 項目並卸載, 再到 Proxmox VE 卸離.

Ubuntu 確認 UUID 掛載後的資料碟來源與容量 放大圖片
依 fstab 重新掛載並核對容量, 成功後才驗證重新開機.

完成後如何確認

資料碟具有 ext4 檔案系統, 可在指定目錄使用, 且能依自己的 UUID 重新掛載. 掛載失敗時先停止相關服務, 不要持續向未掛載的同名目錄寫入.

常見問題

為什麼不用 sdb1 直接寫進 fstab?

裝置名稱可能因硬體或偵測順序改變. 檔案系統 UUID 用來辨識特定檔案系統, 較適合這個獨立資料分割區的自動掛載.

磁碟已經有檔案系統, 還要格式化嗎?

需要保留資料時不可格式化. 先確認檔案系統類型與資料內容, 再規劃掛載. 本篇分割與格式化流程只用於已確認可清除的新空白資料碟.

掛載後為什麼不能寫入?

先用 findmnt 確認真的掛載到資料碟, 再核對檔案系統是否唯讀與服務帳號的目錄權限. 不要直接以開放所有人寫入的權限掩蓋問題.

操作時需要協助?

告訴我們您停在哪個步驟, 由客服協助您確認.

聯絡客服