Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1081782
  • 博文数量: 226
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2504
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-21 14:12
文章分类

全部博文(226)

文章存档

2011年(1)

2010年(2)

2009年(68)

2008年(4)

2007年(27)

2006年(124)

我的朋友

分类: LINUX

2006-07-07 14:43:55

1. coLinux 簡介

Cooperative Linux, 簡稱 coLinux, 是一種對 的移植, 讓一台機器可以協同運作不同的作業系統. coLinux 的前身 最早是由 Dan Aloni 在 2000 年所開發, 當時的目的是為了將 移植到 上. 在 2003 年時, Dan Aloni 運用了不同以往的想法與做法, 於是, 便產生了 coLinux.

coLinux 不同於 等模擬器, coLinux 本身並不是模擬一台PC, 而是透過它本身的特殊設計, 讓在其中運作的 Linux kernel 直接使用 Windows 的硬體資源. 因此, 對大部份的使用者來說, coLinux 本身的速度與真實機器的速度相差無幾.

更重要的是, coLinux 是完全免費的. (GPL2)


2. coLinux 系統需求
  • 在 Intel 386 以上相容機器運作
  • 在 Windows 2000, Windows XP, Windows 2003 下執行
  • 最低需求: Windows 2000, PIII 450Mhz, 64MB RAM

3. coLinux 功能

A. 現有功能

  • 支援 Linux 2.4.x, Linux 2.6.x
  • 支援各種 Linux Distribution (Debian/Gentoo/Fedora/TopologiLinux/Mandrake/Slackware/Knoppix)
  • 可存取 Windows 與 Linux Partition
  • 可存取 Windows 檔案及目錄
  • 可存取 CD/DVD
  • 可存取 RAID/LVM
  • 支援網路 (透過 TAP 或 Bridge)
  • 支援聲音 (透過 ESD)

B. 未來功能

  • 支援 Frame Buffer
  • 支援 Native X Server

4. 安裝 coLinux

coLinux 目前最新的版本是 0.6.2 版, 可以到 選取下載或者直接下載 .

安裝過程如下:

  • 安裝 coLinux 0.6.2

  • coLinux 是採用 GPL 授權

  • 安裝時不需下載 Root Filesystem image

  • 安裝位置通常都是用 C:coLinux

  • 如果需要使用 Bridged Ethernet, 需自行下載安裝 WinPCAP

  • coLinux 的安裝過程很簡單

  • coLinux 附的 TAP Driver, 如果要使用 TAP 的 Network, 就一定要安裝

  • 安裝完成

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.

  • root=/dev/cobd0

這是用來設定 linux kernel 開機時所需傳遞的參數. 參數設定的方法與 grub 及 lilo 相同.

  • root=/dev/cobd0

這是指定用來做為 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

參數:

  • -c 執行 coLinux 時使用的設定檔
  • -t Console 的型態, 有 nt 與 fltk 兩種

B. System Service

要先將 coLinux 安裝成 System Service. 方法如下:

colinux-daemon.exe -c default.colinux.xml --install-service "Serive Name"

參數:

  • -c 安裝 coLinux 系統服務時使用的設定檔
  • --install-service 要安裝的系統服務名稱

系統服務安裝成功後, 可以使用系統管理工具來啟動或停止 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 模式, 有幾個動作要先完成.

  • 選擇目前對外的網路卡, 允許 TAP 使用這張網路卡的共用連線

  • 檢視 TAP 網路卡的 TCP/IP

  • TAP 的 IP 應該會被設為 192.168.0.1

順利完成以上動作後, 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 的設定檔範例:





ro root=/dev/cobd0 3 fastboot nogui






有幾點要注意.

  • Fedora 的 swap device 並不是在 cobd1, 而是在 cobd7.
  • 在 bootparams 所下的參數, 不能使用 root=/dev/cobd0, 而要使用 ro root=/dev/cobd0.
  • 第一次執行 coLinux Fedora 時, 可能會因為找不到 kernel module 而造成執行失敗. 這時再重新執行一次就可以了.
  • 當 Fedora Core 1 順利開機後, 要將 coLinux 所附的 kernel module 檔 vmlinux-modules.tar.gz 解壓縮到相對應的位置.
  • coLinux 官方所附的 Fedora Core 1, 一開始的網路設定是有問題的, 需要手動改 /etc/resolv.conf 與 /etc/sysconfig/network-scripts/ifcfg-eth0 內的設定.
  • 開機完成的 Fedora Core 1 若要升級, 請按照 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 的設定檔應該如以下的範例:






ro root=/dev/hda6 3 fastboot COLINUX=1





實際上 Native Fedora 在 coLinux 開機之後, 會像是以下的畫面:

10. 在 coLinux 上執行 X

coLinux 目前還不能直接支援 X. 要想在 coLinux 的環境下執行 X, 主要有兩種方法. 第一種是在 Windows 安裝 XFree86 Server, 再將 coLinux 上的 X 轉向到 Windows 上的 XFree86. 第二種則是透過 VNC 來執行 X. 這裡要介紹的是第二種方法.

步驟如下:

  • 首先要安裝 X Server 所需的所有套件, 並且安裝 vnc-server.
  • 將 /root/.vnc/xstartup 增加 startkde.
  • 執行 vncserver -geometry 800x600
  • 在 Windows 上執行 vnc-client, 連接到 192.168.0.2:5901

當連接成功後, 看到的是以下的畫面:

如果要在 Fedora 一開始時就自動執行 VNC, 請參考 .

如果想嘗試其他在 coLinux 上執行 X 的方法, 請參考 .

11. 相關資源

阅读(1010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~