Installer Debian Etch (4.0 - stable) sur une clé USB

Auteur : Olivier BOYER - oboyer () ajoute ! org

Mots clés

clé usb, usb stick, lecture seule, read-only, Linux, Debian, Etch, stable

Introduction

Ce document présente comment installer un système GNU/Linux Debian 4.0 sur une clé USB. Une clé USB est un périphérique de stockage basé sur une mémoire flash. Or, les mémoires flash ont une capacité limitée d'écritures. Un problème se pose donc, car un système d'exploitation écrit très régulièrement sur son stockage principal.

L'installation décrite ici s'effectue sur un système de fichiers racine (slash) en lecture seule (read-only). Ainsi, aucune écriture ne sera effectuée sur la clé USB par le système en cours de fonctionnement. Les seules écritures seront faites à l'installation, ou à la mise à jour du système.

Présentation de la maquette

  • Un ordinateur compatible PC, architecture i386, doté d'un port USB (version 2 recommandée).
  • Une clé USB (au moins 1Go).

Note

Toutes les commandes présentées ici, sont à exécuter, sauf mention contraire, en tant qu'administrateur de la machine.

Pré-requis

  • Un BIOS de carte mère sur la machine capable de démarrer sur un périphérique USB.
  • Une clé USB (au moins 1Go).
  • Un lecteur CD pour l'installation.
  • Un cdrom d'installation de Linux Debian version Etch (4.0 - stable).
  • Une certaine connaissance de l'installation d'un système Linux Debian.

Installation du système Debian Etch sur une clé USB

Introduction

Le disque dur interne de la machine est retiré. Le seul support d'écriture non volatil est la clé USB branchée. Ce périphérique est vu par le système Linux comme le premier disque dur SCSI, soit /dev/sda.

Installation du système

L'installation du système se réalise de la même manière que sur un disque dur SCSI. Cette section se concentre donc uniquement sur les éléments importants. Pour une procédure détaillée de l'installation d'un système Linux Debian, se reporter au chapitre 5 Démarrer le système d'installation du Manuel d'installation pour la distribution Debian GNU/Linux.

Démarrer l'installation

Démarrez la machine, insérez le CDROM Linux Debian Etch 4.0 numéro 1 dans le lecteur. Dans le BIOS de l'ordinateur, choisissez de “booter” sur le CDROM. L'installation du système commence.

Menu : Choose Language

  • Choisissez :
	French	- Français
  • Choisissez un pays, territoire ou lieu géographique :
	France

Menu : Choisir la disposition du clavier

  • Choisissez :
	Français (fr-latin9)

Menu : Partitionner les disques

  • Choisissez :
	Manuel

puis,

	SCSI1 maître (sda) - ...
  • Faut-il créer une nouvelle table des partitions sur ce disque ?
	Oui
  • Sélectionner la partition :
	pri/log  ....		Espace libre
  • Créer une nouvelle partition :
	Prendre tout l'espace disponible
  • Type de la nouvelle partition :
	Primaire
  • Caractéristiques de la partition :
	Utiliser comme		: système de fichiers ext3
	Point de montage	: /
	Options de montage	: noatime
	Etiquette		: aucune
	Blocs réservés		: 5%
	Utilisation habituelle	: standard
	Indicateur d'amorçage	: présent
	Fin du paramétrage de cette partition
	Terminer le partitionnement et appliquer les changements
  • Faut-il appliquer les changements sur les disques ?
	Oui
  • Souhaitez-vous revenir au menu de partitionnment ?
	Non

Menu : configurer l'outil de gestion des paquets

	Oui
  Choisissez le miroir qui est le plus proche de chez vous.

Menu : Sélection des logiciels

La configuration décrite ici est volontairement très réduite. Dans la sélection des paquets, ne sélectionnez aucun logiciel. Si un logiciel manque à votre configuration, il pourra être installé ultérieurement.

Mise à jour du système

Le système Linux Debian est maintenant installé sur la clé USB. Vous avez fait votre premier redémarrage, vérifié que le matériel est bien détecté, que la connexion au réseau local est fonctionnelle. Il faut avant tout autre configuration, mettre à jour le système, pour installer les derniers correctifs publiés par les mainteneurs de la distribution.

Pour mettre à jour le système, exécutez les commandes suivantes :

# apt-get update
# apt-get upgrade
# apt-get autoclean

Configuration du système avec une racine en lecture seule

Le système est installé, et mis à jour. Il faut maintenant le transformer en un système avec une “racine en lecture seule”.

Sur un système Debian, il suffit de modifier l'option de montage de la racine dans le fichier /etc/fstab. Si l'option ro est positionnée, la racine n'est pas montée en écriture pendant le démarrage du système. Cette seule modification est suffisante.

Cependant, un système Unix doit écrire pour fonctionner correctement. Les sections suivantes décrivent les configurations mises en place pour permettre au système d'écrire, sans accéder en écriture à la clé usb.

/etc/fstab

Faites une copie du fichier initial :

# cd /etc
# cp fstab fstab.orig

Puis modifiez, comme suit, le fichier /etc/fstab (les autres périphériques ne sont pas listés ici) :

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options>   <dump> <pass>
proc            /proc         proc   defaults    0      0
/dev/sda1       /             ext3   ro,noatime  1      1

/etc/default/rcS

Le fichier /etc/default/rcS configure le comportement des scripts de démarrage présents dans le répertoire /etc/rcS.d. Ces scripts sont exécutés en premier lors de l'initialisation du système.

La configuration ci-dessous permet la construction des répertoires /var/run et /var/lock dans des systèmes de fichiers en mémoire vive. Ainsi, le système pourra écrire ses fichiers temporaires, sans accéder en écriture sur la clé usb.

Sauvez le fichier /etc/default/rcS d'origine :

# cd /etc/default
# cp rcS rcS.orig

Puis, modifiez les valeurs des variables suivantes :

RAMRUN=yes
RAMLOCK=yes

/etc/mtab

Le fichier /etc/mtab liste les périphériques qui sont actuellement montés. A chaque montage ou démontage d'un système de fichiers, le contenu du fichier /etc/mtab change. Dans un système avec une racine en lecture seule, ce comportement est impossible.

Le fichier /proc/mounts contient quasiment les mêmes informations que le fichier /etc/mtab (il est plus précis). Comme le fichier /proc/mounts est situé dans un système de fichiers en mémoire vive, sa mise à jour ne pose pas de problème lors de l'utilisation d'une racine en lecture seule.

Supprimez le fichier /etc/mtab, et créez un lien symbolique vers /proc/mounts. Attention, le lien symbolique doit être absolu.

# cd /etc
# rm -f /etc/mtab
# ln -s /proc/mounts mtab

/etc/init.d/mountprereadonly.sh

Le script /etc/init.d/mountprereadonly.sh est ajouté à ceux déjà présents dans le système Linux Debian. Ce script se charge de créer les systèmes de fichiers en mémoire vive, de les monter, et de créer à l'intérieur les répertoires et fichiers nécessaires au fonctionnement du système.

Créez comme suit le fichier /etc/init.d/mountprereadonly.sh.

Fixer les permissions

Exécutez les commandes ci-dessous :

# chown root:root /etc/init.d/mountprereadonly.sh
# chmod 755 /etc/init.d/mountprereadonly.sh

Insérer le fichier dans la procédure de démarrage

Le script doit être exécuté au plus tôt dans la procédure de démarrage. Exécutez la commande suivante :

# update-rc.d mountprereadonly.sh start 02 S .
Adding system startup for /etc/init.d/mountprereadonly.sh ...
   /etc/rcS.d/S02mountprereadonly.sh -> ../init.d/mountprereadonly.sh

/etc/resolv.conf

Si la configuration réseau est obtenue dynamiquement via le protocole DHCP, le contenu du fichier /etc/resolv.conf est modifié à chaque démarrage du système. Ce comportement est impossible lors de l'utilisation d'une racine en lecture seule. Pour résoudre ce problème, installez le paquet resolvconf.

Procédez comme suit :

# apt-get -y install resolvconf

/tmp

Le répertoire /tmp doit être accessible en écriture. De nombreux processus écrivent des informations temporaires à l'intérieur. Pour utiliser /tmp en écriture sur un système en lecture seule, il existe deux possibilités :

  • Construire /tmp en tmpfs (Temporary File System). Le système de fichiers est créé, de manière transparente, à chaque démarrage de la machine, en mémoire vive. Ces systèmes de fichiers “temporaires” sont très pratiques, mais consomment de la mémoire vive.
  • Créer un lien symbolique de /tmp, vers /var/tmp, qui lui, sera en écriture.

Cette dernière solution est retenue dans ce document (/var/tmp sera un système de fichiers en mémoire vive).

Créez de /tmp vers /var/tmp comme suit :

# cd /
# rm -Rf /tmp
# ln -s ./var/tmp tmp

Fin de configuration

/var/log

Les fichiers d'enregistrements d'activité du système sont situés dans le répertoire /var/log. Quand la configuration du système avec une racine en lecture seule sera terminée, ce répertoire sera un point de montage pour la partition en mémoire /var/log. Donc, son contenu actuel ne sera plus accessible. Pour gagner de l'espace disque, vous pouvez purger le contenu de tous les fichiers présents, comme suit :

# cd /var/log
# for i in $(find . -type f); do > $i ; done

Redémarrer le système

Redémarrez le système pour appliquer les modifications.

# shutdown -r now

Vérifications

Après le démarrage du système avec une racine en lecture seule, exécutez la commande suivante pour vérifier que le système est correctement configuré :

# mount 
rootfs on / type rootfs (rw)
none on /sys type sysfs (rw)
none on /proc type sysfs (rw)
udev on /dev type tmpfs (rw)
/dev/sda1 on / type ext3 (ro,noatime,data=ordered)
/dev/sda1 on /dev/.static/dev type ext3 (ro,data=ordered)
tmpfs on /lib/init/rw tpye tmpfs (rw,nosuid)
varrun on /var/run type tmpfs (rw,nosuid)
varlock on /var/lock type tmpfs (rw,nosuid)
tmpfs on /var/tmp type tmpfs (rw,nosuid,nodev)
tmpfs on /etc/network/run type tmpfs (rw,nosuid,nodev)
tmpfs on /var/lib/urandom type tmpfs (rw,nosuid,nodev)
tmpfs on /var/lib/dhcp3 type tmpfs (rw,nosuid,nodev)
tmpfs on /var/log type tmpfs (rw,nosuid,nodev)
tmpfs on /media type tmpfs (rw,nosuid,nodev)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type tmpfs (rw,nosuid,noexec)

Vous constatez que :

  • la racine du système (/) est montée en lecture seule (ro),
  • les partitions /etc/network/run, /media, /var/lib/dhcp3, /var/lib/urandom, /var/lock, /var/log, /var/run, /var/tmp, sont montées dans un système de fichiers en mémoire (tmpfs).

Le système est maintenant configuré en opérationnel.

Entretien du système

Les journaux d'activités

Les journaux d'activité sont consignés dans le répertoire /var/log. Comme /var/log est sur un système de fichiers en mémoire vive, les logs sont automatiquement effacés à l'arrêt de la machine. Pensez à les sauvegarder régulièrement, ou à configurer syslogd(8) pour qu'il enregistre son activité sur une machine distante.

Modifier un fichier

Si vous devez modifier la configuration d'un fichier présent à la racine du système, exécutez les trois étapes suivantes :

Monter la racine en lecture/écriture

# mount -o remount,rw /

Modifier le(s) fichier(s) souhaité(s)

Remonter la racine du système en lecture seule

# sync; sync; sync
# mount -o remount,ro /

Ajouter un paquet

Pour installer (ou supprimer) un paquet exécutez les étapes suivantes :

Monter la racine en lecture/écriture

# cd /
# mount -o remount,rw /

Installer le(s) paquet(s)

Effacer les fichiers temporaires

# apt-get autoclean
# apt-get clean

Remonter la racine du système en lecture seule

# sync; sync; sync
# mount -o remount,ro /

Liens

 
doc/linux/usbstick.txt · Dernière modification: 2009/12/23 22:36 (édition externe)     Haut de page