Konfigurace Cooperative Linuxu
Prostředí vytvářené Cooperative Linuxem lze definovat při jeho vytváření, tj. při spouštění programu colinux-daemon.exe. Parametry prostředí lze programu colinux-daemon.exe předávat rozepsané na příkazovém řádku nebo pomocí konfiguračního souboru.
V současné stabilní větvi Cooperative Linuxu (0.6.x) se jedná o XML konfigurační soubor. K předání jména konfiguračního souboru slouží volba -c ( colinux-daemon.exe -c debian.colinux.xml
). Při vytváření XML konfiguračního souboru lze vyjít ze souboru default.colinux.xml
.
debian.colinux.xml
<?xml version="1.0" encoding="UTF-8"?>
<colinux>
<block_device index="0" path="\DosDevices\c:\Program Files\coLinux\Debian-3.0r2.ext3-mit-backports.1gb"
enabled="true" />
<cofs_device index="0" path="\DosDevices\c:\" type="flat"
enabled="true" />
<bootparams>root=/dev/cobd0</bootparams>
<initrd path="initrd.gz" />
<image path="vmlinux" />
<memory size="64" />
<network index="0" type="tap" />
</colinux>
Ve vývojové větvi Cooperative Linuxu (0.7.x) již nejsou XML konfigurační soubory podporovány. Nahrazují je klasické textové soubory. K předání jména textového konfiguračního souboru slouží znak @ ( colinux-daemon.exe @debian.txt
).
debian.txt
kernel=vmlinux
cobd0=Debian-3.0r2.ext3-mit-backports.1gb
root=/dev/cobd0
cofs0=\DosDevices\c:\
eth0=pcap-bridge,debian
Program colinux-daemon.exe lze spouštět přímo z Příkazového řádku nebo z dávkového .bat souboru. Japonský KNOPPIX využívá dávkového souboru knoppix.bat
.
knoppix.bat
…
colinux-daemon.exe kernel=vmlinux initrd=minirtcl.gz mem=%MEMORY% cobd0=\Device\Cdrom0 hdc=:cobd0 ramdisk_size=100000 lang=%KNX_LANG% vga=normal nodhcp noscsi nopcmcia noagp nodma nomkxf86config %DESKTOP% xserver=Xnest_colinux rc=colinux,networking eth0=tuntap %KIP%
…
Dávkový soubor lze doporučit i v případě použití konfiguračního souboru. Na plochu lze například umístit jednořádkový soubor debian.bat
a Debian v Cooperative Linuxu pak spouštět myší.
debian.bat
start "Cooperative Debian" /D "C:\Program Files\coLinux" /min colinux-daemon.exe -c debian.colinux.xml
Cooperative Linux jako služba
Cooperative Linux lze spouštět také jako Windows službu. K přidání služby do systému slouží volba --install-service
( colinux-daemon.exe -c sourcemage-hda5.colinux.xml --install-service "Cooperative Source Mage"
). K odebrání služby je určena volba --remove-service
( colinux-daemon.exe --remove-service "Cooperative Source Mage"
).
Ke spouštění služby lze použít standardního Windows příkazu net (net start „Cooperative Source Mage"). Příznivci Cygwinu pravděpodobně upřednostní příkaz cygrunsrv (cygrunsrv -S „Cooperative Source Mage“). Služby lze samozřejmě ovládat i myší. Uživatelům, kterým již myš přirostla k ruce, může posloužit services.msc (Ovládací panely/Nastroje pro správu/Služby). Pokud služba běží, lze se ke Cooperative Linuxu připojovat/odpojovat spuštěním/zavřením konzole ( colinux-console-fltk.exe
nebo colinux-console-nt.exe
).
Kořenový systém souborů
Jedním z nejdůležitějších parametrů předávaným programu colinux-daemon.exe
je umístění kořenového systému souborů. Kořenový systém souborů je určen klíčovým slovem root, obvykle root=/dev/cobd0
. Speciální soubor /dev/cobd0
(COlinux Block Device) představuje první blokové zařízení (index=“0“). V souboru default.colinux.xml
je toto zařízení definováno jako soubor \DosDevices\c:\coLinux\root_fs
. Pokud se soubor s kořenovým systémem souborů nejmenuje root_fs
nebo je umístěn v jiném adresáři, je nutné tuto definici změnit. Samozřejmě lze také přejmenovat soubor s kořenovým systémem souborů na root_fs
.
Linux ze souboru
<block_device index="0" path="\DosDevices\c:\Program Files\coLinux\Gentoo-colinux-stage3-x86-2004.3"
enabled="true" />
Linux z diskového oddílu
<block_device index="0" path="\Device\HarddiskVolume2"
enabled="true" />
Linux z diskového oddílu
V Cooperative Linuxu lze spouštět také Linux nainstalovaný na některém z diskového oddílů hostitelského počítače. Programu colinux-daemon.exe stačí sdělit, na kterém z diskových oddílů se Linux – přesněji řečeno jeho kořenový systém souborů – nachází.
Každý zkušenější uživatel Linuxu ví, že pokud je Linux nainstalován do rozšířeného oddílu (extended partition) na prvním logickém oddílu, je tento oddíl přístupný pomocí speciálního souboru /dev/hda5
, případně /dev/discs/disc0/part5
.
$ ls -l /dev/discs/disc0/part5
lrwxrwxrwx 1 root root 10 Jun 28 18:11 /dev/discs/disc0/part5 -> ../../hda5
Cooperative Linux ale nemůže k diskům přistupovat přímo. Musí využívat služeb hostitelského operačního systému, mj. musí také používat jeho adresaci. Linuxový oddíl /dev/hda5
může být pro Cooperative Linux přístupný jako \Device\Harddisk0\Partition2
nebo \Device\HarddiskVolume2
. Nebo také ne. Jak zjistit správnou adresu?
Pomoci může standardní Windows příkaz diskpart.exe poskytující informace o rozdělení disku. Problém je, že své číslo zde má i rozšířený oddíl. Linuxový oddíl hda5 je pro Windows přístupný jako oddíl3. Cooperative Linux ale rozšířený oddíl ignoruje, tj. z oddíl3 se stane oddíl2 (Partition2).
C:\>diskpart.exe
Microsoft DiskPart version 5.1.3564
Copyright (C) 1999-2003 Microsoft Corporation.
V počítači: K269-3916
DISKPART> list disk
Disk ### Stav Velikost Volné Dyn Gpt
-------- ---------- ------- ------- --- ---
Disk 0 Online 34 GB 9 GB
DISKPART> select disk 0
Nyní je vybrán disk 0.
DISKPART> list partition
Oddíl ### Typ Velikost Posunutí
------------- ---------------- ------- -------
Oddíl 1 Primární 15 GB 32 KB
Oddíl 2 Rozšířený 10 GB 15 GB
Oddíl 3 Logický 7632 MB 15 GB
Oddíl 4 Logický 1906 MB 22 GB
Oddíl 5 Logický 973 MB 24 GB
Odkládací oblast – swap
Velikost fyzické paměti přiřazené Linuxu běžícímu pod Cooperative Linuxem lze také definovat při spouštění programu colinux-daemon.exe
. Standardně je přiřazeno 64 MB. Jedná se o maximální velikost přidělené paměti. Cooperative Linux ji alokuje postupně.
<memory size="64" />
Příkazem free si lze její velikost ověřit:
colinux:~# free
total used free shared buffers cached
Mem: 61516 12660 48856 0 4132 4760
-/+ buffers/cache: 3768 57748
Swap: 0 0 0
Pokud je fyzické paměti nedostatek, lze ji rozšířit odkládací oblastí neboli swapem. Odkládací oblast je také přístupná přes cobd zařízení. Lze ji namapovat na odkládací oblast vytvořenou na některém z diskových oddílů nebo na soubor představující odkládací oblast. Soubory představující odkládací oblast lze snadno vytvořit například příkazem dd v Cygwinu nebo příkazem fsutil ve Windows. Soubory si lze ale také stáhnout. Není nutné mít obavy, nebudou se zbytečně stahovat stovky MB. Zkomprimovaná odkládací oblast velikosti 64 MB má pouze 114 bajtů.
$ ls -l swap_64Mb.bz2
-rwx------+ 1 Administrator None 114 Jul 27 02:34 swap_64Mb.bz2
$ bunzip2 swap_64Mb.bz2
$ ls -l swap_64Mb
-rwx------ 1 Administrator None 67108864 Jul 27 02:34 swap_64Mb
Pro přístup k odkládací oblasti je obvykle používáno zařízení cobd1:
<block_device index="1" path="\DosDevices\c:\Program Files\coLinux\swap_64Mb"
enabled="true" />
Do /etc/fstab
je nutno přidat:
/dev/cobd1 swap swap defaults 0 0
Příkazem free si lze aktuální stav opět ověřit:
colinux:~# free
total used free shared buffers cached
Mem: 61516 12692 48824 0 4104 4752
-/+ buffers/cache: 3836 57680
Swap: 65528 0 65528
Přidání odkládací oblasti nacházející se na některém z diskových oddílů je obdobné. Diskový oddíl přístupný pod Linuxem jako /dev/hda7
může být pro Cooperative Linux přístupný jako \Device\Harddisk0\Partition4
.
<block_device index="4" path="\Device\Harddisk0\Partition4"
enabled="true" />
Samozřejmě je opět nutné sáhnout do souboru /etc/fstab
.
/dev/cobd4 swap swap defaults 0 0
Přístup k souborům ve Windows
Z Cooperative Linuxu lze k souborům ve Windows přistupovat síťově nebo přímo. Pokud mezi hostem a hostitelem existuje síťové propojení, lze k přenosu souborů využít všech nainstalovaných síťových služeb. Běžně se používá Samba nebo FTP. Ve starších verzích Cooperative Linux bylo možné přistupovat k souborům ve Windows pouze síťově. Od verze 0.6.2 se to změnilo. V novějších jádrech Cooperative Linuxu je implementován ovladač cofs (COoperative File System) umožňující přímý přístup k Windows souborům.
Pro přímý přístup z Cooperative Linuxu k celému disku C stačí do konfiguračního souboru přidat:
<cofs_device index="0" path="\DosDevices\c:\" type="flat"
enabled="true" />
Po naběhnutí Linuxu lze zařízení připojit. Typ souborového systému je cofs ( -t cofs
).
mount -t cofs 0 /mnt/C
nebo
mount -t cofs cofs0 /mnt/C
Samozřejmě lze pomocí souboru /etc/fstab zajistit, aby byla cofs zařízení při startu Linuxu automaticky připojována.
cofs0:/ /mnt/C cofs
Přístup k dalším linuxovým oddílům
Pokud má být Linuxu běžícímu pod Cooperative Linuxem umožněn přístup k dalším linuxovým oddílům, musí být tyto oddíly namapovány na další cobd zařízení. Opět lze přistupovat k reálným diskovým oddílům nebo k pouhým souborům.
Diskový oddíl
<block_device index="2" path="\Device\Harddisk0\Partition3"
enabled="true" />
Soubor
<block_device index="2" path="\DosDevices\c:\Program Files\coLinux\home"
enabled="true" />
Soubory představující diskové oddíly lze stáhnout stejně jako soubory představující odkládací oblasti. Samozřejmě je lze dle individuálních požadavků snadno vytvořit. Například přímo v Cooperative Linuxu.
colinux:/mnt/C/Program Files/coLinux# dd if=/dev/zero of=home bs=1k count=100k
102400+0 records in
102400+0 records out
104857600 bytes transferred in 57.927445 seconds (1810154 bytes/sec)
colinux:/mnt/C/Program Files/coLinux# mke2fs -j home
mke2fs 1.27 (8-Mar-2002)
home is not a block special device.
Proceed anyway? (y,n) y
…
V Cooperative Linuxu je lze také vyzkoušet.
colinux:/mnt/C/Program Files/coLinux# mount -o loop home /home
EXT3 FS on loop0, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
colinux:/mnt/C/Program Files/coLinux# mount
/dev/cobd0 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw)
tmpfs on /dev/shm type tmpfs (rw)
cofs0:/ on /mnt/C type cofs (rw)
/mnt/C/Program Files/coLinux/home on /home type ext3 (rw,loop=/dev/loop0)
Pak už je třeba jenom při spouštění programu colinux-daemon.exe namapovat vytvořený soubor na cobd zařízení a v Cooperative Linuxu dané cobd zařízení připojit.
<block_device index="2" path="\DosDevices\c:\Program Files\coLinux\home"
enabled="true" />
colinux:~# mount /dev/cobd2 /home
EXT3 FS on cobd2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
colinux:~# mount
/dev/cobd0 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw)
tmpfs on /dev/shm type tmpfs (rw)
cofs0:/ on /mnt/C type cofs (rw)
/dev/cobd2 on /home type ext3 (rw)
Pokud má být dané zařízení připojováno automaticky, stačí jej zmínit v souboru /etc/fstab
.
/dev/cobd2 /home ext3
Přístup k CD/DVD
Pro přístup k CD/DVD (dále jen CD) je opět nutné vytvořit další cobd zařízení:
<block_device index="3" path="\Device\Cdrom0"
enabled="true" />
Zařízení cobd3 lze následně v Linuxu připojit:
mount -t iso9660 /dev/cobd3 /mnt/cdrom/
nebo
mount /dev/cobd3 /mnt/cdrom/
K CD nelze přistupovat současně z Windows i z Linuxu. Pokud je CD používáno ve Windows – stačí, aby byl obsah CD zobrazen v okně průzkumníka – příkaz mount v Linuxu pouze vypíše zprávu „ mount: /dev/cobd3: unknown device
“. Po zavření okna průzkumníka a zopakování příkazu mount bude CD připojeno. Platí to i obráceně. Pokud je CD připojeno v Linuxu, tak průzkumník ve Windows zobrazuje u CD pouze prázdné okno.
Příště …
Konfigurace počítačové sítě a možnosti grafického přístupu k Linuxu běžícímu pod Cooperative Linuxem.