Dernières mises à jour : 22 octobre 2009 (lien vers le script retrouvé), 17 septembre 2008 (performances des clefs USB)

Pourquoi auriez-vous vous aussi besoin de votre Linux sur une clef USB ? La raison principale est évidemment d'être sûr d'avoir toujours toutes vos applications dans la bonne version où que vous soyez, parce que vous changez régulièrement de machine ou parce que vous travaillez parfois sur des machines qui n'ont pas ce qu'il faut. Mais ceci peut aussi servir :

  • si vous utilisez des machines en libre service sur lesquelles vous ne souhaitez pas laisser de traces (cybercafés, bornes Internet, etc.), notamment du fait des fichiers temporaires
  • si vous souhaitez disposer d'un système complètement chiffré pour partir en déplacement sans risquer d'égarer des documents confidentiels
  • si vous souhaitez ou devez laisser intacte la machine que vous utilisez
  • si vous voulez montrer voire diffuser Linux à vos amis dans des conditions optimales (plus rapide qu'un LiveCD, pas de bruit, pas d'installation requise, …)

Bien entendu, tout ceci est parfaitement légal avec Linux, ce qui ne serait pas forcément le cas avec d'autres systèmes. ;-)

Principe de l'installation

Une clef USB est vue comme un disque dur amovible, l'installation n'a donc pas grand chose de différent par rapport à une installation classique. Toutefois il y a quelques subtilités qui améliorent le fonctionnement de la clef, par exemple :

  • le système doit retrouver ses partitions sur la clef à coup sûr, l'utilisation d'identifiants uniques de partition (UUID) est donc incontournable
  • il faut éviter de saturer la clef avec des informations système (logs et téléchargements de logiciels notamment), certains répertoires doivent donc être montés dans des zones volatiles (mémoire RAM)
  • il ne faut pas écrire trop souvent sur la clef, ce qui est une opération lente, bien plus que la lecture, et réduit en plus la durée de vie de la clef

Il y a donc quelques ajustements à faire que l'on peut soit faire soi-même après l'installation, soit confier à un script existant. Pour Debian et ses dérivés, il existe en particulier le script Python deb2flash qui permet d'installer un Debian Linux minimaliste à compléter librement pour en faire votre Linux. Ce script, conçu dans une optique de respect de la vie privée, est également capable de faire une installation sur partition chiffrée, ce qui évite la perte / le vol de données si vous égariez votre clef. Il faut en effet une « phrase de passe » (passphrase) pour démarrer le système sans quoi les données restent illisibles.

NB: si le lien vers le script deb2flash ne fonctionne toujours pas, vous pouvez récupérer ma version que j'ai enfin retrouvée ! Elle a été modifiée à un endroit car il y avait un plantage lorsqu'on interrompait l'installation et qu'on la recommençait de zéro (une histoire de montage impossible de la clef.).

Côté technique, le script mentionné utilise un des nombreux procédés d'installation de Debian, en l'occurrence debootstrap qui permet d'installer une distribution Debian sur une autre partition depuis une Debian en fonctionnement. Il n'y a donc pas vraiment de magie dans le script, juste un assemblage bien pensé de commandes existantes ;-) : les petits ruisseaux font les grandes rivières !

NB: pour ce qui est de la détection du matériel, Linux effectue cette opération à chaque démarrage avec discover, il n'y a donc normalement pas de précaution particulière à prendre une fois discover installé. Les Linux récents (Debian Lenny par exemple) sont même désormais capables d'ajuster automatiquement l'affichage à la carte graphique et à l'écran utilisés au démarrage : plus de fichier /etc/X11/xorg.conf à modifier ! Et c'est pareil pour Compiz : il suffit de le lancer à l'ouverture de session, si la 3D est gérée par votre carte, vous aurez les effets 3D automatiquement, sinon le bureau normal…

Installation du système de base

La première étape consiste à brancher votre clef USB et à déterminer sous quel nom elle apparaît dans la liste des périphériques de votre système. On obtient cette information en exécutant cette commande immédiatement après le branchement de la clef :

$ dmesg | tail
[…]
SCSI device sda: 15728640 512-byte hdwr sectors (8053 MB)
[…]

La commande dmesg affiche les logs principaux du système et tail n'en retient que la fin, c'est-à-dire les derniers messages. Ici notre clef USB de 8Go s'appelle /dev/sda. Faites très attention à cette étape car les disques durs SATA sont aussi nommés en /dev/sda, /dev/sdb, etc. Si vous vous trompiez, vous risqueriez de les écraser !

Ensuite il faut récupérer le script Python mentionné plus haut, par exemple en téléchargeant le tarball de la version 0.1-prerelease (qui fonctionne plutôt bien contrairement à ce que son numéro pourrait laisser croire). Il faut ensuite décompresser le tarball et se placer dans son répertoire :

$ tar xzf 0.1-prerelease.tar.gz
$ cd 0.1-prerelease/

Parmi les nombreuses options que le script deb2flash gère, nous allons utiliser les suivantes :

  • --device spécifie le périphérique correspondant à la clef USB, le /dev/sd… que l'on vient de trouver
  • --mirror spécifie le serveur Internet à utiliser pour récupérer les paquets à installer
  • --suite spécifie la version de Debian (etch, lenny, sid, etc.)
  • --hostname spécifie le nom qu'aura le système, ce qu'on obtient habituellement avec la commande hostname

Remarque : il doit être possible de spécifier un serveur et un nom de version pour toute autre distribution basée sur Debian, par exemple Ubuntu ou encore Xandros, mais ceci n'a pas été testé. L'intérêt d'opter pour une autre distribution est d'avoir un support du matériel plus large que Debian, l'intérêt de Debian étant sa stabilité, son choix de logiciels inégalé et la quasi absence de services installés « au cas où »[1].

Notez que si vous souhaitez activer le chiffrement de la partition principale, il faudra ajouter l'option --dmcrypt. Enfin si vous souhaitez connaître la liste complète des options, c'est bien sûr cette commande classique qu'il faut exécuter :

$ ./deb2flash.py --help

Dans notre cas nous allons utiliser la commande suivante pour installer Debian Lenny depuis un serveur français :

$ sudo ./deb2flash.py --device /dev/sda --mirror http://ftp.fr.debian.org/debian --suite lenny --hostname debianlinux

Vous n'oublierez pas d'adapter à votre situation le /dev/sda bien sûr ! Une série de questions vous seront alors posées pour déterminer :

  • le mot de passe root
  • les utilisateurs à créer et leur mot de passe
  • le nombre de partitions à créer
  • éventuellement la passphrase pour chiffrer la partition principale
  • la configuration du réseau (laisser DHCP est généralement une bonne idée, c'est le système de configuration automatique du réseau)

Remarque importante : lorsque vous redémarrerez votre Linux minimaliste, le clavier sera en disposition qwerty, pensez-y en tapant le mot de passe root, quitte à le changer par la suite !

Une fois les informations nécessaires obtenues, le script commencera l'installation qui, signalons le tout de suite, est assez longue (de l'ordre de 10 minutes) au regard du système obtenu : uniquement en ligne de commande ! Il faut donc patienter un peu puis redémarrer sur la clef USB lorsque le script a terminé son travail[2].

Autre remarque importante : il faudra impérativement le réseau dans votre nouveau système sans quoi aucun paquet supplémentaire ne pourra être installé par la suite. Ceci veut dire que la carte réseau de votre machine doit être gérée par le noyau du système sans aucun module extérieur. Préférez donc une machine pas trop récente et avec un réseau filaire. En cas d'échec du réseau, il vous faudrait une machine avec lecteur de CD, graver une image de la distribution choisie et déclarer ce CD dans le système à la place des dépôts Internet (commande apt-cdrom).

Installation de l'environnement graphique

La première chose à faire est de changer la disposition du clavier[3] afin qu'elle coïncide avec celle de votre clavier (en tout cas en France). Le plus simple pour cela est d'installer le paquet console-setup puis de le reconfigurer :

# apt-get install console-setup
# dpkg-reconfigure console-setup

Rappelons que la commande apt-get install installe des logiciels automatiquement depuis les serveurs Internet alors que dpkg-reconfigure reconfigure un composant logiciel déjà installé. Il vous faudra alors choisir la langue, la région et l'encodage des caractères, lequel est normalement UTF-8 dans les Linux modernes. Typiquement pour la France on prendra donc fr_FR.UTF-8. Redémarrer le système permet alors de se retrouver dans un bon vieux système azerty français et de changer éventuellement le mot de passe root ! (commande passwd)

Reste maintenant à installer un environnement graphique. Dans notre cas nous choisirons Gnome mais vous pouvez tout aussi bien installer KDE (paquet kde), XFCE (paquet xfce4), les 3 ou tout autre environnement. L'environnement graphique nécessite bien sûr un serveur X (paquet xserver-xorg) accompagné de polices de caractères (paquet xfonts-base), ce qui donne :

# apt-get install xfonts-base xserver-xorg gnome

Comptez bien une à deux heures d'installation vu le débit bien plus faible en écriture des clefs USB, notamment pour les petits fichiers. Une fois terminée, il faut configurer le serveur X pour obtenir la bonne disposition de clavier dans l'environnement graphique :

# dpkg-reconfigure xserver-xorg

Lors de la configuration du serveur X, il faudra demander la détection automatique de la disposition de clavier et accepter ensuite toutes les propositions faites par l'outil de configuration. On peut alors lancer le gestionnaire de connexion GDM :

# /etc/init.d/gdm restart

Ici la commande /etc/init.d/gdm invoque le service GDM[4], lequel lance le serveur X puis GDM. Normalement vous êtes donc à ce stade devant un écran de connexion très classique identifiant / mot de passe qui n'attend que vous pour lancer Gnome, KDE ou XFCE (ou…), ce que vous ferez avec empressement ! Précipitez vous ensuite dans une console pour lancer Compiz :

$ compiz --replace

après avoir installé compiz avec apt-get install compiz. Si votre carte graphique supporte la 3D et que vous avez le bon pilote (voir plus bas la section Compiz ne marche pas sur toutes les machines), vous aurez alors le bureau 3D !

Configuration du système final

Installation de vos logiciels favoris

Souvent lorsqu'on est dans l'environnement graphique, on est soulagé ! En fait le plus gros de la configuration peut être ce qui reste alors à faire : lancer le gestionnaire de logiciels afin d'installer vos applications favorites (par exemple avec synaptic). N'oubliez pas cependant que, pour faire cela, vous pouvez aussi importer une liste de paquets venant d'un autre système Debian ou dérivés. L'opération d'installation se résume alors simplement à taper dans une console :

# dpkg --set-selections < package-list.txt
# dselect install

On suppose bien sûr ici que le fichier package-list.txt contient la liste des paquets à installer. Pour mémoire on l'obtient avec la commande suivante :

$ dpkg --get-selections > package-list.txt
Paramètres des utilisateurs créés

Par défaut les utilisateurs créés par le script Python auront tous le shell /bin/sh alors qu'en général on préférera /bin/bash, notamment du fait du complètement automatique des commandes avec le paquet bash-completion. Mais surtout, les utilisateurs n'ont aucun droit : pas le droit de lire du son ou des vidéos, périphériques amovibles inaccessibles, interdit de se connecter à Internet, etc.

Pour corriger cela, le plus simple est encore d'utiliser une interface graphique de gestion des utilisateurs (menu Système → Administration → Utilisateurs et groupes dans Gnome). La capture ci-dessous montre les groupes sélectionnés pour l'utilisateur principal.

user groups

Liste des groupes de l'utilisateur principal.

Chez moi la liste complète des groupes est donc la suivante :

$ groups
<user_group> adm dialout cdrom audio dip video plugdev powerdev netdev lpadmin scanner

plugdev permet d'utiliser les périphériques USB alors que netdev permet de se connecter à Internet, notamment avec le gestionnaire de connexion réseau NetworkManager (paquet du même nom).

Ajouter un swap dynamique

Si vous utilisez votre clef LiveUSB sur des systèmes modestes, il se peut que vous arriviez à court de mémoire RAM. Dans ce cas, ça devrait se terminer par un crash du système vu qu'il n'y a pas de mémoire virtuelle (swap) pour prendre le relais de la mémoire physique. L'idée est donc de mettre en place un fichier d'échange dont la taille est adaptée au besoin. Il y a pour cela plusieurs solutions dont une fournie par le paquet swapspace :

# apt-get install swapspace

Notez bien qu'il s'agit simplement d'éviter le pire en cas d'utilisation de toute la mémoire physique. Une clef USB étant lente en écriture, utiliser le swap est vraiment une très mauvaise idée !

Accélérer le démarrage du système

Bien que les clefs USB 2 soient rapides, on peut trouver que le temps de démarrage du système, de l'ordre de la minute, est un peu trop long. La page DebianEeePC - Tips And Tricks dédiée à ce problème pour l'Eee PC nous donne plusieurs pistes pour améliorer la situation :

  1. installer dash et faire en sorte que /bin/sh pointe sur dash[5]
  2. supprimer nfs-common qui démarre le service portmap, les deux sont normalement inutiles pour notre système
  3. réduire le temps nécessaire à la mise à jour de l'horloge interne du PC
  4. désactiver eth0 dans /etc/network/interfaces (et installer NetworkManager)

Les deux premières opérations s'effectuent de la sorte :

# apt-get install dash
# dpkg-reconfigure dash
# apt-get remove nfs-common portmap

À la question posée suite à la deuxième commande, il faudra bien sûr répondre que l'on veut que dash remplace bash lorsqu'on appelle /bin/sh. Pour l'horloge, il faut éditer les fichiers /etc/init.d/hwclockfirst.sh et /etc/init.d/hwclock.sh afin de remplacer HWCLOCKPARS par HWCLOCKPARS=--directisa :

# nano /etc/init.d/hwclockfirst.sh
# nano /etc/init.d/hwclock.sh

Enfin pour la dernière opération, il faut éditer le fichier /etc/network/interfaces pour commenter[6] voire supprimer les lignes suivantes :

# Primary network interface (eth0)
auto eth0
iface eth0 inet dhcp

Le gain total obtenu au démarrage est de l'ordre de 10s pour un temps de démarrage initial de 60s, c'est donc assez intéressant mais pas vraiment essentiel !

Conclusion

Vous voici désormais avec un système Linux exactement comme vous en avez besoin, partout où vous en avez besoin, et avec vos propres données accessibles en lecture et en écriture. Éventuellement vous aurez pris soin d'activer le chiffrement des partitions afin d'éviter les regards indiscrets en cas de perte ou de vol. Bref, il n'y a plus de raison d'utiliser un autre système d'exploitation, de subir ses applications qui ne vous conviennent pas ou qui en sont simplement systématiquement absentes ! Vous n'avez plus non plus besoin de céder gratuitement à un tiers une licence perpétuelle sur toutes vos données personnelles (voir plus bas), juste pour avoir toujours la même application web à disposition depuis n'importe où. En somme vous pouvez enfin utiliser l'outil informatique comme bon vous semble : vous avez - encore - gagné plus de liberté grâce à Linux et aux Logiciels Libres ;-) ! C'est pour cela que Linux, c'est l'avenir…

Les clauses d'utilisation des applications web dans le navigateur

Pourquoi faudrait-il se méfier des Google et autres gentils fournisseurs de services Internet gratuits qui simplifient la vie des utilisateurs ? Parce qu'il faut apprendre à bien lire les contrats d'utilisation ! Dans le cas de Google, les conditions d'utilisation de leurs services, parmi leurs 230 lignes de texte et quelques 4100 mots à lire, renferment des clauses plutôt discutables (gras ajouté) :

« 4. Fourniture des Services par Google

[…]

4.4 Vous reconnaissez et acceptez que, si Google désactive l'accès à votre compte, vous pourriez ne pas avoir accès aux Services, aux coordonnées de votre compte ou aux fichiers qui y sont disponibles. »

« 11. Licence du Contenu

11.1 Vous conservez la titularité des droits […], vous acceptez de concéder à Google une licence perpétuelle, irrévocable, pour le monde entier, à titre gratuit et non-exclusive pour reproduire, adapter, modifier, traduire, publier, représenter, afficher et distribuer tout Contenu que vous soumettez, affichez ou publiez sur les Services, ou par le biais des Services. »

Donc en gros vous n'êtes pas assuré de pouvoir récupérer vos données quoi qu'il arrive, et en plus Google s'octroie le droit de les utiliser ad vitam eternam comme il veut et sans vous demander quoi que ce soit ! Évidemment inutile de dire que vous ne pouvez pas récupérer la totalité de vos emails sur Gmail pour changer de fournisseur, alors quid de Google Documents ?

Finalement le logiciel tel qu'on le connaissait jusqu'à présent enfermait les utilisateurs dans un système commercial par le biais de formats de fichiers spécifiques de l'application (= illisibles par les autres), changeant en plus à chaque nouvelle version. L'éditeur, par cette pratique, se rend le réel propriétaire de vos propres données, ce qui vous oblige à le rémunérer ensuite régulièrement pour pouvoir utiliser votre propre travail.

Avec les applications web de type Google, l'éditeur certes ne met plus la main dans votre porte-monnaie, mais il est le seul à posséder vos données en ses propres locaux. De plus, il s'octroie le droit de les utiliser comme bon lui semble sans limite de temps. Bref vous êtes finalement encore moins propriétaire de votre propre travail… À bon entendeur !

Problèmes et questions possibles, en vrac

Certaines applications ne marchent pas ou pas bien

Vous avez suivi les indications à la lettre ? Alors il ne vous a pas échappé que Debian Lenny, c'est la version en cours de développement dont la sortie officielle est attendue pour l'automne 2008. Il se peut donc que certaines applications ne soient pas encore fonctionnelles ou qu'une mise à jour de votre système en rendent certaines instables. Si vous avez besoin d'un système très stable, optez plutôt pour Debian Etch mais il faudra reconfigurer le serveur X à chaque nouvelle paire carte graphique + écran, ou me demander le petit script Python que j'avais écrit pour cela il y a quelques temps ;-) .

Pas de place pour installer Gnome (ou KDE, ou…)

Le système se plaint qu'il n'y a pas assez de place pour procéder à l'installation des nombreux paquets de votre environnement graphique ? C'est certainement liée au fait que le répertoire /var/cache/apt/archives qui accueille les téléchargements est monté en mémoire RAM et que celle-ci n'est pas suffisante pour accueillir tous les paquets téléchargés (typiquement de l'ordre de 500Mo pour Gnome, 700Mo pour KDE). La solution consiste à démonter temporairement /var/cache/apt/archives (commande umount) et recréer son sous-répertoire partial (commande mkdir) :

# umount /var/cache/apt/archives
# mkdir /var/cache/apt/archives/partial

Il faut toutefois que votre clef puisse contenir à la fois les paquets téléchargés et le système après installation (compter donc pour Gnome 1,5 Go de système + 0,5 Go de paquets). Il suffit alors normalement de relancer l'installation :

# apt-get install xfonts-base xserver-xorg gnome

Cependant au prochain redémarrage, le répertoire sera à nouveau monté en mémoire RAM, il est donc conseillé de le vider juste après l'installation du système afin de ne pas encombrer inutilement la clef USB :

# apt-get clean

Et voilà !

Pas de réseau au premier redémarrage

Debian ne configure par défaut que l'interface eth0 en mode DHCP. Si votre carte n'apparaît pas sous ce nom, il faudra essayer une commande de ce type :

# dhclient eth1
# dhclient eth2
etc.

Enfin, si vous changez régulièrement de machine ou si vous aussi avez une adresse MAC aléatoire, le numéro de l'interface s'incrémente à chaque démarrage (cf. billet Avoir ses cartes réseau toujours dans l'ordre). Vous pouvez commencer par détruire le fichier /etc/udev/rules.d/z25_persistent-net.rules manuellement. Ensuite le plus sain est certainement de détruire systématiquement ce fichier au démarrage du système. On peut le faire en ajoutant au début du script /etc/init.d/feraga-init.sh installé par le script Python les quelques lignes suivantes :

if [ -f /etc/udev/rules.d/z25_persistent-net.rules ]; then
	rm /etc/udev/rules.d/z25_persistent-net.rules
fi

NB: faites attention aux espaces, ils comptent !

Ma machine ne démarre pas sur la clef

C'est peut-être parce que votre machine n'en est pas capable ! Il doit être possible de créer une disquette de boot qui va lancer ensuite le système sur la clef, mais cette possibilité n'a pas été explorée.

Impossible d'avoir l'écran de connexion

Si le serveur X refuse de démarrer (on reste en mode console), il est fort possible que ce soit à cause du mode framebuffer que l'on peut activer ou non lors de la configuration du serveur X. Il devrait suffire de le reconfigurer ! Si ce n'est pas ça, il faut lire les messages d'erreur en anglais du serveur X afin de débusquer le problème…

Pas de paquet Gnome, ou KDE, etc., à l'installation

Si vous utilisez un Linux en version de développement (typiquement Debian Lenny), il est possible que le paquet installant l'environnement complet ait momentanément disparu du dépôt. Dans ce cas le système vous signalera que le paquet désiré n'est pas disponible ou n'existe pas. Il suffit de patienter quelques jours en attendant qu'il réapparaisse, ça fait partie du processus de développement.

Compiz ne marche pas sur toutes les machines

Il y a plusieurs raisons possibles :

  • la carte graphique n'utilise pas un chipset Intel[7], il n'y a alors certainement pas le pilote du constructeur (ATI ou nVidia) sans lequel la 3D ne marche pas, ou il n'est pas utilisé par défaut par le serveur X
  • la carte graphique de la machine n'est pas assez récente

Si vous êtes dans le premier cas, il serait certainement plus simple d'opter pour un autre Linux qui gèrerait complètement ces pilotes ATI ou nVidia. Si Compiz ne marche pas du tout c'est peut-être simplement parce que vous utilisez un Linux en version de développement : patientez un peu que les mises à jour arrivent !

Les mises à jour du système bloquent la machine

Il semble malheureusement que l'écriture sur clef USB de volumes importants de données tende à ralentir notablement le système, voire même le bloque quelques secondes par moments. En plus elles sont bien plus longues que d'habitude du fait que le débit en écriture est faible, d'autant plus que les fichiers à écrire sont petits… Patientez ou optez pour un système qui n'est plus en cours de développement pour réduire les mises à jour !

Le choix de la clef conditionne-t-il la vitesse du système ?

Oui, sans aucun doute ! C'est en tout cas ce qui ressort du fil de discussion Choisir sa clé USB - Test de rapidité sur www.liberkey.com. LiberKey est un système plus ou moins concurrent des clefs LiveUSB mais avec un choix de logiciels bien moins intéressant, forcément…

Pour choisir une bonne clef USB, LesNumeriques.com fournit des informations très intéressantes. Mon expérience personnelle est qu'une clef rapide comme la Transcend JetFlash 168 qui ressort de ces tests permet d'avoir un système bien plus réactif par rapport à une clef standard achetée en supermarché (Sony en l'occurrence), d'un facteur 5 à 10 pour le gestionnaire des logiciels…

Puis-je remplir la clef à 99% ?

Oui en théorie, car la fragmentation du système de fichiers qui en résultera[8] ne pénalise normalement pas le temps d'accès aux fichiers comme sur un disque dur. Mais en pratique, du fait :

  • des données personnelles qui varient
  • des préférences des applications enregistrées dans les répertoires personnels (notamment le cache du navigateur web)
  • des mises à jour du système qui font varier la taille des fichiers installés
  • de l'accès plus lent pour des petits fichiers d'après les tests de clefs USB

il vaut mieux rester en deçà de 80 à 90% de remplissage pour que le système n'ait pas trop à réfléchir pour savoir où caser ses fichiers. Pour une clef de 4 Go, on évitera donc d'aller au-delà de 3,5 Go.

Le système se plaint de répertoires /var/log/… inexistants

À chaque redémarrage, le répertoire /var/log est effacé car il réside en mémoire RAM sur notre système LiveUSB. Or c'est dans ce répertoire que les applications et le système écrivent leurs journaux. Pour éviter les messages d'erreur et, éventuellement, des plantages, le script /etc/init.d/feraga-init.sh régénère les répertoires de /var/log à chaque démarrage. Il suffit d'y ajouter les vôtres. Dans le cas de Gnome et du gestionnaire de paquets Synaptic, il faut ajouter :

/var/log/gdm
/var/log/apt
Impossible d'écrire dans le répertoire /boot

Si vous avez demandé deux partitions à l'installation ou si vous avez demandé le chiffrement de la partition principale, c'est normal, le répertoire /boot est monté en lecture seule pour des raisons de sécurité :

# mount | grep /boot
/dev/sdb1 on /boot type ext2 (ro,noexec,nosuid,nodev,noatime)

Ici la commande mount utilisée sans arguments retourne la liste complète des partitions actuellement montées dans le système, alors que grep ne retient que la ligne contenant le mot /boot. C'est l'option ro mise en gras qui témoigne de l'impossibilité d'écrire (read only).

Comme /boot est le répertoire qui accueille le noyau et le chargeur de démarrage GRUB du système, le monter en lecture seule garantit qu'ils ne seront jamais corrompus lors de l'utilisation normale de la clef. Par contre pour mettre à jour le noyau ou modifier le menu de démarrage, ça pose problème…

Si vous êtes dans ce cas, plutôt que de diminuer le niveau de sécurité en modifiant le fichier /etc/fstab listant les partitions à monter au démarrage, nous nous proposons de monter temporairement /boot en lecture/écriture, le temps de faire des mises à jour ou des modifications. Les commandes sont les suivantes :

# umount /boot/
# mount -t ext2 -o noexec,nosuid,nodev,noatime /dev/sdb1 /boot

Quand on remonte la partition du répertoire /boot avec la commande mount, on reprend les options rapportées par la commande utilisée un peu plus haut et, surtout, le nom de la partition dans le système (/dev/sdb1 en l'occurrence). Ceci devrait rendre le répertoire /boot à nouveau modifiable, on le vérifie par exemple en y créant un fichier avec la commande touch :

# touch /boot/test
# ls /boot/
config-2.6.24-1-686      lost+found               vmlinuz-2.6.24-1-686
grub                     System.map-2.6.24-1-686
initrd.img-2.6.24-1-686  test

On peut ensuite le détruire bien sûr avant d'effectuer les changements désirés :

# rm /boot/test

Enfin si vous souhaitez remonter la partition en lecture seule immédiatement après vos modifications, il suffit des commandes suivantes :

# umount /boot/
# mount /boot/

À nouveau on doit obtenir un ro avec la commande sudo mount | grep /boot. La commande mount utilisée avec uniquement le répertoire cible comme argument, ira lire dans le fichier /etc/fstab comment monter ce répertoire. C'est pourquoi il n'est pas nécessaire de lui donner plus d'informations.

Cas du Eee PC

Le problème du Eee PC est qu'il nécessite des modules externes au noyau à la fois pour le réseau wifi et pour le réseau filaire… On peut les récupérer sur le dépôt dédié au Eee PC, mais il faut bien entendu le faire depuis une autre machine. Tout d'abord il faut enregistrer la clef d'authentification du dépôt :

# wget http://eeepc.debian.net/archive-key-eeepc.asc
# apt-key add archive-key-eeepc.asc
# rm archive-key-eeepc.asc

Ensuite il faut ajouter dans le fichier /etc/apt/sources.list les deux lignes suivantes :

deb http://eeepc.debian.net/debian lenny main contrib non-free
deb-src http://eeepc.debian.net/debian lenny main contrib non-free

En mettant à jour la liste des paquets dans synaptic, vous devriez voir apparaître de nouveaux paquets, ceux du Eee PC. Enfin pour activer le défilement horizontal avec le Touchpad, il faut ajouter manuellement la configuration correspondante dans le fichier /etc/X11/xorg.conf :

Section "InputDevice"
       Identifier      "Configured Touchpad"
       Driver          "synaptics"
       Option          "CorePointer"
       Option          "SendCoreEvents"        "true"
       Option          "Device"                "/dev/input/mice"
       Option          "Protocol"              "auto-dev"
       Option          "HorizEdgeScroll"       "1"
       Option          "SHMConfig"             "true"
EndSection

Notes

[1] voir le billet Choisir sa distribution Linux... sur ce blog

[2] si votre machine ne démarre pas spontanément sur la clef, c'est généralement en pressant une des touches F9 à F12 au démarrage que l'on accède au menu de boot, lequel détermine quel périphérique lancer en premier; attention vous n'aurez pas forcément une entrée nommée USB device par exemple, il arrive que les clef USB soient classées comme disque dur

[3] voir le billet Maîtriser les caractères spéciaux au clavier sur ce blog

[4] le répertoire /etc/init.d/ rassemble tous les scripts de lancement des services du système

[5] le démarrage d'un système Linux est opéré par un script shell interprété par le programme /bin/sh; par défaut ce programme n'est qu'un lien vers bash qui est un interpréteur plus lent que dash

[6] c'est le caractère dièse « # » qui délimite les commentaires

[7] voir le billet Bureau 3D : utile ou futile ?

[8] un système Linux ne se fragmente quasiment pas tant qu'on ne le remplit pas à un niveau « proche » de la saturation