1. 程式人生 > >Virtualbox虛擬Ubuntu系統擴充套件磁碟分割槽

Virtualbox虛擬Ubuntu系統擴充套件磁碟分割槽

背景

Virtualbox建立Ubuntu虛擬機器時,磁碟空間預設只有8Gb,磁碟空間很快就不夠用了。本文介紹一種動態擴充套件磁碟空間的方式,將磁碟空間擴充套件到50Gb,並保留已有資料不被破壞。

分割槽擴充套件步驟

  • 1,虛擬機器關機,WIN+R進入cmd,進入VirtualBox目錄,執行VBoxManage list hdds檢視當虛擬機器映象列表;獲取ubuntu.vdi的UUID。

這裡寫圖片描述

  • 2,修改ubuntu.vdi的磁碟空間
-- 擴充套件磁碟空間為50G
VBoxManage modifyhd 26e60d1a-dd53-44b8-964e-2f08da993a21
--resize 51200
  • 3,虛擬機器開機,檢視磁碟分割槽情況
$ df -ah  -- 仍然是8G,沒有增多
  • 4,磁碟分割槽sudo fdisk /dev/sda,輸入p檢視分割槽情況
    這裡寫圖片描述
    /dev/sda4是新增分割槽後的結果。輸入n 新增分割槽,選擇p (primary分割槽)。d刪除分割槽,選擇 3(sda3磁碟空間太小不想要)。fdisk命令不做詳細解釋。

  • 5,格式化分割槽,並掛載分割槽

$ sudo mkfs -t ext4 /dev/sda4
$ sudo mount /dev/sda4 /home/lvley/soft
-- 開機自動掛載,在/etc/fstab中新增
/dev/sda4 /home/lvley/soft ext4 defaults 0
1

分割槽擴充套件完畢。

分割槽擴充套件中遇到的問題

1,磁碟擴充套件到50GB,分配sda3時只分配了1024KB。sda4才分配到42G。

這裡寫圖片描述
如上圖所示,sda1的End和sda2的Start並不連續,分配sda3時系統自動使用該區域的空間,給sda3指定+40G會報錯out of range。新建sda3之後,彌補了磁碟空間的空隙,再分配sda4時會從sd2的End開始分配sda剩餘的42G空間。

2,磁碟掛載過程導致

  • 第一次嘗試 將 sda4掛載到根目錄。會導致ubuntu無法進入圖形介面,進入root的恢復模式。新掛載的分割槽是空的,沒有啟動的資訊。嘗試還原/etc/fstab發現無法儲存寫入,root使用者也不行,檢視檔案許可權root使用者是有寫許可權的。google發現,mount的裝置本來是不能寫入的,即使root使用者具有許可權也無法寫入。使用以下命令mount -o remount,rw /

    重新掛載,修改成功。本次修改將sda4掛載到/home/lvley目錄了。

  • 再次啟動,能看到圖形介面。但是正確的賬號和密碼無法登陸,guest使用者可以進入系統。可能和之前掛載根目錄一樣,某些資訊丟失或者環境變數導致。shift+alt+f1進入終端,發現賬號密碼可以登陸。嘗試還原掛載,在/home/lvley下新建soft目錄,將sda掛載到該目錄下。至此終於達到想要的目的。

延伸的問題

1,如何檢視linux目錄使用情況?

du -h --max-depth=1 work/testing

2,如何檢視分割槽的uuid列表?

blkid
ls -l /dev/disk/by-uuid

3,能否修改分割槽的起始邊界?如果可以,怎麼修改?

待確認。