©
. Document créé le 5 mai 2009 , mis à jour le 5 mai 2009.Si les faits ne correspondent pas à la théorie, changez les faits. Albert Einstein
Accueil du site > Astuces > MacOSX > Installer une machine virtuelle
Pour installer Gentoo sur une machine virtuelle, vous devez d’abord commencer par récupérer l’archive de Gentoo sur le serveur officiel.
Sélectionnez l’image ISO souhaitée : install-
Inutile de graver un cd, l’installation peut être réalisée directement à partir de l’image ISO.
Pour info, l’exemple ici est basée sur la version Gentoo (obtenue par la commande uname -a) :
Linux livecd 2.6.24-gentoo-r7 #1 SMP Tue Jun 17 12:50:42 UTC 2008 i686 Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz GenuineIntel GNU/Linux
Lancez VMware Fusion.
Cliquez sur le bouton Nouveau situé en bas de la fenêtre « Bibliothèque des machines virtuelles » (ou menu « Fichier »).
Dans la fenêtre Assistant Nouvelle machine virtuelle cliquez sur Continuer sans disque.
Sélectionnez Utiliser le fichier image du disque d’installation du système d’exploitation. Une fenêtre apparaît. Sélectionnez votre fichier image ISO et validez.
Cliquez sur « Continuer ». Dans la boîte « Choisir le système d’exploitation », identifier le système d’exploitation et la version. Cliquez sur « Continuer ».
Dans la boîte « Terminer », personnalisez les réglages et indiquezle titre de votre machine virtuelle (par exemple ici : « Gentoo 2008 ».).
Cliquez sur Terminer.
Les réglages complémentaires sont proposés. Vous pouvez avoir besoin d’accéder à cette machine virtuelle à distance sans passer par un routeur. Dans ce cas, réglez l’option « Réseau » sur « Pont ».
VMware Fusion lance de votre machine virtuelle.
Patientez jusqu’à la sélection du clavier.
Indiquez « fr » puis validez.
Patientez jusqu’à l’apparition du prompt livecd root #.
Si vous désirez continuer l’installation à partir d’un terminal distant :
Editez le fichier /etc/conf.d/keymaps et précisez votre clavier. Ne servira que si vous recommencez l’installation dans la première étape (oui ! il y a deux étapes).
Attention aux réglages de votre économiseur d’énergie. Si arrêt en cours d’installation, il sera – en général – nécessaire de tout recommencer depuis le début (supprimer la machine virtuelle, etc.)
Récupérez les scripts ci-dessous et consultez-les.
L’ensemble de ces scripts d’installation écrit en sh est fortement inspiré de la remarquable documentation de Gentoo (en français).
La version compressée se trouve en fin de paragraphe.
L’installation est effectuée en deux étapes :
Consultez ces scripts. Ils sont largement documentés. Et probablement perfectibles.
Le premier script à éxécuter :
#!/bin/sh
# @author: Christian Paulus (c) 2009 - http://www.quesaco.org
# @modification_date: Fri May 1 12:31:12 2009
echo "****************************************"
echo "Gentoo / MacOS-X VMware Fusion virtual machine installation script (GVMI)"
echo "Script d'installation de Gentoo sur machine virtuelle VMware / MacOS-X"
echo "Christian Paulus (c) 2009 - http://www.quesaco.org"
echo
echo "Etape #1: "
echo "- Formatage et partionnement du disque dur virtuel"
echo "- Montage des partitions destinées à recevoir les distributions"
echo "- Récupération des distributions 'stage3' et 'portage'"
echo "- Installation (copie) de ces distributions sur les points montés"
echo "- Montage des partitions indispensables à la suite de l'installation"
echo "- Utilisation de 'chroot' pour poursuivre l'installation"
echo "****************************************"
# @see: http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml
HOSTNAME="tux"
DOMAINE="foo.bar"
#****************************************
# les distributions
# @see: http://www.gentoo.org/main/en/mirrors2.xml#France
#****************************************
MIRROR_SITE="mirror.ovh.net"
DISTFILES="/gentoo-distfiles/releases"
STAGE_FILE="stage3-i486-20090422.tar.bz2"
STAGE_WGET="wget ftp://$MIRROR_SITE$DISTFILES/x86/current/$STAGE_FILE"
PORTAGE_FILE="portage-latest.tar.bz2"
PORTAGE_WGET="wget ftp://$MIRROR_SITE$DISTFILES/snapshots/current/$PORTAGE_FILE"
echo "########################################"
echo "Generic Machine Instal - part #1"
echo "########################################"
# @see: http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml?part=1&chap=4
# @see: http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml?part=1&chap=3
MY_IP=`ifconfig eth0 | sed -n -e 's/:127\.0\.0\.1 //g' -e 's/ *inet addr:\([0-9.]\+\).*/\1/gp'`
MY_NETMASK=`ifconfig eth0 | sed -n -e 's/\([^M]*\)Mask:\([0-9.]\+\).*/\2/gp'`
MY_BCAST=`ifconfig eth0 | sed -n -e 's/\([^B]*\)Bcast:\([0-9.]\+\).*/\2/gp'`
MY_GATEWAY=`route -n | grep "^0\.0\.0\.0" | sed -n -e 's/0\.0\.0\.0//g' -e 's/ *\([0-9.]\+\).*/\1/gp'`
if [ -z $MY_IP ]
then
echo "Configuration IP manquante..."
echo "Abandon !"
else
echo "Adresse IP machine: $MY_IP Broadcast: $MY_BCAST Netmask: $MY_NETMASK"
fi
if [ -z $MY_GATEWAY ]
then
echo "Configuration IP incomplète..."
echo "Abandon !"
else
echo "Adresse IP passerelle: $MY_GATEWAY"
fi
echo "Partitionner le disque dur ? [O|N]"
read REPONSE
case "$REPONSE" in
[oO]) # découper, partitionner et formater le disque dur
echo "Partionnement du disque dur... "
#@see: http://www.linuxmanpages.com/man8/parted.8.php
parted /dev/sda mklabel msdos
parted /dev/sda mkpartfs primary ext2 1 32
# bootable
parted -s /dev/sda set 1 boot
# le swap
parted /dev/sda mkpartfs primary linux-swap 32 560
# le reste
# @see: http://traduc.org/docs/HOWTO/vf/Filesystems-HOWTO.html#filesystems-HOWTO-fr-7
parted /dev/sda mkpartfs primary ext2 560 4096
# parted ne connait pas ext2
# systeme de fichiers
mke2fs /dev/sda1
mke2fs -j /dev/sda3
mkswap /dev/sda2
swapon /dev/sda2
# montage
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
# @see: http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml?part=1&chap=5
# installation de stage
cd /mnt/gentoo
# Récupération de $STAGE_FILE....
$STAGE_WGET
if [ "$?" -eq "0" ]
then
echo "Ok! [$?]"
else
echo "Impossible de récupérer $STAGE_FILE.... [$?]"
echo "Abandon !"
exit
fi
# tar -xvjpf stage3-*.tar.bz2
tar -xvjpf $STAGE_FILE
# Récupération de $PORTAGE_FILE....
$PORTAGE_WGET
if [ "$?" -eq "0" ]
then
echo "Ok! [$?]"
else
echo "Impossible de récupérer $PORTAGE_FILE.... [$?]"
echo "Abandon !"
exit
fi
# tar -xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
tar -xvjf /mnt/gentoo/$PORTAGE_FILE -C /mnt/gentoo/usr
# un peu de réseau
echo "Recopie configuration resolve"
cp -L /etc/resolv.conf /mnt/gentoo/etc/
# se préparer au chroot
# monter proc et dev
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
# go!
# @see: http://www.linuxmanpages.com/man1/chroot.1.php
echo "########################################"
echo "# chroot nous fait passer dans une autre dimension."
echo "# Les données du script d'installation ne sont plus accessibles ici."
echo "#"
echo "# Pour continuer l'installation, lancez le script gvmi_step2.sh"
echo "########################################"
chroot /mnt/gentoo /bin/bash
#
# un autre monde...
;;
*) # Ne rien faire ?
echo "Opération étape #1 abandonnée"
;;
esac
Le code ci-dessus dans un fichier .zip :
Pour récupérer ce script sur votre machine virtuelle, vous pouvez utiliser la commande wget. Décompressez l’archive à l’aide de la commande unzip.
#!/bin/sh
# @author: Christian Paulus (c) 2009 - http://www.quesaco.org
# @modification_date: Fri May 1 12:31:12 2009
echo "****************************************"
echo "Gentoo / MacOS-X VMware Fusion virtual machine installation script (GVMI)"
echo "Script d'installation de Gentoo sur machine virtuelle VMware / MacOS-X"
echo "Christian Paulus (c) 2009 - http://www.quesaco.org"
echo
echo "Etape #2: "
echo "- Mise à jour des distributions"
echo "- Compilation et installation du noyau"
echo "- réglages complémentaires"
echo "- Installation de divers outils"
echo "- Instalation du noyau"
echo "- Installation de grub"
echo "****************************************"
# chroot oblige. Redeclarer les variables
HOSTNAME="tux"
DOMAINE="foo.bar"
echo "########################################"
echo "Generic Machine Instal - part #2"
echo "########################################"
echo ""
env-update
source /etc/profile
export PS1="(chroot) $PS1"
# documentation sur emerge :
# @see: http://linuxreviews.org/gentoo/emerge/
echo "########################################"
echo "# update portage"
echo "########################################"
emerge --sync
emerge portage
# @see: http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml?part=1&chap=7
# configuration du noyau
# date
cp /usr/share/zoneinfo/Europe/Paris /etc/localtime
# installer les sources du noyau
emerge gentoo-sources
# noyau généric
emerge genkernel
zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
echo "########################################"
echo "# compilation noyau"
echo "########################################"
# la compilation prend environ 30 mn sur mini_mac 1.83 Ghz
genkernel all
# indiquer les partitions du disque dur
cp /etc/fstab /etc/fstab.old
echo -n "# " > /etc/fstab
date >> /etc/fstab
echo "/dev/sda1 /boot ext2 defaults,noatime 1 2" >> /etc/fstab
echo "/dev/sda2 none swap sw 0 0" >> /etc/fstab
echo "/dev/sda3 / ext3 noatime 0 1" >> /etc/fstab
echo "#/dev/cdrom /mnt/cdrom auto noauto,user 0 0" >> /etc/fstab
echo "Contenu de /etc/fstab"
cat /etc/fstab
# les modules complémentaires :
# - la carte réseau
echo "pcnet32" >> /etc/modules.autoload.d/kernel-2.6
echo
MY_IP=`ifconfig eth0 | sed -n -e 's/:127\.0\.0\.1 //g' -e 's/ *inet addr:\([0-9.]\+\).*/\1/gp'`
MY_NETMASK=`ifconfig eth0 | sed -n -e 's/\([^M]*\)Mask:\([0-9.]\+\).*/\2/gp'`
MY_BCAST=`ifconfig eth0 | sed -n -e 's/\([^B]*\)Bcast:\([0-9.]\+\).*/\2/gp'`
MY_GATEWAY=`route -n | grep "^0\.0\.0\.0" | sed -n -e 's/0\.0\.0\.0//g' -e 's/ *\([0-9.]\+\).*/\1/gp'`
# complément réseau
echo "Nom machine: $HOSTNAME"
echo "$HOSTNAME" > /etc/hostname
echo "dns_domain_lo=\"$DOMAINE\"" >> /etc/conf.d/net
echo "config_eth0=(\"$MY_IP netmask $MY_NETMASK brd $MY_BCAST\")" >> /etc/conf.d/net
echo "routes_eth0=(\"default via $MY_GATEWAY\")" >> /etc/conf.d/net
# activer le réseau au démarrage
rc-update add net.eth0 default
# et dans la foulée, ssh
echo "$MY_IP $HOSTNAME.$DOMAINE $HOSTNAME" >> /etc/hosts
# divers compléments facultatifs (mettre en commentaires si besoin)
echo "########################################"
echo "# les logs systèmes"
echo "########################################"
emerge syslog-ng
rc-update add syslog-ng default
emerge logrotate
# le cron
emerge vixie-cron
rc-update add vixie-cron default
# transfert de fichiers
emerge ftp
# sshd pour continuer à prendre la main à distance après l'install
rc-update add sshd default
# éditeur de texte
emerge vim
# installer le noyau
emerge grub
cd /boot/
# echo "splashimage=(hd0,0)/boot/grub/splash.xpm.gz" >> /boot/grub/grub.conf
KERNEL=`ls -t kernel-* | head -n 1`
INITRD=`ls -t initramfs-* | head -n 1`
cp /boot/grub/grub.conf /boot/grub/grub.conf.old
echo -n "# " > /boot/grub/grub.conf
date >> /boot/grub/grub.conf
echo "" >> /boot/grub/grub.conf
echo "default 0" >> /boot/grub/grub.conf
echo "timeout 30" >> /boot/grub/grub.conf
echo "#splashimage=(hd0,0)/boot/grub/splash.xpm.gz" >> /boot/grub/grub.conf
RELEASE=`uname -r`
echo "title Gentoo Linux $RELEASE" >> /boot/grub/grub.conf
echo "root (hd0,0)" >> /boot/grub/grub.conf
echo "kernel /boot/$KERNEL root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3" >> /boot/grub/grub.conf
echo "initrd /boot/$INITRD" >> /boot/grub/grub.conf
grep -v rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/sda
# modifier le clavier
# nano /etc/conf.d/keymaps
cp /etc/conf.d/keymaps /etc/conf.d/keymaps.ori
cat /etc/conf.d/keymaps.ori | sed -e 's/KEYMAP=\"us\"/KEYMAP=\"fr\"/' > /etc/conf.d/keymaps
echo
echo "########################################"
echo "# Mot de passe administrateur (root): "
echo "########################################"
passwd
echo
echo "########################################"
echo "# Vérifiez maintenant votre configuration."
echo "# Si ok, rebootez la machine (commande 'reboot')"
echo "#"
echo "# A tout de suite ;-)"
echo "########################################"
Le code ci-dessus dans un fichier .zip :
Pour récupérer ce script sur votre machine virtuelle, vous pouvez utiliser la commande wget. Décompressez l’archive à l’aide de la commande unzip.
Il semblerait que le démarrage en mode single ne fonctionne pas correctement sous grub. A vérifier.
Pour l’installation de Lilo, voir la documentation sur le site Gentoo.org.
Les forums sont fermés.