我的情況是這樣的:
*真正的作業系統是XP或Win7
*虛擬硬碟裡裝的是Ubuntu
*當初建立時是選擇動態配置大小(固定大小的就沒輒了)
事前準備:
(1)如果你虛擬硬碟的格式並非*.vdi
首先必須讓虛擬硬碟的格式轉為*.vdi
進入命令列到VirtualBox的資料夾去執行格式的轉換
VBoxManage.exe clonehd 虛擬硬碟名稱.vmdk 新虛擬硬碟名稱.vdi --format VDI
(2)如果你在Ubuntu上面還沒有root帳密
輸入
sudo passwd root
接下來會叫你輸入密碼來確認你夠格使用sudo
也有可能直接開始設定 root密碼
自己要看清楚
(3)在Ubuntu上安裝zerofree
sudo apt-get zerofree
我們需要它來將沒使用的空間資料歸零
如此外部程式才有辦法幫虛擬硬碟減肥
步驟:
(1)開啟進入虛擬硬碟然後執行一些清理行為
例如
sudo apt-get autoclean
sudo apt-get autoremove
之類的
(2)重開機進入grub menu
剛進入開機畫面就一直按shift(以前有按Esc的版本)
你可以左右shift交叉按來避免相黏鍵功能的出現
如果一直進不去可能要開啟/etc/default/grub文件
將下面這行的0換成比較大的正數(10應該已經夠了)
GRUB_HIDDEN_TIMEOUT=0
(3)掛載你的虛擬硬碟
進入grub menu之後選擇recovery mode
然後選擇root(如果沒看到就表示你沒設定root密碼)
用這指令確認你的虛擬硬碟名稱
df
我想大部分情況會是/dev/sda1
執行
mount -n -o remount,ro -t ext2 /dev/sda1 /
如果出現mount: / is busy訊息就輸入下面三行再試一次
service rsyslog stop
service network-manager stop
killall dhclient
(4)執行zerofree
zerofree /dev/sda1
這步會花滿多時間
甚至螢幕會全黑掉像當掉一樣
你可以按一下ctrl鍵確認一下zerofree完成工作了沒
完成之後將虛擬硬碟關機
poweroff
(5)最後一步
VBoxManage.exe modifyhd 虛擬硬碟名稱.vdi compact
2012年12月29日 星期六
讓VirtualBox的虛擬硬碟變小、縮小佔用空間
2012年9月8日 星期六
如何用一個程式開啟兩個OpenGL視窗
在網路上搜尋了一下關於複數視窗繪圖的資訊
發現使用Direct 3D就只能用一個視窗繪圖
有人建議一個視窗用Direct 3D而另一個視窗用OpenGL就可以了
實作上也確實可行
而且作法直覺簡單所以不說明了
我這篇要介紹的是如何使用兩個OpenGL視窗來描繪畫面
這在遊戲程式上大概沒什麼用途
不過工具程式的話倒不是沒用處
要使用兩個OpenGL視窗只要解決以下幾點
- 開啟兩個視窗
- 使用wglShareLists()將兩個HGLRC連起來
- 大部分gl開頭的函式在使用前要用wglMakeCurrent()將描繪對象切換到指定視窗
就這樣並不難
但若你不懂如何使用WindowsAPI的話
在第一點就卡住了
想開兩個視窗肯定是包裝成兩個物件最好管理
但是Windows體系的訊息幫浦偏偏要你餵它一個函式
而且不能放成員函式
你要另外想辦法處理
在我寫的Toy引擎裡面也有實作這功能
想看code示範的就去看看吧
就在右上的連結
Toy現在可以開兩個OpenGL視窗外加一個Direct 3D視窗
對WindowsAPI跟OpenGL不熟的可以去NeHe逛逛
2012年9月1日 星期六
訂閱:
文章 (Atom)