Table of Contents

Flash Card - TRET

Voici la procédure permettant l'installation de Debian Squeeze sur une carte flash pour une utilisation avec une carte Soekris net5501-70.

L'installation se fait au travers de l'utilitaire debootstrap qui téléchargera est installera Debian à notre place. Il nous restera néanmoins toutes la configuration du système à effectuer, notamment le GRUB et le montage des partitions.

Pour l'installation d'une ubuntu dernière version, il se peut que debootstrap ne connaisse pas la version que vous voulez insaller.

Vérifier quel version vous avez avec

debootstrap --version

et dans quel version doit être utilisé pour cette version sur : http://packages.ubuntu.com/search?keywords=debootstrap

Si vous avez besoin d'une nouvelle version de deboostrap pour l'installation ici : http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap

Bug de upstart en chroot

Réinitialisation de la carte flash

La carte flash est préparée pour accueillir le nouveau système.

Remise à zéro de la carte flash

On procède à une remise à zéro de chaque byte de la carte. Ce qui nous permettra, lorsqu'on fera un image de la carte, d'avoir un bon taux de compression.

/root# dd if=/dev/zero of=/dev/sdb

L'opération peut prendre un certain temps, selon la taille de la carte.

Création de la partition système

Lors du démarrage de la minicentrale, en mode console on peut observer le démarrage du bios et repérer la ligne suivante:

Pri Mas  SanDisk SDCFH-004G              LBA Xlt 968-128-63  3906 Mbyte

Ce qui est ensuite utilisé pour utiliser fdisk correctement!

Une fois la carte remise à zéro, on crée la partition sur laquelle sera déposée le système.

# fdisk -C 968 -H 128  -S 63 /dev/sdb
  1. On crée une nouvelle partition [n]
    1. Nous voulons une partition primaire [p]
    2. Ce sera la partition N° 1 [1]
    3. On débute par le premier cylindre []
    4. On finit par le dernier cylindre []
  2. On peut contrôler le résultat [p]
  3. Puis valider les changement [w]

Formatage de la partition système

On met en place un système de fichier sur notre partition nouvellement crée.

/root# mkfs.ext3 -v /dev/sdb1

Installation de Debian

Mise en place de l'image

Nous allons installer Debian Squeeze sur notre carte flash via l'utilitaire debootstrap qui téléchargera et mettra en place le système pour nous.

# mkdir -p /mnt/cf
# mount /dev/sdb1 /mnt/cf
# debootstrap --arch=i386 squeeze /mnt/cf http://ftp.ch.debian.org/debian

or

# debootstrap --arch=i386 jessie /mnt/cf http://ftp.ch.debian.org/debian

Le programme va prendre un certain temps à télécharger les différents composant et à les mettre en place.

Montage des systèmes de fichier pour l'image

Pour pouvoir nous chrooter sur notre carte flash, nous devons lier quelques systèmes de fichiers qui sont normalement présent à l'exécution du système.

# mount -t proc none_proc /mnt/cf/proc
# mount -t sysfs none_sys /mnt/cf/sys
# mount --bind /dev /mnt/cf/dev

Configuration du système

Pour pouvoir configurer notre système sur notre carte flash, on va se chrooter dans sa racine. Et monter un dernier système nécessaire au bon fonctionnement du chroot.

# LANG=C chroot /mnt/cf /bin/bash
# mount -t devpts devpts /dev/pts

Configuration de fstab

Le script debootstrap met en place le système, mais ne configure pas le montage des partitions. On va modifier le fichier /etc/fstab pour qu'il monte les systèmes voulus au démarrage.

On commence par récupérer l'UUID de notre carte flash.

# UUID=$(dumpe2fs /dev/sdb1 | grep 'UUID' | cut -d':' -f2 | tr -d ' ')
# echo "proc /proc proc nodev,noexec,nosuid 0 0" >> /etc/fstab
# echo "UUID=$UUID / ext3 defaults,noatime 0 1" >> /etc/fstab

On rajoute aussi le montage de plusieurs systèmes temporaires qui contiendront les logs et autres fichiers temporaire. Nous ne voulons pas que ces fichiers soient écrit sur la carte, ils l'useraient trop vite.

proc /proc…
UUID=…

tmpfs /tmp tmpfs  defaults,noatime 0 0
tmpfs /var/tmp tmpfs  defaults,noatime 0 0
tmpfs /var/run tmpfs  defaults 0 0
tmpfs /var/log tmpfs  defaults 0 0
tmpfs /var/lock tmpfs  defaults 0 0

Configuration du temps

# dpkg-reconfigure tzdata
  1. Europe
  2. Zurich

Configuration du réseau

On modifie le fichier /etc/network/interfaces pour lui configurer les interfaces.

# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Enfin, on définit le nom de la machine dans /etc/hostname.

intranet.bolay.co

Configuration du gestionnaire de paquets

On rajoute des sources au gestionnaire de paquets aptitude, grâce au fichier /etc/ap/sources.list.

deb http://ftp.ch.debian.org/debian squeeze main
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

On contrôle que tout s'est bien déroulé avec un aptitude update ou apt-get udpate.

Installation de paquets supplémentaires

On installe (optionnellement), puis configure la gestion du français :

# aptitude install locales
# dpkg-reconfigure locales
  1. On sélectionne la locale fr_CH ISO-8859-1
  2. Elle sera notre langue par défaut
# aptitude install console-data
  1. On sélectionne notre clavier depuis la liste
    1. On utilise un clavier qwertz
    2. Avec une disposition Swiss
  2. On utilise une Autre disposition que l'USA
    1. Disposition qui vient de Switzerland
    2. Plus précisément, la Switzerland - French
    3. Avec le charset Latin1 and Latin5

On installe un client NTP pour rester à l'heure.

# aptitude install ntpdate

ou

# apt-get install --no-install-recommends ntpdate

Et on configure le client NTP avec le fichier /etc/default/ntpdate :

# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.

# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=yes

# List of NTP servers to use  (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="ntp.metas.ch 0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"

# Additional options to pass to ntpdate
NTPOPTIONS=""

On installe un noyau spécifique aux processeurs mono-cœur.

# aptitude install linux-image-486

On installe encore quelques utilitaires standard.

# aptitude install rsyslog sudo

ou

# apt-get install --no-install-recommends rsyslog sudo

Puis finalement on install le serveur ssh

# tasksel install ssh-server

Et en option:

# tasksel install standard

Tasksel permet d'installer des composants “essentiels” facilement. Il est utilisé lors de l'installation standard de Debian pour nous permettre d'installer une interface graphique ou un serveur SSH.

Installation et configuration du GRUB - Jessie

Nous allons maintenant installer GRUB.

# apt-get install grub-pc

Editer /etc/default/grub

GRUB_CMDLINE_LINUX="console=ttyS0,19200"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=19200 --stop=1"

et finalement

update-grub

Installation et configuration du GRUB - Squeeze

Nous allons maintenant installer GRUB.

# aptitude install grub
  1. On laisse la commande pour le chargement du noyau vide
  2. On installe GRUB sur le disque /dev/sdb

On modifie la configuration de /etc/default/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
# Attention à bien mettre la vitesse du port série à la même valeur que le BIOS de
# notre carte
GRUB_CMDLINE_LINUX_DEFAULT="verbose console=ttyS0,19200n8 reboot=bios"
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=19200"
GRUB_CMDLINE_LINUX=""

# Pour qu'il n'aille pas chercher sur notre partition Mac ou Windowns
GRUB_DISABLE_OS_PROBER="true"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
GRUB_TERMINAL=serial

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
# echo '(hd0) /dev/sdb' > /boot/grub/device.map

Une fois notre configuration peaufinée, on réinstalle le grub et on régénère sa config et on s'assure que c'est bien hd0 qui est utilisé.

# grub-install /dev/sdb
# update-grub
# sed -i 's/hd1/hd0/g' /boot/grub/grub.cfg

Dernières configuration (misc.)

On désactive tout les terminaux de type écran et l'on active celui de type série dans le fichier /etc/inittab.

#1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

# Mettre la même valeur utilisée par le BIOS et par le GRUB
T0:23:respawn:/sbin/getty -L ttyS0 19200 vt100

On définit un mot de passe pour l'utilisateur root.

# passwd root //1234//

On nettoie notre gestionnaire de paquet.

# aptitude clean

ou

# apt-get clean

Démontage du système

Une fois l'installation terminée, il faut démonter toutes nos partitions.

# umount /dev/pts
# exit
# umount /mnt/cf/dev
# umount /mnt/cf/sys
# umount /mnt/cf/proc
# umount /mnt/cf

Enfin, on contrôle l'état de notre disque.

# df -h

Configuration post-installation

On met la carte flash sur notre carte Soekris, on branche le câble série sur lequel une session screen est démarée (screen /dev/ttyUSB0 19200) et l'on branche l'alimentation. Si tout se passe bien, Debian devrait démarrer normalement.

Il nous reste néanmoins quelques réglages à faire…

Re-configuration des interfaces ethernet

L'utilitaire debootstrap n'a pas configurer nos interfaces ethernet correctement.

On lance la commande dpkg-reconfigure udev pour qu'il régénère la configuration de nos interfaces. Cependant, il peut garder certaine trace de l'ancien système.
Il faut alors éditer le fichier /etc/udev/rules.d/70-persistent-net.rules pour retirer les interfaces qui font références à notre ancien système et renommer correctement les interfaces de la carte Soekris.

L'ordre des interfaces dépends de l'adresse MAC. La plus première interface (eth0) correspond à la plus petite addresse MAC.

Le résultat doit ressembler à ça :

<files> # PCI device 0x1106:0x3053 (via-rhine) SUBSYSTEM==“net”, ACTION==“add”, DRIVERS==“?*”, ATTR{address}==“00:00:24:ce:39:99 0”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL==“eth*”, NAME=“eth0”

# PCI device 0x1106:0x3053 (via-rhine) SUBSYSTEM==“net”, ACTION==“add”, DRIVERS==“?*”, ATTR{address}==“00:00:24:ce:39:99 1”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL==“eth*”, NAME=“eth1”

# PCI device 0x1106:0x3053 (via-rhine) SUBSYSTEM==“net”, ACTION==“add”, DRIVERS==“?*”, ATTR{address}==“00:00:24:ce:39:99 2”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL==“eth*”, NAME=“eth2”

# PCI device 0x1106:0x3053 (via-rhine) SUBSYSTEM==“net”, ACTION==“add”, DRIVERS==“?*”, ATTR{address}==“00:00:24:ce:39:99 3”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL==“eth*”, NAME=“eth3” </file>

Un simple redémarrage suffit à avoir nos interfaces présentes correctement.

Liens