(w stylu tarantiniego)
Mnie był potrzebny obraz Xen wirtualnej maszyny z systemem openSUSE 13.2. Poradzili mi skorzystać z serwisu KIWI.
Sun Jan 18 21:30:30 EET 2015
Jan-18 21:30:31 <1> : Description provides no MD5 hash, check
Jan-18 21:30:31 <1> : Reading image description [Prepare]...
Jan-18 21:30:32 <1> : Set root log: /var/lib/xen/images/myxen/.25254.screenrc.log... done8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
Mnie więcej się podoba
obrazy zebrane za pomocą libvirt.
Mnie był potrzebny obraz Xen wirtualnej maszyny z systemem openSUSE 13.2. Poradzili mi skorzystać z serwisu KIWI.
Wykonujemy trzy prostych
komendy z interfejsu wiersza poleceń.
# cd /usr/share/doc/packages/kiwi/examples/suse-13.2/ # date && kiwi --prepare ./suse-xen-guest --root /var/lib/xen/images/myxen/ && date |
Sun Jan 18 21:30:30 EET 2015
Jan-18 21:30:31 <1> : Description provides no MD5 hash, check
Jan-18 21:30:31 <1> : Reading image description [Prepare]...
Jan-18 21:30:32 <1> : Set root log: /var/lib/xen/images/myxen/.25254.screenrc.log... done8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
Jan-18 21:51:56 <1> : Cleanup temporary copy of sysconfig/proxy done
Jan-18 21:51:57 <1> : KIWI exited successfully
Jan-18 21:51:57 <1> : Complete logfile at: /var/lib/xen/images/myxen/.log done
Sun Jan 18 21:51:58 EET 2015
Jan-18 23:04:46 <1> : Description provides no MD5 hash, check
Jan-18 23:04:46 <1> : Reading image description [Create]...
Jan-18 23:04:46 <1> : Destination: /var/lib/libvirt/images/myxen-result doesn't exist
Jan-18 23:04:46 <1> : Would you like kiwi to create it [yes/no] ? yes
Jan-18 23:04:51 <1> : Image update:
Jan-18 23:04:51 <1> : --> Install/Update: kernel-xen
Jan-18 23:04:51 <1> : --> Remove: kernel-ec2
Jan-18 23:04:51 <1> : Description provides no MD5 hash, check
Jan-18 23:04:51 <1> : Reading image description [Upgrade]...
Jan-18 23:04:52 <1> : Set root log: /var/lib/xen/images/myxen.5238.screenrc.log... done
Jan-18 23:04:52 <1> : Setting up package manager: zypper done
Jan-18 23:04:53 <1> : Mounting required file systems done
8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
Jan-18 21:51:57 <1> : KIWI exited successfully
Jan-18 21:51:57 <1> : Complete logfile at: /var/lib/xen/images/myxen/.log done
Sun Jan 18 21:51:58 EET 2015
# kiwi --create /var/lib/xen/images/myxen --type vmx -d /var/lib/libvirt/images/myxen-result |
Jan-18 23:04:46 <1> : Reading image description [Create]...
Jan-18 23:04:46 <1> : Destination: /var/lib/libvirt/images/myxen-result doesn't exist
Jan-18 23:04:46 <1> : Would you like kiwi to create it [yes/no] ? yes
Jan-18 23:04:51 <1> : Image update:
Jan-18 23:04:51 <1> : --> Install/Update: kernel-xen
Jan-18 23:04:51 <1> : --> Remove: kernel-ec2
Jan-18 23:04:51 <1> : Description provides no MD5 hash, check
Jan-18 23:04:51 <1> : Reading image description [Upgrade]...
Jan-18 23:04:52 <1> : Set root log: /var/lib/xen/images/myxen.5238.screenrc.log... done
Jan-18 23:04:52 <1> : Setting up package manager: zypper done
Jan-18 23:04:53 <1> : Mounting required file systems done
8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
Jan-18 23:14:23 <1> : Creating image Xen configuration file... skipped
Jan-18 23:14:23 <2> : No disk device setup found in machine section skipped
Jan-18 23:14:24 <1> : Find build results at: /var/lib/libvirt/images/myxen-result done
Jan-18 23:14:24 <1> : KIWI exited successfully
Jan-18 23:14:24 <1> : Complete logfile at: /var/lib/xen/images/myxen.log done
Jan-18 23:14:23 <2> : No disk device setup found in machine section skipped
Jan-18 23:14:24 <1> : Find build results at: /var/lib/libvirt/images/myxen-result done
Jan-18 23:14:24 <1> : KIWI exited successfully
Jan-18 23:14:24 <1> : Complete logfile at: /var/lib/xen/images/myxen.log done
To już wszystko gotowe. :)
Uruchomiamy maszynę
wirtualną za pomocą virt-manager, wybrawszy opcje <Import
existing disk image>.
Pierwsze ładowanie |
Start systemu zbudowanego za pomocą KIWI. |
Stworzony obraz można wzięć dla testowania tutaj, dla logina root hasło "Linux".
CPU: AMD Athlon
OS: openSUSE Linux 13.1
A teraz od początku.
Najpierw szukam potrzebnych
pakietów.
# zypper se kiwi |
S | Name | Summary | Type
--+---------------------------------------+------------------------------------------+-----------
| kiwi | openSUSE - KIWI Image System | package
| kiwi | openSUSE - KIWI Image System | srcpackage
| kiwi-config-openSUSE | KDE live CD | package
| kiwi-desc-isoboot | openSUSE - KIWI Image System ISO boot | package
| kiwi-desc-isoboot-requires | openSUSE - KIWI Image System ISO boot -> | package
| kiwi-desc-netboot | openSUSE - KIWI Image System PXE netwo-> | package
| kiwi-desc-netboot-requires | openSUSE - KIWI Image System NET boot -> | package
| kiwi-desc-oemboot | openSUSE - KIWI image descriptions | package
| kiwi-desc-oemboot-requires | openSUSE - KIWI Image System oem boot -> | package
| kiwi-desc-vmxboot | openSUSE - KIWI Image System Virtual M-> | package
| kiwi-desc-vmxboot-requires | openSUSE - KIWI Image System VMX boot -> | package
| kiwi-doc | openSUSE - KIWI Image System Documenta-> | package
| kiwi-instsource | Installation Source creation | package
| kiwi-instsource-plugins-openSUSE-12-1 | OpenSuSE - KIWI Image System | package
| kiwi-media-requires | openSUSE - packages which should be pa-> | package
| kiwi-pxeboot | openSUSE - KIWI Image System PXE boot -> | package
| kiwi-templates | openSUSE - KIWI JeOS system image temp-> | package
| kiwi-test | Unit tests for kiwi | package| kiwi-tools | openSUSE - KIWI tools collection | package
Wiele niezbędnych pakietów
do budowy rożnych obrazów, ale niema dla Xena.
Instaluje to wszystko, bo nie wiem co się potrzebne a co nie.
# zypper in kiwi kiwi-desc-netboot \ kiwi-desc-oemboot kiwi-desc-netboot-requires \ kiwi-desc-vmxboot kiwi-desc-oemboot-requires \ kiwi-desc-vmxboot-requires kiwi-instsource \ kiwi-doc kiwi-instsource-plugins-openSUSE-12-1 \ kiwi-media-requires kiwi-templates kiwi-tools \ kiwi-test |
Wchodzimy w dyrektorium
/example jak to rekomendowano w oficjalnym "openSUSE-KIWI Image System.Cookbook”. Patrzymy.
/usr/share/doc/packages/kiwi/examples # ls |
README extras suse-12.1 suse-12.2 suse-12.3 suse-13.1
Ne gęsto :( potrzebnej 13.2 nie ma.
Szukamy konfiguracja dla Xena.
Szukamy konfiguracja dla Xena.
# find /usr/share/doc/packages/kiwi/examples | grep xen |
./suse-12.1/suse-xen-guest/config.xml
8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
./suse-12.2/suse-xen-guest/config.xml
8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
./suse-12.3/suse-xen-guest/config.xml
8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
8<- - - -8<- - - -8<- - - -8<- - - -8<- - - -
Jeszce gorzej, konfiguracji
dla SUSE 13 z Xen4 nie ma, jest tylko dla 12 z Xen3 a u nich rożne
skrypty pygrub.
# cp -aR suse-12.3 suse-13.2PK |
Wchodzę w stworzony dyrektorium suse-13.2PK i we wszystkich plikach zamieniam cyfry 12.3 na 13.2 za pomocą niżej podanego skryptu.
#!/bin/sh for i in \ `grep -H 12.3 ./*/* 2>/dev/null | cut -f1 -d: | sort -u | tr "\12" " "`; do cat $i | sed 's/12.3/13.2/g' >| $i.tmp && cat $i.tmp > $i && rm -f $i.tmp; done |
Myślę, że tego wystarczy już, żeby zregenerować potrzebny obrazek, ale założy się, że inżynierowie SUSE nie przewidzieli w swoich skryptach takiej dystrybucji jak 13.2PK, dla tego tworze dowiązania symboliczne o prawidłowej nazwę:
# ln -s suse-13.2PK/ suse-13.2 |
Zapomniałem, jeszcze niewielki kresek, prawie dyrektorium dla szablonów obrazów.Tam też nie ma szablonu dla suse-13.2.
# cd /usr/share/kiwi/image/vmxboot # ln -s suse-13.1 suse-13.2 |