Archives de catégorie : Virtualisation

Installer une tablette virtuelle android 4.0.4 dans VirtualBox

Le projet Android-x86 permet de faire tourner une tablette sous Android sur un PC. Il est possible de l’installer en dur sur un PC ou encore dans une machine virtuelle type Virtualbox.

Dans ce billet, je vais traiter l’installation dans une machine virtuelle sous VirtualBox

Je passe l’installation de VirtualBox. Pour installer la tablette virtuelle, après plusieurs recherches, j’ai utilisé une image VirtualBox déjà prête. il suffit ensuite de l’installer par le menu: Fichier -> Importer une application virtuelle.

J’ai laissé les options par défaut, celles-ci peuvent être modifiées par la suite avec le bouton configuration.

J’ai en particulier ajouté un peu de RAM vidéo (passé à 12 Mo) et surtout pour la carte réseau configurée en « Accès par Pont » au lieu du « NAT ». Le NAT fonctionne parfaitement mais c’est l’installation des apps Google qui posait souci, celles-ci refusant tout simplement de s’installer. Pour affecter l’adresse IP à la Tablette, un serveur DHCP fait l’affaire, ceci est disponible sur toute BOX ou Routeur X ou Y.

J’ai trouvé l’image de la machine virtuelle un Android ICS 4.0.4 patché ARM et possédant quelques apps Google La référence: buildroid_vbox86t_4.0.4_r1.1-20120610b_gapps_houdini

L’importation est très rapide, le lancement tout autant.

Une fois lancée, il faut la paramétrer dans sa langue, cliquer sur les différents boutons comme le TimeZone. Il n’est pas nécessaire de saisir un compte Google, la tablette pourrait même si l’on veut être utilisée de façon anonyme, mais cela ne présente pas trop d’intérêt. La principale utilisation étant de pouvoir en faire le tour avant d’invertir dans un achat physique.

Tout fonctionnait parfaitement, installation d’application, connexion sur Gmail, etc…..

Le seul petit souci venait du clavier physique du PC car la tablette possède son clavier Virtuel comme toute tablette, mais il est possible d’utiliser le clavier du PC, car piloter le clavier virtuel à clics de souris, j’avoue que ce n’est pas top.

Malgré avoir choisi un clavier français, celui-ci restait désespérément en Qwerty et non en Azerty ce qui est franchement galère même si on finit par s’y habituer.

Je me suis fortement inspiré de ces deux liens pour faire la manip.

http://www.kandroid.org/online-pdk/guide/keymaps_keyboard_input.html et celui-ci http://www.jordimir.com/2012/06/19/installer-android-sur-pc-netbook/

Pour la mise en œuvre voila ma méthode.

Dans un premier temps, j’ai téléchargé une image iso de SystemRescueCd

J’ai ajouté cette image dans la configuration de la machine Android, « ajouter un Lecteur CD/DVD » si ce n’est pas déjà fait, puis « Choisir un fichier CD/DVD virtuel ».

J’ai démarré sur ce liveCD, choix 1, et lang FR, une fois le LiveCD lancé, je donne un mot de passe à root (passwd…)

J’ai ensuite téléchargé le fichier zip contenant le Clavier Azerty à l’adresse suivante: http://code.google.com/p/eee-qwertz/

J’ai monté dans le LiveCD la partition Android contenant la racine /system, soit sda6 pour moi.

mount /dev/sda6 /mnt/backup

Pour la suite des commandes c’est ici:

unzip eee-qwertz_0.2_r38.zip -d clavier
cd clavier/
ls -la
scp azerty_fr_FR.kcm root@192.168.0.126:/mnt/backup/usr/keychars/.
scp azerty_fr_FR.kl root@192.168.0.126:/mnt/backup/usr/keylayout/.
scp azerty_internal.idc root@192.168.0.126:/mnt/backup/usr/idc/AT_Translated_Set_2_keyboard.idc
umount /mnt/backup

J’arrête la machine vituelle et je retire le CD live.

Démarrage normal la machine Android virtuelle, et vérification du clavier dans le navigateur, tout fonctionne, « a », « q », « m », « , » et même le pavé numérique.

 

Installation de Proxmox VE en raid1 logiciel

Proxmox VE est un système de virtualisation basé sur la technologie OpenVZ et KVM. Pour disposer de la virtualisation KVM le processeur doit disposer des instructions intel VT ou amd V.
Pour vérifier si le processeur est compatible, il suffit de lancer la commande suivante qui doit retourner quelque chose.

egrep ‘(vmx|svm)’ /proc/cpuinfo

Ceci permettra d’installer des systèmes hôtes comme: Centos, Fédora, Windows comme sur un PC en dur.

Proxmox fournit une image ISO qui permet d’installer un tel système en quelques clics et avec une rapidité déconcertante. Le petit souci est que Proxmox ne gère pas nativement le RAID logiciel, de plus les cartes mères vendues supposant faire du raid matériel sont en faite du FakeRaid. Un vrai contrôleur raid coute très cher. J’ai trouvé un tuto qui permet d’installer un raid logiciel. Je l’ai adapter à ma config, le tout a été testé dans une Virtualbox ce qui m’a permis de faire plusieurs essais avant de parvenir au résultat final.

Première précaution : il faut créer 2 disques virtuels avec une taille fixe et 4 Go minimum par disque.

Plus de blabla, la liste des commandes à lancer.

On installe déjà la distribution Proxmox sans se préoccuper du raid, choisir installation sur /dev/sda

Une fois installé, un premier reboot et le système est déjà fonctionnel.

Mise en place du RAID logiciel:

Le raid sera basé sur le soft mdadm.

1) Vérification et mise à jour si besoin de la distribution:
apt-get update
apt-get dist-upgrade -y
reboot

2) Installation du logiciel qui va permettre la gestion du raid.
apt-get install mdadm
yes to all
update-initramfs -u -t
reboot

3) Copie de la structure du premier disque sur le second:
sfdisk -d /dev/sda | sfdisk /dev/sdb –force
sfdisk -l /dev/sda
sfdisk -l /dev/sdb

4) Création du raid:

– Création des array du raid.

mdadm –create /dev/md0 –level=1 –raid-disks=2 missing /dev/sdb1
mdadm –create /dev/md1 –level=1 –raid-disks=2 missing /dev/sdb2
mdadm –examine –scan >> /etc/mdadm/mdadm.conf

– Copie de la partition /boot sur la partition du nouveau disque configuré en raid

copie la partition /boot
mkfs.ext3 /dev/md0
mkdir /mnt/md0
mount /dev/md0 /mnt/md0/
cp -ax /boot/* /mnt/md0/.

– On modifie le /etc/fstab pour booter sur le nouveau disque raid.

l’on remplace l’uuid du /dev/sda1 par le nouvel uuid du /dev/md0
On obtient la liste des uuid par la commande : blkid

vi /etc/fstab
UUID=5664deb0-6da2-45a1-9748-496f06a1b808 /boot ext3 defaults 0 1
reboot

Logiquement tout doit bien se passer, la suite des opérations:

On vérifie que l’on boot bien sur le raid qui contient uniquement le disque /dev/sdb

df # on boot bien sur /dev/md0

– Ajout de la partition /dev/sda1 dans le raid 1.

Cette opération va écraser le contenu du /dev/sda1 avec le contenu du /dev/md0.

mdadm –add /dev/md0 /dev/sda1
On vérifie en temps réel la recopie à l’identique de la partition.
watch cat /proc/mdstat (ctrl+c pour sortir)
reboot

A ce niveau tout doit encore bien se passer.
Les choses se compliquent. Proxmox créé des partitions de type lvm, on va donc devoir recréer tout cela.

– création et recopie des partitions LVM.

– Création du volume LVM physique.
pvcreate /dev/md1
– Extention du volume LVM pour permettre la copie des données.
vgextend pve /dev/md1
– Déplacement des données du disque /dev/sda2 sur le nouveau volume raid /dev/md1.
pvmove /dev/sda2 /dev/md1
– Attendre le 100% OK
– On retire le volume LVM du premier disque /dev/sda2 qui est désormais vide
vgreduce pve /dev/sda2

– Ajout de la partition /dev/sda2 dans le raid 1.
mdadm –add /dev/md1 /dev/sda2
watch cat /proc/mdstat
Attendre la fin de la construction pour sortir. (ctrl+c)

– On va ajouter dans grub le démarrage dur le 2ème disque physique.

vi /boot/grub/menu.lst
….
….
title           Proxmox Virtual Environment, kernel 2.6.18-2-pve-hd0
root            (hd0,0)
kernel          /vmlinuz-2.6.18-2-pve root=/dev/mapper/pve-root ro
initrd          /initrd.img-2.6.18-2-pve

title           Proxmox Virtual Environment, kernel 2.6.18-2-pve-hd1
root            (hd1,0)
kernel          /vmlinuz-2.6.18-2-pve root=/dev/mapper/pve-root ro
initrd          /initrd.img-2.6.18-2-pve

– Installation de grub dans le mbr:

grub-install /dev/sda
grub-install /dev/sdb

reboot final OK

Génial, tout fonctionne le système est en raid 1 et fonctionne parfaitement.

Quelques tests:

On casse:
mdadm –manage /dev/md1 –fail /dev/sda2
mdadm –manage /dev/md1 –remove /dev/sda2
cat /proc/mdstat
reboot

On répare:
mdadm –zero-superblock /dev/sda2
mdadm –add /dev/md1 /dev/sda2
watch cat /proc/mdsta
t # OK

Si changement de disque dur en vrai, refaire un grub-install /dev/sda et /dev/sdb

Attention pour l’installation de grub, il semble qu’il faille lancer en plus les commandes suivantes.

grub

grub> root (hd0,0)

grub> setup (hd0)

et

grub> root (hd1,0)

grub> setup (hd1)

Installer systemrescueCD sur clé USB

SystemRescueCD est un cdrom de sauvegarde et restauration sous linux. Il permet d’effectuer des sauvegardes avant de lancer des opérations sur un systeme en production.

Il s’agit d’une image iso pouvant être gravée sur un CDROM ou une clé USB.

La manip décrite sur le site pour l’installation sur clé USB passe sans problème.

Dans un premier temps, il faut télécharger l’iso CD sur le site http://www.sysresccd.org/Download

Ensuite, j’ai réalisé la création de la clé USB en bootant avec l’mage ISO dans une machine virtuelle sous VirtualBOX http://www.virtualbox.org/

Au boot de l’image ISO, je prends le premier choix et je choisis la langue (16 pour le clavier Français). Ensuite j’insère la cle USB (512 Mo) vide mais formatée de base en FAT. La clé est reconnue.

Voici les commandes à lancer:

root@sysresccd /root % sysresccd-usbstick listdev
Device [/dev/sda] detected as [USB2.0   Flash Disk      ] is removable and size=491MB
Device [/dev/sda] is not mounted
Device [/dev/sda] has one partition: /dev/sda1
root@sysresccd /root % sysresccd-usbstick writembr /dev/sda
The device [/dev/sda] seems to be big enough: 491 MB.
–> install-mbr /dev/sda –force
–> parted -s /dev/sda mklabel msdos
–> parted -s /dev/sda mkpartfs primary fat32 0 100%
Warning: The resulting partition is not properly aligned for best performance.
–> parted -s /dev/sda set 1 boot on
root@sysresccd /root % sysresccd-usbstick format /dev/sda1
The device [/dev/sda1] seems to be big enough: 490 MB.
mkfs.vfat 3.0.2 (28 Feb 2009)
Partition /dev/sda1 has been successfully formatted
root@sysresccd /root % sysresccd-usbstick copyfiles /dev/sda1
The device [/dev/sda1] seems to be big enough: 490 MB.
/dev/sda1 successfully mounted on /mnt/usbstick
Free space on /mnt/usbstick is 491MB
Files have been successfully copied to /dev/sda1
root@sysresccd /root % sysresccd-usbstick syslinux /dev/sda1
syslinux has successfully prepared /dev/sda1

Il ne reste plus qu’à booter avec la clé ainsi formatée et de réaliser les opérations de sauvegarde, restauration, réparation.

vzyum upgrade failed

Impossible d’effectuer la mise à jour d’un VPS sous FC5 + openVZ

Message d’erreur:

[root@openvz ~]# vzyum 102 upgrade
exec /usr/share/vzyum/bin/yum -c /vz/template/fedora-core/5/i386/config/yum.conf –installroot /vz/root/102 –vps=102 upgrade
rpmdb: unable to initialize mutex: Argument invalide
rpmdb: PANIC: Argument invalide
rpmdb: PANIC: DB_RUNRECOVERY: Fatal error, run database recovery
error: db4 error(-30977) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 – (-30977)
error: cannot open Packages database in /vz/root/102/var/lib/rpm
Traceback (most recent call last):
File « /usr/share/vzyum/bin/yum », line 28, in ?
yummain.main(sys.argv[1:])
File « /usr/share/vzyum/yum-cli/yummain.py », line 75, in main
base.getOptionsConfig(args)
File « /usr/share/vzyum/yum-cli/cli.py », line 172, in getOptionsConfig
self.doConfigSetup(fn=opts.conffile, root=root, vps=opts.vps)
File « /usr/share/vzyum/lib/yum/__init__.py », line 82, in doConfigSetup
self.conf = config.yumconf(configfile=fn, root=root, vps=vps)
File « /usr/share/vzyum/lib/yum/config.py », line 271, in __init__
self.yumvar[‘releasever’] = self._getsysver()
File « /usr/share/vzyum/lib/yum/config.py », line 384, in _getsysver
idx = ts.dbMatch(‘provides’, self.getConfigOption(‘distroverpkg’))
TypeError: rpmdb open failed

La solution:

[root@openvz ~]# vzctl enter 102
entered into VE 102
[root@db01 /]# cd
[root@db01 ~]# rpm -vv –initdb
D: opening db environment /var/lib/rpm/Packages create:cdb:mpool
D: opening db index /var/lib/rpm/Packages create mode=0x42
D: locked db index /var/lib/rpm/Packages
D: closed db index /var/lib/rpm/Packages
D: closed db environment /var/lib/rpm/Packages
D: May free Score board((nil))

Listage:

[root@db01 ~]# ls -la /var/lib/rpm/
total 5784
drwxr-xr-x 2 rpm rpm 4096 Apr 3 18:32 .
drwxr-xr-x 7 root root 4096 Apr 3 18:30 ..
-rw-r–r– 1 rpm rpm 708608 Mar 29 16:34 Basenames
-rw-r–r– 1 rpm rpm 12288 Mar 29 16:34 Conflictname
-rw-r–r– 1 rpm rpm 167936 Mar 29 16:34 Dirnames
-rw-r–r– 1 rpm rpm 655360 Mar 29 16:34 Filemd5s
-rw-r–r– 1 rpm rpm 12288 Mar 29 16:34 Group
-rw-r–r– 1 rpm rpm 8192 Mar 29 16:34 Installtid
-rw-r–r– 1 rpm rpm 12288 Mar 29 16:34 Name
-rw-r–r– 1 rpm rpm 4272128 Mar 29 16:34 Packages
-rw-r–r– 1 rpm rpm 90112 Mar 29 16:34 Providename
-rw-r–r– 1 rpm rpm 28672 Mar 29 16:34 Provideversion
-rw-r–r– 1 rpm rpm 12288 Apr 25 2006 Pubkeys
-rw-r–r– 1 rpm rpm 45056 Mar 29 16:34 Requirename
-rw-r–r– 1 rpm rpm 32768 Mar 29 16:34 Requireversion
-rw-r–r– 1 rpm rpm 12288 Mar 29 16:34 Sha1header
-rw-r–r– 1 rpm rpm 12288 Mar 29 16:34 Sigmd5
-rw-r–r– 1 rpm rpm 12288 Mar 29 16:34 Triggername
-rw-r–r– 1 root root 0 Apr 3 18:32 __db.000
-rw-r–r– 1 root root 24576 Apr 3 18:32 __db.001
-rw-r–r– 1 root root 1318912 Apr 3 18:32 __db.002
-rw-r–r– 1 root root 450560 Apr 3 18:32 __db.003

VZYUM OK

[root@openvz ~]# vzyum 102 upgrade
exec /usr/share/vzyum/bin/yum -c /vz/template/fedora-core/5/i386/config/yum.conf –installroot /vz/root/102 –vps=102 upgrade
Setting up Upgrade Process
Setting up repositories
fc5-base 100% |=========================| 1.1 kB 00:00
fc5-vz-addons 100% |=========================| 951 B 00:00
fc5-updates-released 100% |=========================| 1.2 kB 00:00
Reading repository metadata in from local files
No Packages marked for Update/Obsoletion

Montage NFS sous noyau openVZ

Cet article décrit le montage de partitions NFS dans des serveurs virtuels (VE) avec un noyau openvz.

La configuration est la suivante:

– 1 Serveur sous centos 4.4 (HN) avec noyau 2.6.18-8.el5.028stab027.1
– 2 serveurs web (2 VE) avec une partition nfs montée pour les fichiers web
– 1 serveur FTP (VE) avec 2 montages NFS pour les fichiers.

Nota: L’authentification FTP se fait via un serveur MySQL qui se trouve lui aussi sur un autre serveur virtuel (VE)


Sur le serveur (HN)

Le nouveau noyau 2.6.18-8.el5.028stab027.1 permet de monter des partitions nfs dans les serveurs virtuels (VE).

Prépration du HN.
Montage du module NFS:

modprobe nfs

Les fichiers web se trouvent sur une partition du HN soit /nfs_mount/web/web01/ et /nfs_mount/web/web03.

Pour pouvoir monter le nfs sur le VE:

vzctl set 101 –features « nfs:on » –save
vzctl set 113 –features « nfs:on » –save
vzctl set 114 –features « nfs:on » –save

Vérification

vzctl exec 101 cat /proc/filesystems
ext2
ext3
nodev rpc_pipefs
nodev autofs
nodev proc
nodev sysfs
nodev tmpfs
nodev devpts
nodev nfs

Sur le (HN) il faudra mettre à 1 le fichier suivant, sinon pas de montage nfs possible dans les VE.

echo 1 > /proc/sys/kernel/ve_allow_kthreads

Configuration des fichiers du HN.
/etc/hosts.allow

portmap: 192.168.0.0/255.255.255.0
lockd: 192.168.0.0/255.255.255.0
rquotad: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0
statd: 192.168.0.0/255.255.255.0

/etc/hosts.deny

portmap:ALL

/etc/exports

/nfs_mount/web/web03 192.168.0.0/255.255.255.0(rw,async,no_root_squash)
/nfs_mount/web/web01 192.168.0.0/255.255.255.0(rw,async,no_root_squash)

Nota: exportfs pour lister les montages NFS et exportfs -ra pour valider une modification du fichier.

Démarrage de NFS sur le (HN)

/etc/init.d/portmap start
/etc/init.d/nfs start

Sur le serveur virtuel (VE)

apt-get install portmap

Montage du NFS sur le (VE)

mount -t nfs 192.168.0.253:/nfs_mount/web/web03 /var/www/vhosts

exemple, montage du serveur FTP:

vzctl exec 114 df -hT
Filesystem Type Size Used Avail Use% Mounted on
simfs simfs 1.0G 152M 873M 15% /
tmpfs tmpfs 188M 0 188M 0% /dev/shm
nfs nfs 4.9G 1.8G 2.9G 39% /home/ftp/web03
nfs nfs 4.9G 1.8G 2.9G 39% /home/ftp/web01

Il est possible de faire le montage à partir du (HN)

vzctl exec 113 mount -t nfs 192.168.0.253:/nfs_mount/web/web03 /var/www/vhosts

Les possibilités sont gigantesques, un grand bravo à l’équipe openVZ. http://openvz.org/