Portál AbcLinuxu, 2. května 2025 00:19
Ano, o XENu už toho bylo na internetu napsáno spoustu, ale po posledních dvou dnech strávených instalací a hlavně konfigurací musím říci, že ne všechny návody fungují, nečekám, že tento bude fungovat každému, ale snad většíně pomůže. Chtěl bych se zde zmínit hlavně o dvou drobných zádrhelích , které mne stály dva dny života, tak ať tím nemusí projít někdo další.
Pravda, měl bych zmínit konfiguraci na které to provozuji, tak tedy:
CPU: Intel P4 2,4 GHz Motherboard: Intel 865 Pearl Ram: 2GB Distribuce: Debian Etch
Většina odkazů na instalaci XENu bývá jak jinak než v angličtině, tak že pro ty angličtinou nepoznamenané, ve stručnosti to je takto:
Pokud máte jinou distribuci, tak samozřejmě podle ní, tady píši o Debianu, u Vás to bude jistě dost podobné. V Debianu se již nepodporují procesory bez rozšíření "pae", proto zkuste následující, zda se v přehledu flagů Vašeho procesoru vyskytuje "pae", pokud nemáte a chcete mermomocí Debian, tak máte smůlu.
cat /proc/cpuinfo | grep flags
Ti šťastnější, mohou pokračovat dál a instalovat. Zjistíme poslední verzi balíku xen-linux-system.
#apt-cache search xen-linux-system
V mém případě to je xen-linux-system-2.6.18-6-xen-686, proto zadám:
#apt-get install xen-linux-system-2.6.18-6-xen-686
Jelikož je verze hypervisoru pae standardně určené pro systémy s více než 4GB paměti, obtěžovala by Vás chybová hláška "4gb seg fixup ...." tu odstraníme instalací upravené knihovny libc pro XEN.
#apt-get install libc6-xen
To byl první zádrhel co mne trápil, ale ani toto řešení nepomohlo úplně, proto jsem nalez ještě jedno, to sice funguje, ale nevím proč, no nevadí, třeba někdo poradí.
#mv /lib/tls /lib/tls.disables
Chápu, že přesunu knihovnu tls tak aby ji ten kdo ji bude hledat nenašel, ale nevím co dělá. No hlavně že to funguje.
Dále doplníme balíky pro bridge a nástroje pro XEN
#apt-get install bridge-utils xen-tools
Nyní upravím síťování XENu, tak aby všechny virtuální stroje mohly do vnější sítě.
#vim /etc/xen/xend-config.sxp
!!odkomentuji!! (network-script network-bridge)
!!zakomentuji!! #(network-script network-dummy)
Nyní vytvořím adresář pro obrazy virtuálních disků pro jednotlivé virtuální stroje.
#mkdir /home/xen
A upravím konfigurační nástroj xen-tools, tak aby jsem při vytváření virtuálních strojů nemusel zadávat skoro nic.
#vim /etc/xen-tools/xen-tools.conf
dir = /home/xen
debootstrap = 1
memory = 256 Mb (není to nutné, ale raději)
dist = etch
gateway = (IP vaší brány)
netmask = 255.255.255.0 (nebo dle vaší sítě)
kernel = /boot/vmlinuz-2.6.18-6-xen-686
initrd = /boot/initrd.img-2.6.18-6-xen-686
mirror = http://ftp.cz.debian.org/debian/
Nyní je nutné restartovat Váš systém.
#reboot
Teď vytovříme nový virtuální stroj:
xen-create-image --ip=192.168.G.H --hostname=pokus
A je čas do nového virtuálního stroje nabootovat.
xm create -c pokus.cfg
Pokud vše proběhlo dobře a já věřím, že ano, nacházíte se ve Vašem novém virtuálním stroji s názvem pokus. Přihlásíte se jako root a nejlépe ihned změníte heslo
#passwd
Ve virtuálním stroji se chovejte stejně jako v jakémkoliv jiném počítači, vypnutí je příkazem "halt" a dostanete se zpět do původního systému.
#halt
Nyní k dalšímu, pro mne velmi závažnému zádrhelu, pokud nemáte předřazený router, následující zádrhel se Vás nebude týkat. Já jsem si ovšem na svém domácím routeru před cca. třemi lety zapnul na firewallu MAC filtering, moc hezká věc, pokud máte wifi, nebo trochu rozvětvenou drátovou síť určitě se hodí, že se nemůže přihlásit nikdo bez zadané a schválené MAC adresy. Mě ale trvalo skoro dva dny než jsem si na toto pravidlo na routeru vzpoměl, když jsem se snažil rozchodít síť směrem ven. Fungoval mi ping mezi virtuálními stroji, mezi hostem a hostitelem i opačně ale do vnější sítě ani ťuk. Tak že pozor. Pakaty ven odcházeji s MAC adresou virtuálního stroje, tak že takto nastaveným routerem neprojdou. Jsou tu dvě možnosti, zaprvé zjistit MAC adresu, kterou náhodně vygeneroval XEN, nebo MAC adresu virtuálnímu stroji přidělit. Ať tak nebo tak tuto adresu je třeba sdelit routeru. No a aby to zase nebylo tak snadné, MAC adresy jsou několika druhů, tak že pokud chceme přidělovat lokální MAC, musí mít jeden z dolních bitů prvního oktetu nastaven na nulu. To znamená, že adresa je šestnáctková ve tvaru XY:XX:XX:XX:XX:XX , kde X je hexadecimální číslo od 0 do F a Y jsou sudá čísla (0,2,4,6,8,a,c,e). Nastavit to lze jednoduše zde:
#vim /etc/xen/(název vačeho stroje).cfg
vif = [ 'ip=192.168.G.H, mac=02:00:00:00:00:d5' ]
Nečekal jsem že to vyjde tak dlouhé, ale snažij jsem se zaznamenat vše potřebné, kdyby náhodou jsem zase chtěl rozcházet Virtuální síť pomocí XENu. Ne není na tom nic těžkého, akorát je třeba přemýšlet . Předpokládám, že se najde spousta lidí, kterým se nebude to či ono v mém zápisu zamlouvat, tak že prosím pište, ať se případné chyby a nesrovnalosti opraví a tento zápis poslouží dalším v budování virtuálních strojů.
Tiskni
Sdílej:
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
S XENem jsem se taky pěkně natrápil. Instaloval jsem pod něj dva virtuální stroje - jeden Debian a jedny Windows Vista. Používá se hw paravirtualizace. Vše v 64 bitových verzích, jak Linux tak Windows (BTW kopit 64bit Visty ne Ultimate je pěkná pakárna, MS snad vyloženě nechce, aby to lidi používali). Proto jsem taky volil Xen, protože jako snad jediný z free podporuje 64bit Windows.
Narazil jsem na dva hlavní zádrhely, když pominu jeden můj překlep v konfiguraci, kterého jsem si všiml až po několika hodinách .
První byl, že Windows při instalaci vždy po prvním rebootu hodily modrou smrt. Ukázalo se, že virtuální stroj, nemůže mít víc než 1 CPU. Na opravě se údajně pracuje, ale jestli je už v novější verzi opravené nevím. Použitý byl Debianní balík xen-hypervisor-3.1-1-amd64
Druhý byl, že Debian po instalaci nechtěl nabootovat, protože Grub se nemohl dostat na správnou partišnu. To byla opět chyba Xenu, která se vyřešila přechodem na novější verzi, Debianní balík xen-hypervisor-3.2-1-amd64, který jsem musel vzít z Unstable. Ale koukal jsem teď, že už ho přesunuli do Testing.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.