Différences entre les versions de « Creation de VM linux »

De BlaxWiki
Aller à la navigationAller à la recherche
Ligne 8 : Ligne 8 :


<pre>
<pre>
# dd if=/dev/zero of=www1.img bs=1 count=1 seek=10G (n'ecris sur le disque qu'un octet, est cree un fichier de 10Go, dd instantanné)
# dd if=/dev/zero of=/data/www1.img bs=1 count=1 seek=10G (n'ecris sur le disque qu'un octet, est cree un fichier de 10Go, dd instantanné)
# losetup /dev/loop0 www1.img
# losetup /dev/loop0 /data/www1.img
# fdisk /dev/loop0
# fdisk /dev/loop0
On peut soit faire une seule partition /, soit un / et un /boot. Les différences seront marquées plus bas suivant les 2 cas. On créé ici juste un /
On peut soit faire une seule partition /, soit un / et un /boot. Les différences seront marquées plus bas suivant les 2 cas. On créé ici juste un /
Ligne 42 : Ligne 42 :


=== Modification dans l'image ===
=== Modification dans l'image ===
Pour que l'image soit bootable, il y a 3 fichiers à modifier. On peut avoir ici soit du vdX (driver virtio sous kvm), soit du sdX (scsi classique), ou bien alors hdX (ide mais rare)
On peut avoir ici soit du vdX (driver virtio sous kvm), soit du sdX (scsi classique), ou bien alors hdX (ide mais rare). Pour que l'image soit bootable, il y a 3 fichiers à modifier.
On peut bien sur configurer tout de suite aussi la partie réseau (ne pas oublier de vider le fichier /etc/udev/rules.d/70-persistent-net.rules)


* /mnt/etc/fstab
* /mnt/etc/fstab
Ligne 77 : Ligne 78 :


=== Installation de grub ===
=== Installation de grub ===
==== Méthode 1 ====
<pre>
# cd /mnt
# grub --device-map=/dev/null
grub> device (hd0) /data/images/test.img
device (hd0) /data/images/test.img
grub> root (hd0,0)
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  26 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p (hd0,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> quit
</pre>
Error 27r: Unrecognized command
grub> device (hd0) /data/test.img (chemin absolu vers où il se trouve, ici /mnt/file.img)
grub> root (hd0,0)
grub> setup (hd0)
grub> exit
=== Fermeture de l'image ===
==== Fichier img ====
# umount /mnt/
# kpartx -d /dev/loop0
# losetup -d /dev/loop0





Version du 20 novembre 2012 à 17:32

On part ici dans l'hypothèse que l'on a déja une fichier image tar.gz de son OS linux. Pour la création d'une image linux voir cette, il suffit d'installer un linux sur un serveur, rebooter le serveur en pxe, monter les disques, puis faire un tar.gz. La création de la vm se fait sous kvm, mais le principe est le même sur un hyperV.


Création du fichier et detar de l'image

Cas 1 : fichier img

# dd if=/dev/zero of=/data/www1.img bs=1 count=1 seek=10G (n'ecris sur le disque qu'un octet, est cree un fichier de 10Go, dd instantanné)
# losetup /dev/loop0 /data/www1.img
# fdisk /dev/loop0
On peut soit faire une seule partition /, soit un / et un /boot. Les différences seront marquées plus bas suivant les 2 cas. On créé ici juste un /

# fdisk -l /dev/loop0
      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1               1         652     5237158+  83  Linux


# kpartx -a /dev/loop0 (cela nous permet d'avoir acces au sous partition de loop0 : loop0p1, loop0p2...
# mkfs.ext3 /dev/mapper/loop0p1
# mount /dev/mapper/loop0p1 /mnt
(si il y a un /boot monter apres l'autre partition correspondant au /boot)
# cd /mnt
# tar xzvf /nom_image.tar.gz

Cas 2 : fichier block device LV

Travailler avec des fichier en block device (LV ou partion /dev/sdaX) permet de bien meilleur performance de la VM.

  1. lvcreate -L6G -n centos6test vol_kvm1 (lvcreate -LtailleG -n nom_du_lv nom_vg)
  2. cfdisk /dev/vol_kvm1/centos6test
  3. fdisk -l /dev/vol_kvm1/centos6test
     Device Boot      Start         End      Blocks   Id  System

dev/vol_kvm1/centos6test1 1 652 5237158+ 83 Linux

  1. kpartx -a /dev/vol_kvm1/centos6test
  2. mkfs.ext3 /dev/mapper/vol_kvm1-centos6test1
  3. mount /dev/mapper/vol_kvm1-centos6test1 /mnt/

(si il y a un /boot monter apres l'autre partition correspondant au /boot)

Modification dans l'image

On peut avoir ici soit du vdX (driver virtio sous kvm), soit du sdX (scsi classique), ou bien alors hdX (ide mais rare). Pour que l'image soit bootable, il y a 3 fichiers à modifier. On peut bien sur configurer tout de suite aussi la partie réseau (ne pas oublier de vider le fichier /etc/udev/rules.d/70-persistent-net.rules)

  • /mnt/etc/fstab
/dev/vda1       /       ext3    defaults        1       1
# et eventuellement si /boot
# /dev/vda2       /       ext3    defaults        1       1
# et si on a une partition pour le swap
#/dev/vdb1       swap    swap    defaults        0       0
# ou /dev/vdb pour le swap ca revient au même
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /proc                   proc    defaults        0 0
none                    /dev/shm                tmpfs   defaults        0 0
  • /mnt/boot/grub/menu.lst

Ici on rajoute /boot devant le nom du kernel et de l'initramfs car on n'a pas de partition /boot. Si on a une partition /boot, ce n'est pas la peine

efault=0
timeout=5
hiddenmenu
title CentOS (2.6.32-279.5.2.el6.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-279.5.2.el6.x86_64 ro root=/dev/vda1
        initrd /boot/initramfs-2.6.32-279.5.2.el6.x86_64.img
  • /mnt/boot/grub/device.map

La ligne à modifier est celle de hd0

(fd0)   /dev/fd0
(hd0)   /dev/vda

Installation de grub

Méthode 1

# cd /mnt
# grub --device-map=/dev/null
grub> device (hd0) /data/images/test.img
device (hd0) /data/images/test.img

grub> root (hd0,0)
root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  26 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p (hd0,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.

grub> quit

Error 27r: Unrecognized command

grub> device (hd0) /data/test.img (chemin absolu vers où il se trouve, ici /mnt/file.img) grub> root (hd0,0) grub> setup (hd0) grub> exit


Fermeture de l'image

Fichier img

  1. umount /mnt/
  2. kpartx -d /dev/loop0
  3. losetup -d /dev/loop0