====== lguest ====== | :!: Inutile de continuer plus avant: je n'y arrive pas !!! | Lien: *Linux Mag n°121 *http://wiki.debian.org/Lguest ===== 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: FIXME 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''** : FIXME ==== 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 root=/dev/vda1 J'ai une erreur "Trap 13" !