Blog de Flap

10/02/2012

Savoir dans quel environnement (32 ou 64 bits?) s’exécute un programme en C++ Builder 6.0 32bits

Filed under: Perso,Virtualisation — flap @ 17:01

J’ai mis un peu de temps à réaliser ce bout de code, donc je le mets à disposition de la communauté…

http://pastebin.com/E5HPJE8C

int __fastcall TF_Main::Is64BitOS()
{
   // Necessite #include <windows.h>
   // http://msdn.microsoft.com/en-us/library/windows/desktop/ms684139%28v=vs.85%29.aspx
   // http://stackoverflow.com/questions/601089/detect-whether-current-windows-version-is-32-bit-or-64-bit

   typedef BOOL (WINAPI *tIsWow64Process)(HANDLE, PBOOL);
   static HMODULE hKernel32 = GetModuleHandle(TEXT("kernel32.dll"));

   int IsWow64 = 0;
   hKernel32 = LoadLibrary("kernel32.dll");

   if (hKernel32 == 0)
   {
      // Probleme lors du chargement de kernel32.dll
      return(-1);
   }

   tIsWow64Process IsWow64Process = (tIsWow64Process) GetProcAddress(hKernel32, "IsWow64Process");
   if (IsWow64Process != NULL)
   {
      if (IsWow64Process(GetCurrentProcess(), &IsWow64))
      {
         FreeLibrary(hKernel32);
         return(IsWow64); // On est dans un environnement Win64
      }
      else
      {
         // Probleme lors de l'appel de IsWow64Process()
         FreeLibrary(hKernel32);
         return(-1);
      }
   }
   else
   {
      FreeLibrary(hKernel32);
      return(0); // On est dans un environnement Win32
   }
}

Exemple d'appel à la fonction Is64BitOS()...
   Is64Bits = Is64BitOS();

   if(Is64Bits > 0)
   {
      ShowMessage("Le programme tourne sur Windows 64 bits.");
      ProgramPath = "\\Program Files (x86)\\";
   }
   else
   if(Is64Bits == 0)
   {
      ShowMessage("Le programme tourne sur Windows 32 bits.");
      ProgramPath = "\\Program Files\\";
   }
   else
   if(Is64Bits == -1)
   {
      ShowMessage("Le programme ne sait pas déterminer son environnement d'exécution en 32 ou 64 bits...\nVeuillez signaler ce problème aux développeurs ;-)");
      ProgramPath = "\\Program Files\\";
   }

02/08/2011

Xen : Augmenter la taille de disque d’un domU

Filed under: Virtualisation — flap @ 07:40

Cet article résume rapidement la liste des commandes et les points importants pour redimensionner un DomU utilisant des fichiers comme disque.

#Créer un fichier temporaire pour augmenter la taille (ici 1Go)
dd if=/dev/zero of=/tmp/temps_expand bs=1024k count=1000

#Stopper votre machine virtuelle
xm shutdown test.example.com

#Sauvegarder votre image (on ne sait jamais)
cp -a /xen/domains/test.example.com/disk.img /xen/domains/test.example.com/disk.img

#Ajouter le ficher disque temporaire au fichier disque du serveur virtuel.
cat /tmp/temps_expand >> /xen/domains/test.example.com/disk.img
#Pour l’agrandir de 10 Gio d’un coup, on peut par exemple faire
for i in $(seq 1 10); do echo « $i »; cat /tmp/temps_expand >> /xen/domains/test.example.com/disk.img; done

#Prendre en compte le changement de taille.
resize2fs -f /xen/domains/test.example.com/disk.img

#Redémarrer le serveur virtuel
xm create test.example.com.cfg

Cet article a été honteusement pompé depuis cette adresse

http://blog.admin-linux.org/howto/howto-xen-redimensionnement-du-disque-dun-domu

J’ai testé la manip depuis Xen 4.0 sous debian 6, KS 2G et cela fonctionne à  merveille.

Merci à  son auteur…

14/07/2011

Install Xen sur KS 2G OVH Debian 6

Filed under: Virtualisation — flap @ 20:40

root@ks369475:~# aptitude install linux-image-xen-amd64 linux-modules-xen-amd64

Impossible de trouver un paquet dont le nom ou la description correspond à « linux-modules-xen-amd64 »
Impossible de trouver un paquet dont le nom ou la description correspond à « linux-modules-xen-amd64 »
Les NOUVEAUX paquets suivants vont être installés :
firmware-linux-free{a} initramfs-tools{a} klibc-utils{a} libklibc{a} libuuid-perl{a} linux-base{a}
linux-image-2.6.32-5-xen-amd64{a} linux-image-xen-amd64
Les paquets partiellement installés suivants seront configurés :
linux-image-2.6.26-2-xen-amd64
0 paquets mis à jour, 8 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 29,4 Mo d’archives. Après dépaquetage, 102 Mo seront utilisés.
Voulez-vous continuer ? [Y/n/?] Y
Prendre : 1 http://mirror.ovh.net/debian/ squeeze/main libklibc amd64 1.5.20-1+squeeze1 [53,5 kB]
Prendre : 2 http://mirror.ovh.net/debian/ squeeze/main klibc-utils amd64 1.5.20-1+squeeze1 [179 kB]
Prendre : 3 http://mirror.ovh.net/debian/ squeeze/main initramfs-tools all 0.98.8 [89,5 kB]
Prendre : 4 http://mirror.ovh.net/debian/ squeeze/main libuuid-perl amd64 0.02-4 [10,4 kB]
Prendre : 5 http://mirror.ovh.net/debian/ squeeze/main linux-base all 2.6.32-35 [173 kB]
Prendre : 6 http://mirror.ovh.net/debian/ squeeze/main linux-image-2.6.32-5-xen-amd64 amd64 2.6.32-35 [28,7 MB]
Prendre : 7 http://mirror.ovh.net/debian/ squeeze/main firmware-linux-free all 2.6.32-35 [151 kB]
Prendre : 8 http://mirror.ovh.net/debian/ squeeze/main linux-image-xen-amd64 amd64 2.6.32+29 [4 360 B]
29,4 Mo téléchargés en 8s (3 555 ko/s)
Préconfiguration des paquets…
Sélection du paquet libklibc précédemment désélectionné.
(Lecture de la base de données… 25218 fichiers et répertoires déjà installés.)
Dépaquetage de libklibc (à partir de …/libklibc_1.5.20-1+squeeze1_amd64.deb) …
Sélection du paquet klibc-utils précédemment désélectionné.
Dépaquetage de klibc-utils (à partir de …/klibc-utils_1.5.20-1+squeeze1_amd64.deb) …
Sélection du paquet initramfs-tools précédemment désélectionné.
Dépaquetage de initramfs-tools (à partir de …/initramfs-tools_0.98.8_all.deb) …
Sélection du paquet libuuid-perl précédemment désélectionné.
Dépaquetage de libuuid-perl (à partir de …/libuuid-perl_0.02-4_amd64.deb) …
Sélection du paquet linux-base précédemment désélectionné.
Dépaquetage de linux-base (à partir de …/linux-base_2.6.32-35_all.deb) …
Sélection du paquet linux-image-2.6.32-5-xen-amd64 précédemment désélectionné.
Dépaquetage de linux-image-2.6.32-5-xen-amd64 (à partir de …/linux-image-2.6.32-5-xen-amd64_2.6.32-35_amd64.deb) …
Sélection du paquet firmware-linux-free précédemment désélectionné.
Dépaquetage de firmware-linux-free (à partir de …/firmware-linux-free_2.6.32-35_all.deb) …
Sélection du paquet linux-image-xen-amd64 précédemment désélectionné.
Dépaquetage de linux-image-xen-amd64 (à partir de …/linux-image-xen-amd64_2.6.32+29_amd64.deb) …
Traitement des actions différées (« triggers ») pour « man-db »…
Paramétrage de libklibc (1.5.20-1+squeeze1) …
Paramétrage de klibc-utils (1.5.20-1+squeeze1) …
Paramétrage de initramfs-tools (0.98.8) …
update-initramfs: deferring update (trigger activated)
Paramétrage de linux-image-2.6.26-2-xen-amd64 (2.6.26-22) …
update-initramfs: Generating /boot/initrd.img-2.6.26-2-xen-amd64
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
W: mdadm: no arrays defined in configuration file.
Generating grub.cfg …
Warning: update-grub_lib is deprecated, use grub-mkconfig_lib instead
Found linux image: /boot/bzImage-2.6.38.2-xxxx-grs-ipv6-64
Found linux image: /boot/vmlinuz-2.6.32-5-xen-amd64
Found linux image: /boot/vmlinuz-2.6.26-2-xen-amd64
Found initrd image: /boot/initrd.img-2.6.26-2-xen-amd64
No volume groups found
done
Paramétrage de libuuid-perl (0.02-4) …
Paramétrage de linux-base (2.6.32-35) …
Paramétrage de linux-image-2.6.32-5-xen-amd64 (2.6.32-35) …
Running depmod.
Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.32-5-xen-amd64
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
W: mdadm: no arrays defined in configuration file.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 2.6.32-5-xen-amd64 /boot/vmlinuz-2.6.32-5-xen-amd64
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 2.6.32-5-xen-amd64 /boot/vmlinuz-2.6.32-5-xen-amd64
Generating grub.cfg …
Warning: update-grub_lib is deprecated, use grub-mkconfig_lib instead
Found linux image: /boot/bzImage-2.6.38.2-xxxx-grs-ipv6-64
Found linux image: /boot/vmlinuz-2.6.32-5-xen-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-xen-amd64
Found linux image: /boot/vmlinuz-2.6.26-2-xen-amd64
Found initrd image: /boot/initrd.img-2.6.26-2-xen-amd64
No volume groups found
done
Paramétrage de firmware-linux-free (2.6.32-35) …
Paramétrage de linux-image-xen-amd64 (2.6.32+29) …
Traitement des actions différées (« triggers ») pour « initramfs-tools »…
update-initramfs: Generating /boot/initrd.img-2.6.32-5-xen-amd64
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
W: mdadm: no arrays defined in configuration file.

État actuel : 0 paquet cassé [-1].
root@ks369475:~#

Apres, il faut modifier l’ordre de boot des kernel pour faire prendre en compte le nouveau kernel  XEN par grub2

Modifier le ficher /etc/default/grub

# La configs des noyaux est ici : /boot/grub/grub.cfg
#GRUB_DEFAULT=0 1er noyau de /boot/grub/grub.cfg#2eme noyau de /boot/grub/grub.cfg, le noyau XEN
GRUB_DEFAULT=1

Renommer le fichier /etc/grub.d/10_linux

mv /etc/grub.d/10_linux /etc/grub.d/50_linux

update-grub

Modifier /etc/xen/xend-config.sxp comme ceci :

(network-script ‘network-route netdev=eth0′)
(vif-script     vif-route)

Ensuite, il faut transferer les 2 fichiers qui correspondent aux machines virtuelles deja existantes et qui peuvent etre dans /home/xen/domains.

Dans ces fichiers, il faut remplacer les references a sda par xvda car les noms ont change entre la version de Xen de debian 5 et celle de debian 6.

De la meme façon, il faut déplacer les fichiers présents dans /etc/xen

Voilà!

02/06/2010

Installation dom0 Xen sur Debian Lenny 64 bits, Kimsufi 250G 2010 à  17,93€ TTC chez OVH ;-)

Filed under: Virtualisation — flap @ 17:08

dpkg -i  linux-image-2.6.26-2-xen-amd64_2.6.26-22_amd64.deb linux-modules-2.6.26-2-xen-amd64_2.6.26-22_amd64.deb

apt-get install grub mdadm initramfs-tools

fdisk -l
Disque /dev/sda: 250.0 Go, 250059350016 octets
255 heads, 63 sectors/track, 30401 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Identifiant disque: 0x0cf1421a

Périphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/sda1   *           1         392     3148708+  83  Linux
/dev/sda2             393       30336   240525180   83  Linux
/dev/sda3           30337       30401      522112+  82  Linux swap / Solaris

grub-install –recheck /dev/sda

grub
>root (hd0,0)
>find /boot/grub/stage2 # si pas trouvé, essayer find grub/stage2
>       hd(0,0)
>       hd(1,0) # vous obtenez ceci si vous êtes en RAID

# on utilise le résultat du find
>setup (hd0)
>setup (hd1) # uniquement si vous êtes en RAID
>quit

apt-get install xen-tools

reboot

Powered by WordPress