cn:ccr:cloud:preparazione_immagini_cloud_resizable_con_oz
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| cn:ccr:cloud:preparazione_immagini_cloud_resizable_con_oz [2013/10/22 16:22] – dorigoa@infn.it | cn:ccr:cloud:preparazione_immagini_cloud_resizable_con_oz [2014/01/17 16:19] (current) – dorigoa@infn.it | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== Preparare immagini cloud resizable con Oz ===== | ||
| + | * Alvise Dorigo (INFN Padova) | ||
| + | ==== Informazioni preliminari ==== | ||
| + | [[https:// | ||
| + | |||
| + | Di default Oz ha dei suoi template file per le installazioni automatiche ([[https:// | ||
| + | |||
| + | Per funzionare Oz ha anche bisogno di un template file contenente informazioni su dove reperire l' | ||
| + | Per Debian, purtroppo, Oz al momento non supporta la customizzazione, | ||
| + | |||
| + | Una volta che Oz ha terminato il build dell' | ||
| + | |||
| + | Il motivo per cui vogliamo estrarre la partizione (contenente il root filesystem ''"/"'' | ||
| + | |||
| + | Una volta estratta l'AMI dal file immagine (l'AMI viene estratta come immagine del block device corrispondente alla partizione montata nella root "/" | ||
| + | |||
| + | ==== Pre-requisiti ==== | ||
| + | Oz è un wrapper attorno ad un ambiente virtualizzato. Quindi è necessario che nell' | ||
| + | |||
| + | * Verificare che il processore della macchina host supporti la virtualizzazione; | ||
| + | <code bash> | ||
| + | dorigoa@lxadorigo 18:13:55 ~>lscpu |grep -i virtu | ||
| + | Virtualization: | ||
| + | </ | ||
| + | |||
| + | o | ||
| + | |||
| + | <code bash> | ||
| + | [root@gilda-11 ~]# lscpu |grep -i virtu | ||
| + | Virtualization: | ||
| + | </ | ||
| + | |||
| + | a seconda ci si trovi su una piattaforma Intel o AMD rispettivamente. | ||
| + | * Se il punto precedente è soddisfatto verificare che il modulo kernel sia caricato: | ||
| + | <code bash> | ||
| + | dorigoa@lxadorigo 18:15:33 ~>lsmod |grep -i kvm | ||
| + | kvm_intel | ||
| + | kvm | ||
| + | </ | ||
| + | se il modulo non è caricato è necessario farlo manualmente con modprobe: | ||
| + | <code bash> | ||
| + | modprobe kvm_intel | ||
| + | </ | ||
| + | su piattaforma Intel e | ||
| + | <code bash> | ||
| + | modprobe kvm_amd | ||
| + | </ | ||
| + | su piattaforma AMD. | ||
| + | |||
| + | * Se modprobe fallisce, bisogna verificare nel BIOS della macchina che il supporto hardware alla virtualizzazione sia abilitato. | ||
| + | |||
| + | * Verificare che il demone di libvirtd stia girando e sia abilitato al boot: | ||
| + | <code bash> | ||
| + | [root@gilda-11 ~]# chkconfig --list|grep libvirtd | ||
| + | libvirtd | ||
| + | [root@gilda-11 ~]# service libvirtd status | ||
| + | libvirtd (pid 5595) is running... | ||
| + | </ | ||
| + | ==== Files di configurazione ==== | ||
| + | |||
| + | In [[https:// | ||
| + | |||
| + | ==== Preparazione immagine ==== | ||
| + | |||
| + | === Metodo 1 losetup/ | ||
| + | == Collegare l' | ||
| + | <code bash> | ||
| + | # > losetup -f -v / | ||
| + | Loop device is /dev/loop1 | ||
| + | </ | ||
| + | == Mappare la partizione interna == | ||
| + | <code bash> | ||
| + | # > kpartx -a /dev/loop1 | ||
| + | add map loop1p1 (253:0): 0 4192902 linear /dev/loop1 63 | ||
| + | </ | ||
| + | == Estrarre la partizione root == | ||
| + | <code bash> | ||
| + | # > dd if=/ | ||
| + | </ | ||
| + | == Scollegare il device loopback == | ||
| + | <code bash> | ||
| + | # > kpartx -d /dev/loop1 | ||
| + | # > losetup -d /dev/loop1 | ||
| + | </ | ||
| + | == Estrarre kernel e initrd dall' | ||
| + | <code bash> | ||
| + | # > mount -o loop myimage_extracted.img /mnt | ||
| + | # > cp / | ||
| + | # > cp / | ||
| + | # > umount /mnt | ||
| + | </ | ||
| + | |||
| + | Ovviamente i filename reali vmlinuz e initramfs saranno comprensivi del numero di versione del kernel. | ||
| + | A questo punto i 3 oggetti vmlinux-< | ||
| + | |||
| + | === Metodo 2 guestfish === | ||
| + | == Ottenere il device contenente il root filesystem ("/" | ||
| + | <code bash> | ||
| + | # > guestfish --ro add ubuntu_quantal_x86_64_2G.dsk : run : inspect-os | ||
| + | /dev/vda1 | ||
| + | </ | ||
| + | == Listare il contenuto della directory /boot == | ||
| + | <code bash> | ||
| + | # > guestfish --ro add ubuntu_quantal_x86_64_2G.dsk : run : mount /dev/vda1 / : ls /boot | ||
| + | System.map-3.5.0-17-generic | ||
| + | abi-3.5.0-17-generic | ||
| + | config-3.5.0-17-generic | ||
| + | grub | ||
| + | initrd.img-3.5.0-17-generic | ||
| + | memtest86+.bin | ||
| + | memtest86+_multiboot.bin | ||
| + | vmlinuz-3.5.0-17-generic | ||
| + | </ | ||
| + | == Estrarre AKI, ARI, AMI == | ||
| + | <code bash> | ||
| + | # > guestfish --ro add ubuntu_quantal_x86_64_2G.dsk : run : mount /dev/vda1 / : download / | ||
| + | # > guestfish --ro add ubuntu_quantal_x86_64_2G.dsk : run : mount /dev/vda1 / : download / | ||
| + | # > guestfish --ro add ubuntu_quantal_x86_64_2G.dsk : run : mount /dev/vda1 / : download /dev/vda1 ubuntu12-10-oz-resize.img | ||
| + | </ | ||
| + | |||
| + | === Nota su Debian === | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **ATTENZIONE: | ||
| + | |||
| + | Per modificare un file con guestfish: | ||
| + | <code bash> | ||
| + | # > guestfish --ro add debian_wheezy_x86_64_2G.dsk : run : mount /dev/vda1 / : write / | ||
| + | </ | ||
