分类: LINUX
2006-07-07 14:43:55
Cooperative Linux, 簡稱 coLinux, 是一種對 的移植, 讓一台機器可以協同運作不同的作業系統. coLinux 的前身 最早是由 Dan Aloni 在 2000 年所開發, 當時的目的是為了將 移植到 上. 在 2003 年時, Dan Aloni 運用了不同以往的想法與做法, 於是, 便產生了 coLinux.
coLinux 不同於 等模擬器, coLinux 本身並不是模擬一台PC, 而是透過它本身的特殊設計, 讓在其中運作的 Linux kernel 直接使用 Windows 的硬體資源. 因此, 對大部份的使用者來說, coLinux 本身的速度與真實機器的速度相差無幾.
更重要的是, coLinux 是完全免費的. (GPL2)
3. coLinux 功能
A. 現有功能
B. 未來功能
4. 安裝 coLinux
coLinux 目前最新的版本是 0.6.2 版, 可以到 選取下載或者直接下載 .
安裝過程如下:
5. coLinux 基本設定
coLinux 的所有基本設定, 都可以在 xml 設定檔中定義. 底下以 coLinux 預附的 default.colinux.xml 來說明設定檔中, 各項參數的意義.
coLinux 是使用它特有的 device (cobd), 這裡是在定義 /dev/cobd0 與 /dev/cobd1. cobd0 指向 c:\coLinux\root_fs, cobd1 則指向 c:\coLinux\swap_device. 在這裡, 這兩個 device 都是 image file. coLinux 下預設的 boot image 是 cobd0, 而預設的 swap 則是 cobd1.
這是用來設定 linux kernel 開機時所需傳遞的參數. 參數設定的方法與 grub 及 lilo 相同.
這是指定用來做為 initrd 的 image file. coLinux 本身有它自己專門的 initrd.
這是指定用來開機的 linux kernel image. 預設是使用 coLinux 附的 kernel image.
這是分配給 coLinux 的記憶體大小, 如果只有跑 linux console, 至少需 64MB, 如果有執行 X, 則最好能配置 128MB 以上.
這是 coLinux 所要使用的網路型態, 有 TAP 與 Bridged 兩種.
以上是基本設定, 其他進階設定, 請參照 .
6. 執行 coLinux
當所有的設定都沒問題時, 就可以執行 coLinux .coLinux 有兩種執行方法, 透過 Command-Line 或透過 System Service. 底下分別說明兩種方式的不同.
A. Command-Line
範例: colinux-daemon.exe -c default.colinux.xml -t nt
參數:
B. System Service
要先將 coLinux 安裝成 System Service. 方法如下:
colinux-daemon.exe -c default.colinux.xml --install-service "Serive Name"
參數:
系統服務安裝成功後, 可以使用系統管理工具來啟動或停止 coLinux. 也可以使用 net start/stop 的方法來管理.
另外, 也可以使用 來管理 coLinux 的系統服務.
7. coLinux 下的網路
A. TAP
在 TAP 模式下, coLinux 是透過 TAP Driver 與 ICS(Internet Connection Sharing)的方式來使用 Windows 的網路. 這時, Windows 的 ip 預設為 192.168.0.1, 而 coLinux 的預設 ip 則通常為 192.168.0.2.
要順利使用 TAP 模式, 有幾個動作要先完成.
順利完成以上動作後, coLinux 執行後, TAP 就會正常運作.
B. Bridged
若要使用 Bridged 模式, 設定檔中網路的部份要改成
coLinux 所偵測到的網路卡則應該是 "Realtek RTL8139/810x Family Fast Ethernet NIC".
8. 在 coLinux 上運行 Fedora - 使用 Image File
如果想要在 Windows 上, 透過 coLinux 來運行一個全新的 Fedora, 使用 image file 是個不錯的方式.
首先, 必須先下載安裝 coLinux, 方法如上. 另外, 還需要下載 Fedora 的 image file. coLinux 官方附的是 的 image, 這個 image 可以使用在 linux 2.4.x 與 linux 2.6.x 上.
另外, 如果想使用 linux swap, 可以下載預先製作好的 .
底下是 coLinux 使用 Fedora 的設定檔範例:
有幾點要注意.
9. 在 coLinux 上運行 Fedora - 使用 Native Partition
如果已經在電腦中將 Fedora 安裝在單獨的 Partition 中, 通常都會使用 Dual Boot 來做作業系統中的切換. 有時不斷地切換開機是一件很煩人的事, 而 VMware 等模擬器又無法存取 Native Fedora.
用 coLinux 就沒有這種煩惱! coLinux 可以將原本需要 Dual Boot 開機執行的 Fedora Partition, 直接在 Windows 中開機執行, 而且就像是一台完整的機器一般, 依然保有所有原來的設定.
這又是怎麼做到的呢?
首先要轉換原本 Fedora 的 Partition. 要在 /dev 建立 cobdN(0..7). 這可以使用底下的 script 做到:
for i in 0 1 2 3 4 5 6 7 do mknod /dev/cobd$i b 117 $i done
然後要將會因 coLinux 與 Fedora 環境不同而受到影響的檔案做自動判斷. 總共會有以下幾個檔案
/etc/fstab
/etc/hostname
/etc/resolv.conf
/etc/sysconfig/network-scripts/ifcfg-eth0
可以將這幾個檔案依不同環境, 分別製作 colinux 與 fedora 專用. 並且利用bootparams傳入COLINUX這個環境變數. 自動判斷的部份則可以使用以下的 script:
if [[ $COLINUX ]]; then SUFFIX=colinux else SUFFIX=fedora fi for conf_file in "/etc/fstab" "/etc/hostname" "/etc/resolv.conf" "/etc/sysconfig/network-scripts/ifcfg-eth0" ; do cp -f $conf_file-$SUFFIX $conf_file done
另外要記得將 coLinux 所會用到的 kernel module 裝到 Fedora 的 Partition.
接著便是 coLinux 的設定檔. 假設電腦上的硬碟是用以下的方法來分割:
那麼, 在 Fedora 上看到的裝置就分別是 hda1(C:\), hda2(D:\), hda5(/boot), hda6(/), hda7(swap). 但是, 在 coLinux 上的裝置則是有所不同, 分別為 partition1(C:\), partition2(D:\), partition3(/boot), partition4(/), partition5(swap). 關於在 Windows 上檢視 Partition, 請使用 .
所以, coLinux 的 Native Boot 的設定檔應該如以下的範例:
實際上 Native Fedora 在 coLinux 開機之後, 會像是以下的畫面:
10. 在 coLinux 上執行 X
coLinux 目前還不能直接支援 X. 要想在 coLinux 的環境下執行 X, 主要有兩種方法. 第一種是在 Windows 安裝 XFree86 Server, 再將 coLinux 上的 X 轉向到 Windows 上的 XFree86. 第二種則是透過 VNC 來執行 X. 這裡要介紹的是第二種方法.
步驟如下:
當連接成功後, 看到的是以下的畫面:
如果要在 Fedora 一開始時就自動執行 VNC, 請參考 .
如果想嘗試其他在 coLinux 上執行 X 的方法, 請參考 .
11. 相關資源