簡介
在 Ubuntu Server 上管理儲存空間和磁碟是管理員的一項關鍵技能,尤其是在雲端平台(AWS、Azure、Google Cloud)或虛擬化平台(VMware、Hyper-V、Proxmox)等動態環境中。擴充作業系統磁碟、初始化資料磁碟或最佳化儲存設定等工作都是常見情境。雖然自動化工具通常可以簡化這些流程,但紮實理解底層步驟對於有效疑難排解和手動介入至關重要。
在本指南中,我們將探討 Ubuntu Server 上的儲存空間和磁碟管理,包括檔案系統類型、分割、格式化和磁碟最佳化。透過針對實體環境和虛擬化環境量身打造的實用範例,本指南將為你提供有效率地處理儲存管理工作的知識。
先前文章:
01. Ubuntu Server 簡介 – SysOSX: AI & Cloud
02. 如何架設你的第一台 Ubuntu Server:初學者指南 – SysOSX: AI & Cloud
03. 掌握 Ubuntu Server 的 Linux 命令列 – SysOSX: AI & Cloud
04. Ubuntu Server 使用者與權限管理:完整指南 – SysOSX: AI & Cloud
05. Ubuntu Server 網路基礎:完整指南 – SysOSX: AI & Cloud
06. 在 Ubuntu Server 上安裝和管理軟體:完整指南 – SysOSX: AI & Cloud
07. 修補和更新 Ubuntu Server:完整指南 – SysOSX: AI & Cloud
08. 保護你的 Ubuntu Server:強化與防護的實用步驟 – SysOSX: AI & Cloud
09. Ubuntu 伺服器稽核與記錄
10. Ubuntu Server 系統監控工具:完整指南 – SysOSX: AI & Cloud
11. Ubuntu 伺服器集中式記錄:必讀指南 – SysOSX: AI & Cloud
12. Ubuntu Server 稽核與合規:最佳實踐 – SysOSX: AI & Cloud
13. 架設用於託管和 Web 應用的 Ubuntu Server:終極指南 – SysOSX: AI & Cloud
14. 在一台 Ubuntu Server 上託管多個網站:實用技巧 – SysOSX: AI & Cloud
了解檔案系統類型
檔案系統定義了資料在磁碟上的儲存和存取方式。選擇合適的檔案系統對於效能、可靠性和相容性至關重要。以下是 Ubuntu 伺服器最常見的檔案系統:
Ubuntu 的常見檔案系統
- Ext4(第四代擴充檔案系統)
- Ubuntu 伺服器的預設檔案系統。
- 具有日誌功能、支援大型檔案,效能出色。
- 非常適合通用工作負載。
- 格式化命令:
sudo mkfs.ext4 /dev/sdX1
- XFS
- 專為大型檔案和高 I/O 工作負載設計的高效能日誌檔案系統。
- 常用於企業和雲端環境。
- 格式化命令:
sudo mkfs.xfs /dev/sdX1
- Btrfs(B 樹檔案系統)
- 提供快照支援、資料壓縮和 RAID 功能的進階檔案系統。
- 適用於複雜工作負載和需要頻繁備份的環境。
- NTFS
- 主要用於與 Windows 環境相容。
- 適用於雙重開機系統或 Linux 與 Windows 之間的共用磁碟。
- FAT32 和 exFAT
- 用於可移除式磁碟機和跨平台相容的輕量級檔案系統。
選擇合適的檔案系統
- Ext4:通用工作負載。
- XFS:企業或雲端環境中的高效能工作負載。
- Btrfs:快照和壓縮等進階功能。
- NTFS/FAT32:跨平台相容性。
在 Ubuntu Server 上對磁碟進行分割
分割將實體磁碟劃分為邏輯部分,從而更好地組織和管理資料。這對於分離系統檔案、備份和應用程式資料尤其有用。
在 Ubuntu Server 上對磁碟進行分割的步驟
- 識別磁碟:
使用lsblk命令列出所有可用磁碟及其分割區:lsblk

- 建立分割區:
使用fdisk或parted建立新分割區。例如,使用fdisk:sudo fdisk /dev/sdX- 按
n建立新分割區。 - 指定分割區大小和類型。
- 按
w將變更寫入磁碟。
- 按
- 驗證分割區:
再次執行lsblk以確認新分割區已建立。
在 Ubuntu Server 上格式化資料磁碟
格式化透過建立檔案系統來為分割區的使用做好準備。
在 Ubuntu Server 上格式化資料磁碟的步驟
- 安裝必要的工具:
確保你已安裝mkfs公用程式(大多數發行版預設包含)。 - 格式化分割區:
使用mkfs命令格式化分割區。範例:sudo mkfs.ext4 /dev/sdX1 - 建立掛載點:
重要提示:在雲端環境中,避免使用/mnt作為掛載點。/mnt目錄通常在雲端平台(如 Azure 或 AWS)中保留給暫存磁碟使用,可能會在重新啟動或系統更新期間被清除。相反,請使用自訂目錄,例如/data或/storage。例如:
sudo mkdir /data
- 掛載分割區:
將格式化後的分割區掛載到新建立的目錄:
sudo mount /dev/sdX1 /data
- 持久化掛載:
為確保分割區在啟動時自動掛載,請將其新增至/etc/fstab檔案:
echo '/dev/sdX1 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab
持久化掛載:在雲端環境中使用 UUID
為確保分割區在啟動時自動掛載,將其新增至/etc/fstab檔案至關重要。然而,在雲端環境中,建議使用UUID(通用唯一識別碼)來掛載磁碟,而不是直接引用裝置名稱(例如/dev/sdX1)。裝置名稱可能會在系統重新啟動後發生變化,特別是在虛擬化或雲端環境中,這可能導致掛載失敗。使用 UUID 可確保一致且可靠的掛載。
使用 UUID 持久化掛載的步驟
- 尋找分割區的 UUID:
使用blkid命令取得分割區的 UUID:
sudo blkid
- 範例輸出:
/dev/sdX1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4"
- 編輯
/etc/fstab檔案:
在/etc/fstab檔案中使用 UUID 而不是裝置名稱新增一個項目。
範例:echo 'UUID=123e4567-e89b-12d3-a456-426614174000 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab - 驗證設定:
透過卸載分割區並使用mount -a命令重新掛載來測試設定:
sudo umount /data
sudo mount -a
- 重新啟動並確認:
重新啟動系統,以確保磁碟在啟動期間正確掛載:sudo reboot
為什麼要在雲端環境中使用 UUID?
- 一致性:像
/dev/sdX這樣的裝置名稱可能會在重新啟動後發生變化,這是由於雲端平台中的動態裝置列舉所致。 - 可靠性:UUID 對每個分割區都是唯一的,並且保持不變,從而確保可靠的掛載。
- 最佳實務:AWS、Azure 和 Google Cloud 等雲端供應商建議在生產環境中使用 UUID 或標籤來掛載磁碟。
雲端和虛擬化情境:磁碟擴充與初始化
情境 1:作業系統磁碟擴充
在 AWS、Azure 或 Google Cloud 等雲端平台上,可以從實體層擴充作業系統磁碟。許多平台會自動偵測並擴充作業系統磁碟。但是,可能需要手動介入來調整檔案系統的大小,以利用新增空間。
在 Ubuntu Server 上擴充作業系統磁碟的步驟:
- 檢查磁碟空間:
驗證擴充後的磁碟空間:lsblk:lsblk - 調整檔案系統大小:
使用resize2fs用於 Ext4 檔案系統:sudo resize2fs /dev/sdX1
情境 2:資料磁碟初始化,請參閱上一節
監控和最佳化磁碟使用情況
監控磁碟使用情況
- 檢查磁碟空間使用情況:
使用df命令顯示磁碟空間使用情況:df -h - 分析目錄使用情況:
使用du命令檢查特定目錄的大小:du -sh /var/log - 進階監控:
安裝ncdu以進行互動式磁碟使用情況分析:
sudo apt install ncdu
ncdu /

最佳化磁碟使用情況
- 刪除暫存檔案:
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
- 尋找佔用磁碟空間的大型檔案
find命令尋找大型檔案:
sudo find / -type f -size +100M
參考資料
在下一篇文章中,我們將深入探討資料庫伺服器的搭建 (在 Ubuntu 伺服器上)。你將學到如何:
- 安裝並設定MySQL或MariaDB以供你的應用程式使用。
- 保護你的資料庫伺服器,以保障敏感資料的安全。
- 針對生產環境最佳化資料庫效能。
無論你是在雲端還是本地部署資料庫,本指南都將提供可行的見解,幫助你有效管理資料庫基礎設施。
千萬不要錯過——敬請期待!
5 thoughts on “15. Managing Storage and Disks on Ubuntu Server: Simple Guide”