我的LINUX版本是ubuntu12.04 32bit。今天在下載android源代碼的時候發現自己最初給這個虛擬機分配的磁盤空間不足了(只有20G)。所以就需要給磁盤擴容。網上大致搜索了一下,主要有兩種解決方法:一,另建一個磁盤;二,給原有的磁盤擴容。我選擇第二種方案。
1,關閉虛擬機。進入要擴容虛擬機的設置界面,在設備框中選擇磁盤,然后選擇實用工具,再選擇擴容選項。在跳出來的方框中輸入你要擴容后的磁盤大小。我填寫的是60G。
PS:這里需要注意一點:如果你曾經給虛擬機建立過快照,那么你必須刪除所有的快照才能按照此方法擴容。刪除快照方法:虛擬機->快照->快照管理,選中快照點擊刪除即可。
2,只需要上面的步驟我們的虛擬機就擴容了么?當然不是!由於LINUX系統的特性,我們還需要自己手動去為新分配的磁盤空間建立分區、掛載設備等。下面開始詳細介紹配置過程。
①以root身份登錄系統(或進入系統后輸入sudo su,切換到root模式),輸入如下命令:
#fdisk -l 就可以看到自己磁盤的分區、掛載等信息。 我們可以看到,顯示的列表中有一個ID = 5 system = extern的分區/dev/sda2。 這就是我們剛擴展的磁盤空間。 還有一個id = 82 system = Linux swap / Solaris的分區,這是系統交換分區/dev/sda5。 以及id = 83 System = Linux的分區,/dev/sda1,這就是擴容前使用的磁盤分區。 |
②我遇到的情況,跟其他人不太一樣,因為在我的虛擬機的系統swap分區(/dev/sda5)和系統原磁盤分區(/dev/sda1)之間只給我預留了1024block的空間(怎么看出來的呢?在fdisk -l 命令的輸出結果中 有start和end標識,start表示該分區的開始block號,end表示結束block號,稍加分析就計算出來了)。但是我新加入的磁盤可遠遠不止這么一點!所以我必須刪除這個swap分區,這樣才能進行后面的操作。
③如何刪除swap分區呢?
# fdisk /dev/sda #m (列出linux磁盤工具的幫助信息) #d (表示要刪除分區) #Partition number(1-4): 5 (因為前面說了我的swap分區的sda號為5,這就表示要刪除第5個主分區) 到這里就刪除了swap分區了,可以輸入命令p查看修改結果。 #w (表示保存修改,這一步是必須的!) |
④刪除swap分區之后,我們就可以將exern分區更改為主分區了。
#fdisk /dev/sda #n (增加分區) #p (增加主分區) 設置分區號 #回車即可 設置分區開始block號 #回車即可 設置分區結束block號 #默認值 - 900000 (這里很重要,我們要預留90萬block的空間來重新建立swap分區) #w (保存) 通過上面的操作我們就建立好了主分區/dev/sda2了 |
⑤現在重新創建swap分區並完成格式化和掛載
首先,按照第四步的方式創建第三個主分區 然后將這個主分區改文swap分區 #fdisk /dev/sda #n #t (修改系統ID) #3 (表示要更改的這個主分區的sda號為3) #82 (改成swap的ID標示號) #p (打印修改后的分區結果) #w (保存)
到這里就可以重啟一下系統了~~
重啟后,同樣以root權限執行如下命令 格式化: #mkswap /dev/sda3 開始查看和加載 #free (查看) #swapon /dev/sda3 #free
|
⑥分區的創建工作算是完成了,下面要做的就是將新建的主分區2掛載到文件系統中。
首先格式化主分區2 #mkfs ext4 /dev/sda2 (因為Ubuntu12.04的文件系統是ext4的,所以這里參數為ext4,如果不清楚自己的文件系統版本的話,可以通過命令mount查看/dev/sda1的type值,該值就是文件系統版本)
然后在自己的用戶根目錄中創建一個目錄 切換到普通用戶模式 $mkdir /home/(你的用戶名)/ExternDisk (這個目錄就是我們新加入磁盤空間的“根目錄”了,需要注意的是,這里不是以root身份執行的命令!) 切換到root模式 #mount /dev/sda2 /home/(你的用戶名)/ExternDisk (掛載分區到該目錄) #df -h (查看掛載后的分區情況) |
⑦設置開機自動掛載
修改/etc/fstab分區表文件 #vim /etc/fstab 在文件最后加上 /dev/sda2 /home/(你的用戶名)/ExternDisk ext4 defaults 0 0 然后保存退出, 重啟即可! |
現在虛擬機的磁盤擴容工作已經完成了!有大文件的話就把它移動到這個/home/(你的用戶名)/ExternDisk目錄里面吧!