pascals.blog

Pascal Sauliere | Microsoft France | Infrastructure, sécurité, cloud, et plus si affinités

Heure correcte dans une VM Linux dans Hyper-V : la fin

Heure correcte dans une VM Linux dans Hyper-V : la fin

  • Comments 4
  • Likes

Suite et fin de ce sujet : soit un Linux non supporté par Hyper-V, donc sans Integration Components pour le maintenir à l'heure. Comment faire en sorte que son horloge ne dérive pas trop dans le temps ? J'ai deux VM dans ce cas à la maison : une Debian 4.0r3 sans interface graphique très peu chargée (en fait ce n'est qu'une passerelle SSH) et une Ubuntu LTS Server 8.04 un peu plus sollicitée, puisqu'elle héberge toute la pile LAMP (Apache, MySQL, PHP). Le premier constat est que la seconde dérive beaucoup plus rapidement que la première. Mais l'application qu'elle héberge nécessite une horloge relativement fiable.

Comme souvent, la solution est extrêmement simple. Il s'agit simplement de remettre la machine à l'heure régulièrement. Dans mon cas, une fois par jour suffit amplement. Comme vu dans les articles précédents, le démon ntpd n'est pas adapté à l'environnement virtuel, et l'option clock=pit est nécessaire sur les noyaux récents. D'autre part vsntp est une possibilité mais il y a plus simple "dans la boîte", comme indiqué ci-dessous. Ces instructions doivent être réalisées dans le contexte de root : dans Ubuntu, utilisez la commande sudo -s pour obtenir un shell dans le contexte de root.

Rappel : mon expérience se limite à Debian et Ubuntu.

Etape 1 : option clock=pit

il faut ajouter l'option clock=pit dans le fichier /boot/grub/menu.lst, à la fin de la ligne kernel par défaut. Il s'agit de la première ligne kernel suivant la ligne ## ## End Default Options ##. Exemple :

## ## End Default Options ##

title           Ubuntu 8.04, kernel 2.6.24-18-server
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.24-18-server root=UUID=d2cd13e1-bc9e-4657-86eb-26f150b41aaf ro quiet splash clock=pit
initrd          /boot/initrd.img-2.6.24-18-server
quiet

Remarque : si, lors de l'installation de mises à jour, le noyau est mis à jour, alors il faut réappliquer cette modification au fichier menu.lst.

Etape 2 : programmer une mise à l'heure quotidienne avec ntpdate

Vérifier ou installer ntpdate :

# apt-get install ntpdate

Vérifier que ntpdate fonctionne comme prévu et remet votre système à l'heure :

# ntpdate fr.pool.ntp.org

Créer un fichier /etc/cron.daily/ntpdate contenant les lignes suivantes :

#!/bin/sh

/usr/sbin/ntpdate fr.pool.ntp.org

Ajouter à ce fichier l'attribut exécutable :

# chmod a+x /etc/cron.daily/ntpdate

Dans mon exemple, j'utilise fr.pool.ntp.org comme nom de serveur NTP, qui donne en réalité un serveur parmi un pool de serveurs français (voir http://www.pool.ntp.org/ pour plus d'infos). Vous pouvez bien sûr le remplacer par celui qui vous ira le mieux.

Terminé ! Reste à vérifier de temps à autre que l'heure est correcte (attention, la commande est date, pas time comme sous Windows.) Et de toutes manières, vous mettez à jour vos systèmes (apt-get update et apt-get dist-upgrade sont vos amis), donc vous redémarrez régulièrement vos Linux à cause des mises à jour du noyau, parce que vous vous souciez plus de votre sécurité que de votre uptime. Non ?

Comments
  • Bonjour,

    Juste pour savoir, comment avez vous fait pour installer, une carte réseau sous debian, je galere en ce moment car je n'arrive pas à en installer une.

    Merci

  • willy1009 : c'est une très bonne question. La carte réseau est un problème pour tous les OS non "supportés", c'est à dire ceux pour lesquels il n'y a pas d'"integration components". Autrement dit, pas de driver pour la carte réseau synthétique.

    Le principe est donc : supprimer la carte réseau ("network adapter"), puis ajouter une "legacy network adapter". C'est le nom donné à la carte réseau de type Intel 21140, reconnue par Debian et les autres OS non supportés (comme Windows XP SP2).

  • Excellente explication. J'avais installé le paquet ntp et pourtant la dérive était grande. Je vais adapter votre script en remplaçant ntpdate fr.pool.ntp.org par ntp -q.

    J'en profite comme willy pour un autre souci : si on reste sur le clavier français la touche AltGr se comporte mal. Souci qui n'existait pas sous VS2005. Avez-vous une solution ? Merci.

  • Comme tu l'as remarqué, à chaque MAJ du kernel, l'option saute.

    La solution est d'ajouter également "clock=pit" à la ligne "# kopt" (en laissant le # de commentaire) :

    # kopt=root=/dev/hda1 ro clock=pit

    Comme cà, c'est grub qui ajoutera automatiquement la bonne option à chaque MAJ du kernel.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment