Table des matières
lguest
Inutile de continuer plus avant: je n'y arrive pas !!! |
Lien:
- Linux Mag n°121
Introduc
pre-requis
Un noyau recent. Par exemple:
$ uname -r 2.6.26-2-686
Une conf adequat:
$ grep CONFIG_LGUEST /boot/config-`uname -r` CONFIG_LGUEST_GUEST=y CONFIG_LGUEST=m
ainsi que :
$ grep CONFIG_VIRTIO /boot/config-`uname -r` CONFIG_VIRTIO_BLK=m CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_CONSOLE=y CONFIG_VIRTIO=y CONFIG_VIRTIO_RING=y CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_BALLOON=m
A verifier: il parait que c'est mieux si les modules sont en dur ('y' au lieu de 'm')
lguest , le programme
Installer les sources (a adapter selon son noyau). Dans le cas de Lenny:
# aptitude install linux-source
et puis:
# cd /usr/src
si besoin:
# ln -s /usr/src/linux-source-2.6.26 ./linux
Pour utiliser /usr/src/linux
par la suite.
et puis:
# cd /usr/src/linux/Documentation/lguest # make cc -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include lguest.c -lz -o lguest # mv lguest /usr/local/bin/lguest-`uname -r` # cd /usr/local/bin/ # ln -s /usr/local/bin/lguest-`uname -r` ./lguest
Afin d'avoir enfin un executable lguest
img
creation
Créer une image de debian… 4Go de disk par exemple.
# dd if=/dev/zero of=./lguest.img bs=1M count=4000
monter l'image comme un disk (avec que des zero):
# losetup /dev/loop0 ./lguest.img
Creer les partitions dedans:
# cfdisk /dev/loop0
ou avec un autre.
Aprés ça, on vérifie le résultat:
# fdisk -ul /dev/loop0 Disk /dev/loop0: 4194 MB, 4194304000 bytes 255 heads, 63 sectors/track, 509 cylinders, total 8192000 sectors Units = sectors of 1 * 512 = 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/loop0p1 63 6859754 3429846 83 Linux /dev/loop0p2 6859755 8177084 658665 82 Linux swap / Solaris
Parfait.
On detache le 'loop'
# losetup -d /dev/loop0
On utilise kpartx
pour monter la partition.
Il doit y avoir plus simple ! |
# kpartx -l ./lguest.img loop0p1 : 0 6859692 /dev/loop0 63 loop0p2 : 0 1317330 /dev/loop0 6859755
# kpartx -a ./lguest.img
Les “partitions” apparaissent dans /dev/mapper/…
# ls /dev/mapper/ control loop0p1 loop0p2
Donc, on peut les manipuler, et notamment, les formater:
# mkfs.ext3 /dev/mapper/loop0p1 # mkswap /dev/mapper/loop0p2
et mounter la partition “ext3”:
# mount /dev/mapper/loop0p1 /mnt/test
# debootstrap --arch i386 --include=locales,udev,exim4,openssh-server lenny /mnt/test ftp://ftp.fr.debian.org/debian
configuration
inittab
Editer **''/mnt/test/etc/inittab''** , afin d'avoir:
node hvc0 ( je crois que udev
créé tout seul ce node , mais bon… )
$ grep -B1 hvc0 /usr/src/linux/Documentation/devices.txt 229 char IBM iSeries/pSeries virtual console 0 = /dev/hvc0 First console port
# mknod /mnt/test/dev/hvc0 c 229 0
disk vda
$ grep -B1 vda /usr/src/linux/Documentation/devices.txt 112 block IBM iSeries virtual disk 0 = /dev/iseries/vda First virtual disk, whole disk -- ....
dans …/etc/fstab
:
a la fin
# umount /mnt/test # kpartx -d ./lguest.img loop deleted : /dev/loop0
virtuel
( # lguest 128 /boot/initrd.img-`uname -r` –block=./lguest.img root=/dev/vda1 )
# lguest --initrd=/boot/initrd.img-`uname -r` --block=./lguest.img 128 <vmlinux> root=/dev/vda1
J'ai une erreur “Trap 13” !