Reboot Machine Distante

Rédigé par pep | Classé dans : Debian

24
11 | 11

Si ça ne vous est pas arrivé, cela vous arrivera. Une console en ssh sur une machine distante, un instant d'inatention, on tape "reboot" pour redémarrer sa machine, et là c'est le drame : "reboot", ou même pire, "halt" sur la machine distante ...
Pour éviter ça, installez "molly-guard". Il vous demandera le nom de la machine que vous voulez rebooter ou arrêter, comme ça, plus de surprise.

Mots clés : debian reboot ssh

Changement de disk système

Rédigé par pep | Classé dans : Debian

25
06 | 11

Il a eu 14 ans, y'a pas très longtemps. Un disk dur Fujitsu de 4,2Go. 14 ans à marcher 24/24, 365 jours par an. Mais aujourd'hui, il part en retraite.

Le problème, c'est que tout réinstaller, j'ai pas envie. Alors je l'ai fait à la roots.

Disque système actuel

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         243     1951866   83  Linux
/dev/sda2             244         340      779152+  83  Linux
/dev/sda3             341         371      249007+  82  Linux swap / Solaris
/dev/sda4             372         525     1237005   83  Linux

sda1 -> /
sda2 -> /var

Futur disque système

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         973     7815591   83  Linux
/dev/sdc2             974        1216     1951897+  83  Linux
/dev/sdc3            1217        1338      979965   82  Linux swap / Solaris

sdc1 -> /
sdc2 -> /var

~# mkdir /mnt/t

Monter / et /var
~# mount /dev/sdc1 /mnt/t
~# mount /dev/sdc2 /mnt/t/var

Copier le / actuel sur le / futur

~# cp -xa / /mnt/t

Copier le /var actuel sur le /var futur

~# cp -xa /var/* /mnt/t/var

Ne pas oublier de monter dev, proc et sys afin de pouvoir accéder aux disks.

~# mount -o bind /dev/ /mnt/t/dev
~# mount -t proc none /mnt/t/proc
~# mount -t sysfs none /mnt/t/sys

Entrer dans le chroot

~# chroot /mnt/t /usr/bin/zsh

Modifier le fstab. Changer / pour sdc1 et /var pour sdc2.

~# vi /etc/fstab

Installer grub sur sdc

~# grub-install /dev/sdc

Reboot, redémarrage sur le disk sdc. Tout c'est bian passé. Je ne sais pas si c'est une solution à "recommander", mais elle a fonctionné chez moi.

Il reste encore un problème. grub.cfg contient une référence à /dev/sdc.

set root='(/dev/sdc,msdos1)'

En enlevant l'ancien disk (sda) le sdc actuel va changer de nom, et je ne sais pas ce qu'il va se passer ;(

Réponse : Après avoir enlevé le vénérable, j'ai remis le sdc en sda. Arrivé au menu de grub, modifier le nom du disk root :

set root='(/dev/sda,msdos1)'

Une fois le système démarré, réinstaller grub sur le sda :

~# grub-install /dev/sda
~# update-grub

Mots clés : debian disque système

Boot grub

Rédigé par pep | Classé dans : Debian

22
05 | 11

Mise à jour d'un noyau sur une machine distante.

Sous debian (et autres unix/linux), il n'y a généralement pas de problème. Lors du démarrage sur un noyeau modifié, ou xen, ou ... Mais il peut arriver que la machine ne redémarre pas.

Pour palier ce ce problème, grub peut démarrer sur le noyau modifié, et au cas de "kernel panic", redémarrer sur l'ancien noyau.

Modification de /etc/default/grub

; Permet de choisir le noyau qui va démarrer en ligne de commande
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISTRIBUTION=`lsb_release -i -s 2> /dev/null || echo Debian`
; Rajouter panic=5 -> En cas de pb, redémarrage au bout de 5 sec
GRUB_CMDLINE_LINUX_DEFAULT="quiet panic=5"   
GRUB_CMDLINE_LINUX=

Création de /boot/grub/grub.cfg avec les nouveaux parametres
~# update-grub

Choisi la x+1 eme entrée de grub.cfg pour le démarrage par défaut
~# grub-set-default x

Choisi de démarrer sur la y+1 eme entrée pour 1 démarrage
~# grub-reboot y

Re démarre
~# reboot

Ca peut éviter de courir à la salle machine, ou de télépĥoner 5 fois à son hébergeur dans la même journée ...

Mots clés : grub

Boot pxe

Rédigé par pep | Classé dans : Debian

22
05 | 11

Le cdrom de mon portable étant naze, pas de boot sur usb, il ne restait que la mystérieuse option "boot from network".

Le serveur dhcp

Le premier élément nécessaire est un serveur dhcp. Il fournira une ip, et précisera ou trouver les fichiers nécessaires au démarrage.

/etc/dhcp/dhcpd.conf
 authoritative;
 ddns-update-style interim;
 ignore client-updates;
 
 subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.200 192.168.1.250;
   option domain-name-servers 192.168.1.2;
   option domain-name "glu";
   option routers 192.168.1.1;
   option subnet-mask 255.255.255.0;
   default-lease-time 43200;
   max-lease-time 86400;
 
   server-name "PXE";
   next-server 192.168.1.1;
   filename "/srv/tftp/pxe/pxelinux.0";
 }

L'option "next-server" sert à préciser l'ip du serveur tftp si celui-ci n'est pas le même que le serveur dhcp.

Le serveur tftp

Trivial ftp : on fait dans le simple, pas d'authentification, on lui demande un fichier, il nous le donne. Le serveur atftp fait très bien l'affaire.

L'installateur créé un nouveau répertoire : /srv/tftp. Ce répertoire contiendra les fichiers.

/etc/default/atftp
USE_INETD=false
OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --bind-address 192.168.1.10 --no-multicast --maxthread 100 --verbose=10 /srv/tftp"

Le serveur PXE

  • Installer pxe et syslinux.
  • Créer le répertoire /srv/tftp/pxe
  • Téléchargement des images netbook : http://ftp.fr.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot/netboot.tar.gz
  • Décompression de l'archive.
  • Création de l'arborescence tftp
    mkdir -p /srv/tftp/pxe/boot-screens/
    mkdir -p /srv/tftp/pxe/pxelinux.cfg/
    
  • Copie des fichiers de boot dans l'arborescence du serveur tftp
    cp netboot-debian-squeeze-i386/debian-installer/i386/pxelinux.0 /srv/tftp/pxe/
    cp netboot-debian-squeeze-i386/debian-installer/i386/boot-screens/splash.png /srv/tftp/pxe/boot-screens/
    cp netboot-debian-squeeze-i386/debian-installer/i386/boot-screens/vesamenu.c32 /srv/tftp/pxe/boot-screens/
    cp netboot-debian-squeeze-i386/debian-installer/i386/initrd.gz /srv/tftp/pxe/debian-squeeze/i386/
    cp netboot-debian-squeeze-i386/debian-installer/i386/linux /srv/tftp/pxe/debian-lenny/i386/
    
  • Création du fichier /srv/tftp/pxe/prelinux.cfg/default
    include /boot-screens/menu.cfg
    default /boot-screens/vesamenu.c32
    prompt 0
    timeout 0
    
  • Création du fichier /srv/tftp/pxe/boot-screens/menu.cfg
    menu color border       * #00000000 #00000000 none
    menu color sel          * #ffffffff #76a1d0ff *
    menu color hotsel       1;7;37;40 #ffffffff #76a1d0ff *
    menu color tabmsg       * #ffffffff #00000000 *
    menu vshift 12
    menu rows 10
    menu tabmsgrow 16
    menu timeoutrow 17
    menu tabmsg Press ENTER to boot or TAB to edit a menu entry
    menu autoboot Starting Local System in # seconds
    
    prompt 0
     
    label bootlocal
      menu label ^Boot from local disk
        menu default
        localboot 0
        timeout 200           #timeout which is displayed, Wait 10 seconds unless the user types somethin
        totaltimeout 1200     #timeout which executes the default definitely, always boot after 2 minutes
     
    menu begin debian
      menu title Debian
      label mainmenu
        menu label ^Back..
        menu exit
      menu begin debian-squeeze
        menu title Debian Squeeze
        label mainmenu
          menu label ^Back..
          menu exit
        menu begin debian-squeeze-i386
          menu title Debian Squeeze i386
          label mainmenu
            menu label ^Back..
            menu exit
          DEFAULT install
          LABEL install
            kernel debian-squeeze/i386/linux
            append vga=normal initrd=debian-squeeze/i386/initrd.gz --
          LABEL expert
            kernel debian-squeeze/i386/linux
            append priority=low vga=normal initrd=debian-squeeze/i386/initrd.gz --
          LABEL rescue
            kernel debian-squeeze/i386/linux
            append vga=normal initrd=debian-squeeze/i386/initrd.gz rescue/enable=true --
          LABEL auto
            kernel debian-squeeze/i386/linux
            append auto=true priority=critical vga=normal initrd=debian-squeeze/i386/initrd.gz --
        menu end
      menu end
    menu end
    

Rien de trop compliqué, en somme. Ca permet de se sortir de problèmes matériels, de déployer à grande échelle et à peu de frais.

Mots clés : debian boot pxe