<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://petaramesh.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Ashram de Swâmi Petaramesh - geekerie</title>
  <link>http://petaramesh.org/</link>
  <description>Ashram de Swâmi Petaramesh, Grand Guru de la Secte des Adorateurs de Cela.</description>
  <language>fr</language>
  <pubDate>Wed, 09 Jul 2008 02:50:03 +0200</pubDate>
  <copyright>CreativeCommons.org BY-NC-SA 2.0 FR</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Shit happens</title>
    <link>http://petaramesh.org/post/2008/06/14/Shit-happens</link>
    <guid isPermaLink="false">urn:md5:d36ef38af4db875aa79245921ce9ac89</guid>
    <pubDate>Sat, 14 Jun 2008 14:35:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>galère</category><category>geekerie</category><category>informatique</category>    
    <description>    &lt;p&gt;Alors voilà, j'ai voulu rajouter un module &lt;em&gt;Bluetooth&lt;/em&gt; acheté à un chinois sur Ebay à mon portable &lt;em&gt;Acer Aspire 3104WLMi&lt;/em&gt;...&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/img/info/2008/acer_explose_080614_800.jpg&quot;&gt;&lt;img src=&quot;http://petaramesh.org/public/arc/img/info/2008/acer_explose_080614_550.jpg&quot; alt=&quot;Acer Aspire démantelé&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Le module &lt;em&gt;Bluetooth&lt;/em&gt;, c'est la petite carte minuscule avec un petit bout de câble, en bas au milieu, à gauche de la pièce d'un Euro qui donne l'échelle (cliquer sur l'image pour agrandi un poil)&lt;/p&gt;


&lt;p&gt;Et pour rajouter un truc comme ça dans un portable &lt;em&gt;Acer&lt;/em&gt;, c'est pas comme s'il fallait tout démonter, hein ? Ah si ? C'est même le truc pour lequel il faut le plus tout démonter, même la carte mère, même le radiateur du processeur en ruinant son interface thermique ? Ah oui. Ben hein, c'est pô de chance...&lt;/p&gt;


&lt;p&gt;Surtout pour s'apercevoir en fin de compte que le connecteur de la carte vendue par le chinois est plus gros que celui de la carte mère du portable, et qu'il n'y a strictement aucun moyen de brancher l'un sur l'autre en l'état.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Shit happens&lt;/em&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/06/14/Shit-happens#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/06/14/Shit-happens#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1532</wfw:commentRss>
      </item>
    
  <item>
    <title>You've got mail !</title>
    <link>http://petaramesh.org/post/2008/06/13/Youve-got-mail</link>
    <guid isPermaLink="false">urn:md5:3447357191ca865c9fb56287e9a2402f</guid>
    <pubDate>Fri, 13 Jun 2008 08:48:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>geekerie</category><category>informatique</category><category>LED</category><category>Linux</category><category>portable</category>    
    <description>&lt;p&gt;Les petits veinards qui décident d'installer GNU/Linux sur leur portable ces jours-ci ne se doutent pas de la chance qu'ils ont : La plupart des fonctions de la plupart des portables (veille, hibernation, touches &amp;quot;&lt;code&gt;[Fn]&lt;/code&gt;&amp;quot; de réglage de luminosité, de volume...) fonctionnent &lt;em&gt;out of the box&lt;/em&gt; sans qu'il soit besoin de rien faire de spécial.&lt;br /&gt;
Il n'en allait pas de même il y a quelques années, époque où gérer avec GNU/Linux les spécificités des portables relevait encore de l'exploit.&lt;/p&gt;


&lt;p&gt;Il y a cependant quelques petites choses que le &lt;em&gt;linuxien&lt;/em&gt; de base ne pensera le plus souvent même pas à &lt;em&gt;essayer&lt;/em&gt; de faire marcher, comme par exemple les touches spécifiques situées en dehors du clavier principal, et sur lesquelles on trouve des symboles du genre &lt;em&gt;courrier&lt;/em&gt;, &lt;em&gt;navigateur Internet&lt;/em&gt;, &lt;em&gt;maison&lt;/em&gt;, etc.&lt;/p&gt;


&lt;p&gt;Si vous avez un portable &lt;em&gt;Acer Aspire&lt;/em&gt;, par exemple, vous avez 4 touches de ce genre à côté du bouton de mise sous tension, l'une d'elles étant la touche &lt;em&gt;courrier&lt;/em&gt; qui, si on la regarde bien, comporte même un voyant LED.&lt;/p&gt;


&lt;p&gt;Ne serait-il pas sympathique que cette LED clignote quand on a du courrier non lu ?&lt;/p&gt;    &lt;p&gt;Nous allons voir dans cet article qu'il n'est franchement pas difficile de contrôler le clignotement de ce voyant, et de l'utiliser pour signaler la présence de nouveau courrier.&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/06/13/#pnote-1530-1&quot; id=&quot;rev-pnote-1530-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; Pour l'utilisation des touches elles-mêmes, nous verrons peut-être ça dans un prochain article...&lt;/p&gt;


&lt;p&gt;Cet article est consacré à un portable de type &lt;em&gt;Acer Aspire 3104 WLMi&lt;/em&gt; sous &lt;em&gt;Kubuntu 8.04 Hardy&lt;/em&gt;, mais peut également être valable pour d'autres modèles, et même des portables de certaines autres marques qui peuvent aussi être gérés avec les pilotes &lt;em&gt;Acer&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Si vous avez installé &lt;em&gt;Ubuntu Hardy&lt;/em&gt; sur un portable Acer, il y a de bonnes chances que le module acer_acpi ait été automatiquement chargé. Si c'est le cas, vous verrez dans le répertoire virtuel &lt;code&gt;/proc&lt;/code&gt; un sous-répertoire &lt;code&gt;/proc/acpi/acer&lt;/code&gt; contenant divers pseudo-fichiers, dont un fichier &amp;quot;&lt;code&gt;mailled&lt;/code&gt;&amp;quot;.&lt;/p&gt;

&lt;pre&gt;
# ls -l /proc/acpi/acer/
total 0
-rw-r--r-- 1 root root 0 2008-06-13 08:43 brightness
-rw-r--r-- 1 root root 0 2008-06-13 08:43 interface
-rw-r--r-- 1 root root 0 2008-06-13 08:43 mailled
-rw-r--r-- 1 root root 0 2008-06-13 08:43 threeg
-rw-r--r-- 1 root root 0 2008-06-13 08:43 version
-rw-r--r-- 1 root root 0 2008-06-13 08:43 wireless
&lt;/pre&gt;


&lt;p&gt;Si vous ne voyez pas ce répertoire, vérifiez avec la commande &amp;quot;&lt;code&gt;lsmod&lt;/code&gt;&amp;quot; que le module &amp;quot;acer_acpi&amp;quot; est chargé, sinon tentez de le charger avec la commande &amp;quot;&lt;code&gt;modprobe acer_acpi&lt;/code&gt;&amp;quot;.&lt;/p&gt;

&lt;pre&gt;
# lsmod | grep acer
acer_acpi              18112  0
led_class               6020  1 acer_acpi
wmi_acer                9644  1 acer_acpi
&lt;/pre&gt;


&lt;p&gt;Si vous voyez le fichier &lt;code&gt;/proc/acpi/acer/mailled&lt;/code&gt;, essayez donc (comme &lt;em&gt;root&lt;/em&gt;) :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;echo 1 &amp;gt; /proc/acpi/acer/mailled&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;echo 0 &amp;gt; /proc/acpi/acer/mailled&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Amusant, n'est-ce pas ?&lt;/p&gt;


&lt;p&gt;Nous avons quand même un petit problème : Seul &lt;em&gt;root&lt;/em&gt; peut normalement écrire dans ce fichier (donc contrôler la LED), et nous voudrions bien pouvoir l'utiliser pour signaler la présence de courrier pour un utilisateur &amp;quot;ordinaire&amp;quot;.&lt;/p&gt;


&lt;p&gt;On pourrait envisager de &amp;quot;&lt;code&gt;chmod 666 /proc/acpi/acer/mailled&lt;/code&gt;&amp;quot; pour autoriser n'importe quel utilisateur à contrôler la LED, ce qui ne pose pas de problème de sécurité, mais &lt;code&gt;/proc&lt;/code&gt; est un système de fichiers virtuel, et ce réglage disparaîtrait au prochain &lt;em&gt;reboot&lt;/em&gt;, ou à la prochaine suspension ou hibernation de la machine.&lt;/p&gt;


&lt;p&gt;Le plus simple pour contourner ce problème est alors de contrôler la LED via un petit script &amp;quot;&lt;code&gt;/usr/local/bin/mail-led&lt;/code&gt;&amp;quot; que l'on appellera à travers &amp;quot;&lt;em&gt;sudo&lt;/em&gt;&amp;quot;, tout en indiquant à &lt;em&gt;sudo&lt;/em&gt; qu'il peut exécuter ce script en tant que root, depuis n'importe quel utilisateur et sans demander de mot de passe. Voici le contenu du script &amp;quot;&lt;code&gt;/usr/local/bin/mail-led&lt;/code&gt;&amp;quot; que je vous propose :&lt;/p&gt;

&lt;pre&gt;
# Sets Acer mail LED on or off
#
# Needs to be run as root, use sudo with an /etc/sudoers entry such as:
# ALL ALL=NOPASSWD: /usr/local/bin/mail-led
#
[ $# -eq 1 ] || exit 1
[ -w /proc/acpi/acer/mailled ] || exit 1

case $1 in
        0|no|NO|No|off|OFF|Off|false|FALSE|False)
                echo 0 &amp;gt; /proc/acpi/acer/mailled
                ;;
        1|yes|YES|Yes|on|ON|On|true|TRUE|True)
                echo 1 &amp;gt; /proc/acpi/acer/mailled
                ;;
        *)
                exit 1
                ;;
esac
exit 0
&lt;/pre&gt;


&lt;p&gt;Après l'avoir sauvegardé, rendez-le exécutable pour n'importe quel utilisateur : &amp;quot;&lt;code&gt;chmod 755 /usr/local/bin/mail-led&lt;/code&gt;&amp;quot;, puis utilisez la commande &amp;quot;&lt;em&gt;visudo&lt;/em&gt;&amp;quot; qui appellera votre éditeur de texte standard pour vous permettre de modifier le fichier &amp;quot;&lt;em&gt;/etc/sudoers&lt;/em&gt;&amp;quot;.&lt;br /&gt;
À la fin de ce fichier, rajoutez simplement la ligne :&lt;/p&gt;


&lt;pre&gt;ALL     ALL=NOPASSWD: /usr/local/bin/mail-led&lt;/pre&gt;


&lt;p&gt;...et sauvegardez.&lt;/p&gt;


&lt;p&gt;Essayez alors, depuis un terminal &amp;quot;utilisateur ordinaire&amp;quot; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo mail-led on&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo mail-led off&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ça devrait fonctionner, sans vous demander de mot de passe.&lt;/p&gt;


&lt;p&gt;Maintenant que nous pouvons contrôler la LED à l'aise Blaise, il n'y a plus qu'à utiliser l'un des nombreux petits logiciels &amp;quot;notificateurs de courrier&amp;quot; disponibles, pour peu que celui-ci permette d'exécuter une commande arbitraire (pour allumer la LED) quand il détecte du nouveau courrier, et une autre commande (pour éteindre) quand il n'en détecte plus.&lt;/p&gt;


&lt;p&gt;Sous KDE, le package &amp;quot;&lt;em&gt;kbiff&lt;/em&gt;&amp;quot; fera parfaitement l'affaire. Sous Gnome ou d'autres environnements, vous pouvez utiliser le package &amp;quot;&lt;em&gt;mail-notification&lt;/em&gt;&amp;quot;.&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/06/13/#pnote-1530-2&quot; id=&quot;rev-pnote-1530-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; Vous n'avez plus qu'à configurer ce logiciel pour qu'il appelle &amp;quot;&lt;code&gt;sudo mail-led on&lt;/code&gt;&amp;quot; pour signaler la présence de nouveau courrier, et, bien sûr &amp;quot;&lt;code&gt;sudo mail-led off&lt;/code&gt;&amp;quot; quand il n'y en a plus.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://petaramesh.org/public/arc/img/info/2008/kbiff_mailled.jpg&quot; alt=&quot;Kbiff pour LED mail&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Vous devrez également configurer dans ce logiciel les paramètres de votre serveur de courrier et de votre boîte-aux-lettres, puisque ce logiciel de notification est indépendant de votre &amp;quot;client mail&amp;quot; habituel. (Pour cette raison, il pourra y avoir un décalage entre le moment où vous lisez le courrier et le moment où la LED s'éteindra, puisqu'il faudra attendre que le logiciel de notification revérifie votre boîte pour qu'il se rende compte qu'il n'y a plus de nouveau courrier).&lt;/p&gt;


&lt;p&gt;Moi, je trouve ce petit truc super-pratique ;-)&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/06/13/#rev-pnote-1530-1&quot; id=&quot;pnote-1530-1&quot;&gt;1&lt;/a&gt;] Sur une machine ne disposant pas de LED &amp;quot;spéciale&amp;quot;, il existe des outils permettant de contrôler le clignotement des LEDs habituelles du clavier (&lt;code&gt;NumLock&lt;/code&gt;, etc...)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/06/13/#rev-pnote-1530-2&quot; id=&quot;pnote-1530-2&quot;&gt;2&lt;/a&gt;] Il existe aussi des packages spécialement &amp;quot;orientés gmail&amp;quot;, comme &lt;em&gt;chekckgmail&lt;/em&gt;, &lt;em&gt;kcheckgmail&lt;/em&gt; ou &lt;em&gt;kgmailnotifier&lt;/em&gt;...&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/06/13/Youve-got-mail#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/06/13/Youve-got-mail#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1530</wfw:commentRss>
      </item>
    
  <item>
    <title>Dent bleue</title>
    <link>http://petaramesh.org/post/2008/06/10/Dent-bleue</link>
    <guid isPermaLink="false">urn:md5:9b41715f7daad41d91272fb4143cf7ff</guid>
    <pubDate>Tue, 10 Jun 2008 16:40:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>bluetooth</category><category>geekerie</category><category>informatique</category><category>Linux</category>    
    <description>    &lt;p&gt;Je fais mumuse depuis quelques jours avec du &lt;em&gt;Bluetooth&lt;/em&gt; sous GNU/Linux, et je constate que la chose y fonctionne avec une facilité déconcertante : Impeccable pour transférer photos, musique et carnet d'adresses avec son téléphone mobile.&lt;/p&gt;


&lt;p&gt;Dans &lt;em&gt;KDE&lt;/em&gt;, on peut explorer les périphériques &lt;em&gt;bluetooth&lt;/em&gt; directement avec Konqueror et coupier / copier / coller des fichiers comme on le ferait sur un répertoire monté en réseau.&lt;/p&gt;


&lt;p&gt;Mais il y a aussi une petite chose couplée à &lt;em&gt;KBluetooth&lt;/em&gt; que je trouve extrêmement utile : &lt;em&gt;KBlueLock&lt;/em&gt; : Ce machin active l'économiseur d'écran et verrouille l'écran dès qu'un périphérique &lt;em&gt;bluetooth&lt;/em&gt; choisi disparaît. En pratique, si on &amp;quot;choisit&amp;quot; comme périphérique son téléphone mobile, la portée du &lt;em&gt;bluetooth&lt;/em&gt; étant d'une dizaine de mètres gromaxi, il suffit de s'éloigner de sa bécane téléphone mobile en poche ou à la ceinture pour que l'écran se verrouille aussitôt qu'il &amp;quot;voit&amp;quot; qu'on est parti :-)&lt;/p&gt;


&lt;p&gt;Plus besoin de régler des délais d&lt;em&gt;'économiseur d'écran&lt;/em&gt; très courts, et on peut même régler le machin pour qu'il déverrouille l'écran tout seul dès que le téléphone revient dans le coin. Magique ! ;-)&lt;/p&gt;


&lt;p&gt;Pour ceux qui n'utilisent pas &lt;em&gt;KDE&lt;/em&gt; mais &lt;em&gt;Gnome&lt;/em&gt;, on peut faire la même chose en installant le package &amp;quot;&lt;em&gt;blueproximity&lt;/em&gt;&amp;quot;.&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/06/10/Dent-bleue#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/06/10/Dent-bleue#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1524</wfw:commentRss>
      </item>
    
  <item>
    <title>Hibernatus</title>
    <link>http://petaramesh.org/post/2008/05/28/Hibernatus</link>
    <guid isPermaLink="false">urn:md5:9436b3802c6c5750ae7388db442acec7</guid>
    <pubDate>Wed, 28 May 2008 18:03:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>geekerie</category><category>hibernation</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;Depuis que les &lt;acronym title=&quot;membres de la Commission Nationale Informatique et Libertés&quot;&gt;CNILonautes&lt;/acronym&gt; ont été placés en hibernation dans leur caisson cryogénique en 1978 et n'en sont jamais ressortis, l'idée a fait son chemin.&lt;/p&gt;


&lt;p&gt;C'est ainsi que désormais, &lt;em&gt;Ubuntu&lt;/em&gt; gère très convenablement l'hibernation (et la suspension) des ordinateurs portables. Mais qu'est-ce donc ?&lt;/p&gt;    &lt;p&gt;Les ordinateurs portables fonctionnant sur de misérables petites batteries pouilleuses, leur autonomie est fortement limitée. On a donc cherché dès l'origine à augmenter cette autonomie par diverses méthodes, la plus évidente étant de mettre en &amp;quot;veille&amp;quot; ou d'éteindre l'ordinateur dès qu'on ne l'utilise pas.&lt;/p&gt;


&lt;p&gt;Eteindre l'ordinateur et le rallumer pose cependant deux problèmes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Celui du temps nécessaire à l'extinction complète et au redémarrage (boot, ouverture de session...)&lt;/li&gt;
&lt;li&gt;Celui de pouvoir retrouver les choses dans l'état exact où on les avait laissées (connexions réseau, affichage, documents ouverts...)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En l'absence de solution à ces problèmes, devoir éteindre et rallumer un ordinateur représente une importante perte de temps et est donc peu praticable.&lt;/p&gt;


&lt;p&gt;Des méthodes &amp;quot;améliorées&amp;quot; ont donc été mises au point, et leur usage n'est d'ailleurs pas limité aux seuls ordinateurs portables - on peut très bien les utiliser avec une machine de bureau pour en limiter autant que possible la consommation électrique quand on ne s'en sert pas, par exemple.&lt;/p&gt;


&lt;p&gt;Les versions récentes de GNU/Linux gèrent très bien ces méthodes sur les ordinateurs dont le matériel (&lt;acronym title=&quot;Advanced Configuration and Power Interface&quot;&gt;ACPI&lt;/acronym&gt;) (et les périphériques !) les supportent, et &lt;em&gt;Ubuntu Hardy&lt;/em&gt; sait aussi bien effectuer la &lt;em&gt;suspension&lt;/em&gt; que &lt;em&gt;l'hibernation&lt;/em&gt; des 3 modèles très différents de portables sur lesquels je les ai essayées.&lt;/p&gt;



&lt;h4&gt;La suspension &amp;quot;en RAM&amp;quot;&lt;/h4&gt;


&lt;p&gt;La &lt;em&gt;suspension en RAM&lt;/em&gt; est la méthode la plus rapide, mais la moins complète. Elle consiste à placer les périphériques du système &lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#pnote-1509-1&quot; id=&quot;rev-pnote-1509-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; soit :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dans un état de &amp;quot;sommeil&amp;quot; à très faible consommation d'énergie&lt;/li&gt;
&lt;li&gt;ou complètement hors-tension&lt;/li&gt;
&lt;li&gt;ou à les laisser en fonction&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...selon ce que chaque périphérique et le BIOS de la machine permettent, puis à interrompre le fonctionnement du processeur, laissant uniquement la mémoire RAM alimentée et rafraîchie, ce qui consomme très peu d'énergie.&lt;/p&gt;


&lt;p&gt;Dans cet état, l'autonomie de la batterie du portable peut passer de quelques heures à plusieurs jours ; toutefois la machine n'est pas &amp;quot;éteinte&amp;quot; et continue de consommer. Une fois la batterie complètement vide, elle s'éteindra &amp;quot;pour de bon&amp;quot; ce qui aura sur le système un effet à peu près équivalent à ce qu'aurait eu une coupure de courant brutale, à ceci près que l'état des systèmes de fichiers sera meilleur au redémarrage (puisque les systèmes de fichiers auront été &amp;quot;synchronisés&amp;quot; juste avant la mise en &lt;em&gt;suspension&lt;/em&gt; et qu'aucune écriture sur disque ne pouvait être en cours durant la suspension).&lt;/p&gt;


&lt;p&gt;Le &amp;quot;réveil&amp;quot; de la machine depuis l'état de suspension est rapide (quelques secondes), puisque la mémoire RAM est restée chargée. Il n'y a pas de &amp;quot;&lt;em&gt;boot&lt;/em&gt;&amp;quot; à faire ; le système doit &amp;quot;seulement&amp;quot; redémarrer son processeur et remettre les périphériques dans leur état de fonctionnement antérieur - ce qui est la partie le plus longue et la plus susceptible de causer des problèmes.&lt;/p&gt;



&lt;h4&gt;L'&amp;quot;hibernation&amp;quot; sur disque&lt;/h4&gt;


&lt;p&gt;L'hibernation sur disque est une méthode complète qui permet de réellement éteindre la machine, lui permettant de demeurer en l'état sans consommation électrique pour une durée indéfinie.&lt;br /&gt;
La mise en &lt;em&gt;hibernation&lt;/em&gt; commence par la suspension de l'exécution de toutes les tâches en cours, puis l'enregistrement de l'état actuel des périphériques (quand cela est possible), puis la &amp;quot;compression&amp;quot; du contenu de la mémoire RAM suivie de l'écriture de cette &amp;quot;image mémoire compressée&amp;quot; dans la partition de &lt;em&gt;swap&lt;/em&gt;. Une fois tout ceci fait, la machine est alors (complètement) éteinte et peut donc rester dans cet état indéfiniment.&lt;/p&gt;


&lt;p&gt;Le &amp;quot;réveil&amp;quot; de la machine depuis l'état d&lt;em&gt;'hibernation&lt;/em&gt; est plus long et plus complexe que pour la simple suspension. Pour le BIOS de l'ordinateur, c'est d'abord une mise en route &amp;quot;ordinaire&amp;quot;, le chargement du &lt;em&gt;bootloader&lt;/em&gt; (&lt;em&gt;grub&lt;/em&gt;, &lt;em&gt;lilo&lt;/em&gt;...), suivi du chargement de l&lt;em&gt;'initramfs&lt;/em&gt; et du démarrage du noyau. Ça commence donc réellement comme un &lt;em&gt;boot&lt;/em&gt; ordinaire.&lt;/p&gt;


&lt;p&gt;Ensuite, le programme &amp;quot;&lt;em&gt;resume&lt;/em&gt;&amp;quot; est appelé et decouvre la présence de l'image mémoire compressée dans la partition de &lt;em&gt;swap&lt;/em&gt;. Le programme &lt;em&gt;resume&lt;/em&gt; prend alors le pas sur la séquence de démarrage habituelle, il recopie et décompresse l'image mémoire sauvegardée en RAM, réinitialise les périphériques à partir de leur état sauvegardé (un peu comme lors d'un réveil de &lt;em&gt;suspension&lt;/em&gt;), puis reprend l'exécution à partir de l'image restaurée en mémoire : l'ordinateur se trouve alors (théoriquement) dans l'état exact qui était le sien juste avant la mise en hibernation : utilisateur connecté, systèmes de fichiers montés, connections réseau, applications et fichiers ouverts, etc.&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#pnote-1509-2&quot; id=&quot;rev-pnote-1509-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;&lt;strong&gt;N.B.:&lt;/strong&gt;&lt;/ins&gt; Il est possible de booter normalement &lt;em&gt;sans&lt;/em&gt; reprise une machine qui a été &lt;em&gt;hibernée&lt;/em&gt; si l'on passe au noyau le paramètre de boot &amp;quot;&lt;em&gt;noresume&lt;/em&gt;&amp;quot;. Dans ce cas, la machine bootera &amp;quot;normalement&amp;quot; dans l'état qui aurait été le sien après avoir subi une coupure de courant brutale.&lt;/p&gt;



&lt;h4&gt;Problèmes techniques&lt;/h4&gt;


&lt;p&gt;Les plus gros problèmes rencontrés avec les systèmes de &lt;em&gt;suspension&lt;/em&gt; ou d&lt;em&gt;'hibernation&lt;/em&gt; sont ceux relatifs aux périphériques du système. En effet, en fonctionnement normal, ils ont été initialisés par le BIOS, puis par leur &lt;em&gt;pilote&lt;/em&gt;, puis leur état a été éventuellement modifié par l&lt;em&gt;'application&lt;/em&gt; qui les utilise, etc.&lt;br /&gt;
Au &amp;quot;réveil&amp;quot;, l'application (qui n'a rien vu) s'attend à retrouver les périphériques dans l'état exact où ils étaient auparavant, &lt;em&gt;sans&lt;/em&gt; avoir besoin de les initialiser à nouveau.&lt;br /&gt;
Ceci implique que le système de suspension / hibernation / réveil doit être en mesure de &lt;em&gt;déterminer&lt;/em&gt; et enregistrer l'état précis de tous les périphériques (par exemple mode vidéo en cours, vitesse actuelle du port série, volume réglé sur la carte son, firmware chargé dans une carte Wi-Fi, etc...) avant de les éteindre, et de restaurer cet état précis au réveil, avant de rendre la main au fonctionnement normal du système. Or ce n'est pas &lt;em&gt;toujours&lt;/em&gt; possible, certains périphériques (surtout les anciens ou ceux non prévus pour des ordinateurs capables d'hibernation) étant capables d'exécuter une commande de changement d'état, mais incapables de faire un &amp;quot;rapport&amp;quot; de leur état courant au système. D'autres périphériques peuvent avoir des états tellement complexes (carte vidéo) qu'il n'est pas forcément possible de récupérer &lt;em&gt;l'ensemble&lt;/em&gt; des informations nécessaires.&lt;br /&gt;
On peut alors rencontrer des problèmes avec de tels périphériques,&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#pnote-1509-3&quot; id=&quot;rev-pnote-1509-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; comme avoir un périphérique qui ne fonctionne plus au réveil, une image vidéo qui ne se rétablit pas complètement, une connexion réseau qui refuse de revenir, etc.&lt;br /&gt;
Ceci est d'autant plus vrai dans le mode &lt;em&gt;hibernation&lt;/em&gt;, où les périphériques sont complètement &lt;em&gt;éteints&lt;/em&gt; que dans le mode &lt;em&gt;suspension&lt;/em&gt; où certains périphériques peuvent être placés en mode &lt;em&gt;sommeil&lt;/em&gt; et conserver eux-mêmes leur &amp;quot;état&amp;quot; - ils ne sont pas complètement éteints.&lt;br /&gt;
De gros progrès ont été faits, et les suites logicielles d'hibernation et de réveil comportent des kyrielles de &amp;quot;méthodes spéciales&amp;quot; pour différents types de périphériques&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#pnote-1509-4&quot; id=&quot;rev-pnote-1509-4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt; ; toutefois, il peut encore parfois demeurer des problèmes. Vous vous montrerez indulgent après avoir lu cet article ;-)&lt;/p&gt;



&lt;h4&gt;Pièges à prévoir&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Problèmes liés à la &lt;em&gt;suspension&lt;/em&gt; :
&lt;ul&gt;
&lt;li&gt;Lors de la &lt;em&gt;suspension&lt;/em&gt;, le système n'est pas complètement hors-tension. Il peut donc continuer à chauffer (et sur certains modèles, se décider à ventiler) dans certaines situations. De plus, il est possible que l'appui accidentel sur une touche&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#pnote-1509-5&quot; id=&quot;rev-pnote-1509-5&quot;&gt;5&lt;/a&gt;]&lt;/sup&gt; provoque le réveil de la machine. Si vous enfermez votre portable &lt;em&gt;suspendu&lt;/em&gt; dans une housse ou un sac et que celui-ci se &lt;em&gt;réveille&lt;/em&gt; inopinément, ou chauffe, il risque de surchauffer et de griller faute de ventilation et par excès d'isolation ! Étudiez bien &lt;em&gt;votre&lt;/em&gt; machine pour connaître &lt;em&gt;son&lt;/em&gt; comportement avant de vous décider ou non à la trimballer &lt;em&gt;suspendue&lt;/em&gt; dans un sac (ce que je fais sans problème régulièrement avec mon &lt;em&gt;Asus EeePC&lt;/em&gt; par exemple).&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Problèmes liés à l&lt;em&gt;'hibernation&lt;/em&gt; :
&lt;ul&gt;
&lt;li&gt;Pour pouvoir hiberner votre machine, vous &lt;em&gt;devez&lt;/em&gt; disposer d'une partition de &lt;em&gt;swap&lt;/em&gt; de taille appropriée, typiquement &lt;em&gt;grosso-modo&lt;/em&gt; 2 fois la taille de la RAM de votre machine, et l'ensemble de vos périphériques doit accepter l'opération sans casse (faut essayer ;-)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Problèmes liés à la &lt;em&gt;suspension&lt;/em&gt; et à l&lt;em&gt;'hibernation&lt;/em&gt; :
&lt;ul&gt;
&lt;li&gt;Retrait ou ajout de périphériques : Quand votre ordinateur est &lt;em&gt;hiberné&lt;/em&gt;, et dans une certaine mesure, &lt;em&gt;suspendu&lt;/em&gt;, il ne peut pas se rendre compte de l'ajout ou de la suppression de nouveaux périphériques (branchement ou débranchement d'un câble secteur, d'un bidule USB, etc). Il se peut qu'au réveil il ne puisse pas effectuer les actions nécessaires à ce changement dont il ne se sera pas aperçu (changement du mode de gestion d'énergie, prise en compte du nouveau périphérique...). Pour cette raison, je conseille, si vous prévoyez de déplacer votre portable après l'avoir suspendu ou hiberné, de toujours retirer les périphériques (cordon secteur, clés USB...) &lt;em&gt;avant&lt;/em&gt; de le suspendre, et de toujours le réveiller complètement &lt;em&gt;avant&lt;/em&gt; de les reconnecter, de manière à ce qu'il soit toujours dans le même état précis à l'endormissement et au réveil et qu'il prenne en compte les changements de périphériques alors qu'il est &amp;quot;pleinement réveillé&amp;quot;.&lt;/li&gt;
&lt;li&gt;Systèmes de fichiers sur périphériques USB : À la &lt;em&gt;suspension&lt;/em&gt; ou l&lt;em&gt;'hibernation&lt;/em&gt;, le système perd le montage de &lt;em&gt;tous&lt;/em&gt; les systèmes de fichiers sur périphériques USB, ce qui peut poser problème (perte de données) s'il y a des fichiers ouverts ou des caches non vidés pour ces périphériques. Il est donc conseillé de démonter et ôter les périphériques de stockage USB avant de suspendre ou d'hiberner. Sur les noyaux 2.6.24 et supérieurs, la fonction &amp;quot;&lt;em&gt;usb persist&lt;/em&gt;&amp;quot; permet de résoudre le problème et de conserver les montages USB au réveil.&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#pnote-1509-6&quot; id=&quot;rev-pnote-1509-6&quot;&gt;6&lt;/a&gt;]&lt;/sup&gt; Ceci marche particulièrement bien avec mon &lt;em&gt;Asus EeePC&lt;/em&gt; pour conserver l'accès à sa carte mémoire SD à travers une &lt;em&gt;suspension&lt;/em&gt; ou une &lt;em&gt;hibernation&lt;/em&gt;.&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#pnote-1509-7&quot; id=&quot;rev-pnote-1509-7&quot;&gt;7&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;Considérations de performances&lt;/h4&gt;


&lt;p&gt;Si la &lt;em&gt;suspension&lt;/em&gt; et son réveil sont généralement très rapides, l&lt;em&gt;'hibernation&lt;/em&gt; et son réveil peuvent prendre beaucoup de temps. Sur une machine relativement peu puissante, il peut être bien plus long de l&lt;em&gt;'hiberner&lt;/em&gt; que de l'arrêter normalement, et bien plus long de la &lt;em&gt;réveiller&lt;/em&gt; que de faire un démarrage normal &amp;quot;à froid&amp;quot;.&lt;br /&gt;
Ceci remet fortement en question l'intérêt de l'hibernation puisqu'elle ne fait plus gagner aucun temps, et peut même en faire perdre, le seul intérêt demeurant alors est de retrouver le système dans l'état exact où on l'avait laissé, intérêt toutefois minoré par la capacité de KDE à restaurer au démarrage toutes les applications (ou presque) qui étaient en cours quand il a été arrêté.&lt;/p&gt;


&lt;p&gt;Il y a moyen (voir plus bas) d'agir sur le temps de mise en hibernation, mais ce sera au prix de la vitesse et de la réactivité de la machine après son réveil.&lt;/p&gt;


&lt;p&gt;En effet, une machine &lt;em&gt;réveillée après hibernation&lt;/em&gt; se montrera pour un temps plus lente et moins réactive qu'une machine &lt;em&gt;fraîchement bootée&lt;/em&gt;, notamment parce que son cache-disque et ses buffers auront été vidés et qu'une partie de sa mémoire aura été (et sera encore) swappée...&lt;/p&gt;



&lt;h4&gt;Considérations de sécurité&lt;/h4&gt;


&lt;p&gt;La &lt;em&gt;suspension&lt;/em&gt; et l&lt;em&gt;'hibernation&lt;/em&gt; peuvent avoir d'importantes conséquences sur la sécurité d'un portable, ne serait-ce que parce que toutes deux &lt;em&gt;réveillent&lt;/em&gt; le système dans l'état où il était à sa mise en veille, toutes applications et documents ouverts, et notamment que l'utilisateur n'a pas besoin de rouvrir sa session en tapant son login et son mot de passe.&lt;br /&gt;
&lt;em&gt;Normalement&lt;/em&gt;, une session graphique au &lt;em&gt;réveil&lt;/em&gt; soit se retrouver en mode &amp;quot;&lt;em&gt;verrouillé et économiseur d'écran activé&lt;/em&gt;&amp;quot;, ce qui nécessite la frappe du mot de passe de l'utilisateur pour accéder à la session, mais j'ai vu des cas plus ou moins imprévisibles où la session n'était pas verrouillée au réveil.&lt;br /&gt;
D'éventuelles sessions ouvertes sur des &amp;quot;consoles texte&amp;quot; ne seront &lt;ins&gt;pas&lt;/ins&gt; verrouillées au réveil de la machine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La &lt;em&gt;suspension&lt;/em&gt; d'une machine peut être considérée du point de vue de la sécurité comme strictement équivalente à laisser la machine allumée avec la session verrouillée par un économiseur d'écran, ce qui est une sécurité assez &amp;quot;moyenne&amp;quot;, et encore faut-il que l'économiseur d'écran s'active effectivement...&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;L&lt;em&gt;'hibernation&lt;/em&gt; d'une machine a des conséquences très différentes :
&lt;ul&gt;
&lt;li&gt;Tout d'abord, l&lt;em&gt;'hibernation&lt;/em&gt; d'une machine est compatible avec une installation sur un disque complètement chiffré (LVM chiffrée contenant également le &lt;em&gt;swap&lt;/em&gt;), ce qui protège pleinement la machine pendant son hibernation &lt;em&gt;si&lt;/em&gt; on est dans un tel cas de figure.&lt;/li&gt;
&lt;li&gt;Comme la machine doit &lt;em&gt;booter&lt;/em&gt; avant de se &lt;em&gt;réveiller&lt;/em&gt;, elle pourra être verrouillée par un éventuel mot de passe de BIOS (qui n'offre par ailleurs pas une sécurité bien grande).&lt;/li&gt;
&lt;li&gt;Si la machine est installée sur LVM chiffrée, il faudra déverrouiller la LVM (comme lors d'un boot normal) pour pouvoir &lt;em&gt;réveiller&lt;/em&gt; une machine &lt;em&gt;hibernée&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;L&lt;em&gt;'hibernation&lt;/em&gt; d'une machine au swap non chiffré pose de sérieux problèmes de sécurité !&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pensez qu'au moment de la mise en hibernation, &lt;ins&gt;absolument tout&lt;/ins&gt; ce qui se trouve en mémoire vive est copié sur le swap et y demeurera éventuellement un temps indéfini, y compris tous documents ouverts ainsi que des éléments qui sont d'habitude éventuellement protégés par le noyau pour &lt;em&gt;ne pas&lt;/em&gt; être écrits sur le swap en fonctionnement normal, comme des clés de chiffrement, des mots de passe, etc...&lt;/li&gt;
&lt;li&gt;Le programme &lt;em&gt;swsusp&lt;/em&gt; possède une fonction de &lt;em&gt;chiffrement de l'image mémoire&lt;/em&gt; avec une &amp;quot;clé jetable&amp;quot;, mais celle-ci ne &lt;em&gt;semble pas&lt;/em&gt; active sur Ubuntu 8.04. Quoi qu'il en soit, cette fonction permet de rendre inutilisable ce qui avait été écrit sur le &lt;em&gt;swap après&lt;/em&gt; le réveil de la machine, mais elle reste entièrement vulnérable &lt;em&gt;pendant qu'elle est en état hiberné&lt;/em&gt;, puisque la clé de déchiffrement doit également être stockée dans le &lt;em&gt;swap&lt;/em&gt; pour permettre le &lt;em&gt;réveil&lt;/em&gt; de la machine. Ceci de mon point de vue proscrit l'usage de l'hibernation pour toute machine pouvant contenir des données confidentielles, &lt;strong&gt;sauf&lt;/strong&gt; si l'hibernation est effectuée sur un &lt;em&gt;swap&lt;/em&gt; situé à l'intérieur d'une LVM entièrement chiffrée.&lt;/li&gt;
&lt;li&gt;L'utilisation d'un &lt;em&gt;swap&lt;/em&gt; dans une LVM chiffrée protège de ce problème, mais offre une sécurité moindre que celle apportée par un swap chiffré séparément par une clé aléatoire générée à chaque boot (ce qui est incompatible avec l&lt;em&gt;'hibernation&lt;/em&gt;...). En effet, dans ce dernier cas, après chaque boot le contenu précédent du swap est &lt;em&gt;irrémédiablement perdu pour tout le monde&lt;/em&gt;, tandis que dans le cas du &lt;em&gt;swap&lt;/em&gt; en LVM chiffrée, celui qui obtiendrait par force ou par ruse la clé de déchiffrement de la LVM pourrait alors aller farfouiller également dans les anciens contenus du swap.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Résolution de problèmes&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Si vous avez une machine qui vous dit &lt;q&gt;&lt;em&gt;swsusp: Not enough free memory&lt;/em&gt;&lt;/q&gt; quand vous tentez de l&lt;em&gt;'hiberner&lt;/em&gt;, puis se &lt;em&gt;réveille&lt;/em&gt; aussitôt, essayez :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;echo 2048248 &amp;gt; /sys/power/image_size&lt;/pre&gt;


&lt;p&gt;...et recommencez.&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#pnote-1509-8&quot; id=&quot;rev-pnote-1509-8&quot;&gt;8&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si vous trouvez que votre machine est bien trop longue à &lt;em&gt;hiberner&lt;/em&gt; et à se &lt;em&gt;réveiller&lt;/em&gt;, essayez :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;echo 0 &amp;gt; /sys/power/image_size&lt;/pre&gt;


&lt;p&gt;...vous obtiendrez en contrepartie une machine qui hibernera plus vite mais sera plus lente pendant un temps après s'être réveillée.&lt;/p&gt;


&lt;p&gt;Une fois que vous avez trouvé la commande qui vous convient, ajoutez-la une fois pour toutes dans &lt;code&gt;/etc/rc.local&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Pour plus d'infos à ce sujet, installer le package &lt;code&gt;linux-doc-2.6.24&lt;/code&gt; et lire le document &lt;code&gt;/usr/share/doc/linux-doc-2.6.24/Documentation/power/swsusp.txt.gz&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Voilà, on dira que ça sera tout pour cette fois ;-)&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#rev-pnote-1509-1&quot; id=&quot;pnote-1509-1&quot;&gt;1&lt;/a&gt;] Affichage, carte vidéo, carte réseau, modem, disques, contrôleurs de disque, contrôleurs USB, etc...&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#rev-pnote-1509-2&quot; id=&quot;pnote-1509-2&quot;&gt;2&lt;/a&gt;] Pour plus d'infos sur l'hibernation, installer le package &lt;code&gt;linux-doc-2.6.24&lt;/code&gt; et lire les documents &lt;code&gt;/usr/share/doc/linux-doc-2.6.24/Documentation/power/swsusp*&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#rev-pnote-1509-3&quot; id=&quot;pnote-1509-3&quot;&gt;3&lt;/a&gt;] En particulier certains périphériques qui utiliseraient des pilotes &lt;em&gt;Windows&lt;/em&gt; via &lt;em&gt;ndiswrapper&lt;/em&gt; risquent de ne pas aimer...&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#rev-pnote-1509-4&quot; id=&quot;pnote-1509-4&quot;&gt;4&lt;/a&gt;] Jetez donc un coup d'oeil au contenu des répertoires &lt;code&gt;/etc/acpi/suspend.d&lt;/code&gt; et &lt;code&gt;/etc/acpi/resume.d&lt;/code&gt;...&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#rev-pnote-1509-5&quot; id=&quot;pnote-1509-5&quot;&gt;5&lt;/a&gt;] Avec certains portables, cela peut se produire si on appuie fort sur le &amp;quot;couvercle&amp;quot;, même fermé...&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#rev-pnote-1509-6&quot; id=&quot;pnote-1509-6&quot;&gt;6&lt;/a&gt;] Pour plus d'infos sur &amp;quot;&lt;em&gt;usb persist&lt;/em&gt;&amp;quot;, installer le package &lt;code&gt;linux-doc-2.6.24&lt;/code&gt; et lire le document &lt;code&gt;/usr/share/doc/linux-doc-2.6.24/Documentation/usb/persist.txt.gz&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#rev-pnote-1509-7&quot; id=&quot;pnote-1509-7&quot;&gt;7&lt;/a&gt;] Le lecteur de carte mémoire de l&lt;em&gt;'Asus EePC&lt;/em&gt; a en interne une interface USB...&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/28/#rev-pnote-1509-8&quot; id=&quot;pnote-1509-8&quot;&gt;8&lt;/a&gt;] Sur l'un de mes portables, j'utilise la valeur &lt;code&gt;268435456&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/05/28/Hibernatus#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/05/28/Hibernatus#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1509</wfw:commentRss>
      </item>
    
  <item>
    <title>Retailler à la volée une LVM chiffrée LUKS</title>
    <link>http://petaramesh.org/post/2008/05/27/Retailler-a-la-volee-une-LVM-chiffree-LUKS</link>
    <guid isPermaLink="false">urn:md5:5970b09cf694bf4e4204d39b35039b6e</guid>
    <pubDate>Tue, 27 May 2008 11:58:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;(&lt;em&gt;English abstract at end.&lt;/em&gt;)&lt;/p&gt;


&lt;p&gt;Et encore un article en &lt;em&gt;bas moldave&lt;/em&gt; qui s'annonce ;-)&lt;/p&gt;


&lt;p&gt;J'explique ci-dessous comment il est possible d'agrandir à la volée une LVM chiffrée LUKS sur laquelle est installé tout un système GNU/Linux chiffré (ici une &lt;em&gt;&lt;a href=&quot;http://ubuntu-fr.org/&quot; hreflang=&quot;fr&quot;&gt;Ubuntu&lt;/a&gt; 8.04 Hardy&lt;/em&gt;).&lt;/p&gt;


&lt;p&gt;Si cela vous parle autant que l'élevage du Yaka-Faucon en Patagonie septentrionale, passez votre chemin ;-)&lt;/p&gt;    &lt;p&gt;Ma problématique pour cette manip' était la suivante : un ordinateur portable entièrement chiffré (sauf /boot) dont le disque dur était partitionné de la manière suivante :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;sda1: &lt;code&gt;/boot&lt;/code&gt; (non chiffré)&lt;/li&gt;
&lt;li&gt;sda2: LVM chiffrée contenant le &lt;em&gt;root filesystem&lt;/em&gt; et la quasi-totalité des volumes logiques usuels (&lt;code&gt;/var&lt;/code&gt;, &lt;code&gt;/home&lt;/code&gt;...)&lt;/li&gt;
&lt;li&gt;sda3: un &lt;code&gt;/tmp&lt;/code&gt; chiffré utilisant une clé aléatoire générée au boot.&lt;/li&gt;
&lt;li&gt;sda4: un &lt;code&gt;swap&lt;/code&gt; chiffré utilisant une clé aléatoire générée au boot.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;L'objectif de la manip était d'&amp;quot;incorporer&amp;quot; le &lt;code&gt;/tmp&lt;/code&gt; et le &lt;em&gt;swap&lt;/em&gt; à l'intérieur de la LVM chiffrée principale et non plus à l'extérieur de celle-ci, de manière à pouvoir utiliser la fonction &amp;quot;&lt;em&gt;hibernation sur disque&lt;/em&gt;&amp;quot; de la machine, qui nécessite en pratique que le déchiffrement du &lt;em&gt;root filesystem&lt;/em&gt; au boot permette également l'accès au &lt;em&gt;swap&lt;/em&gt; sur lequel est stocké le fichier de reprise, le plus simple étant alors de mettre le swap dans la même LVM chiffrée que le reste des partitions.&lt;/p&gt;


&lt;p&gt;La même manip pourrait être utilisée à d'autres fins, par exemple augmenter l'espace disque utilisable après avoir recopié l'ensemble d'un système chiffré sur un disque neuf plus gros.&lt;/p&gt;


&lt;p&gt;Pour que ça soit plus drôle, nous allons faire ça en &lt;em&gt;live&lt;/em&gt;, sur le système tournant et bien chaud, et sans recourir au boot sur un CD-Rom.&lt;/p&gt;


&lt;p&gt;Cet article est en partie inspiré de l'article de &lt;em&gt;Bodhi.Zazen&lt;/em&gt; : &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://ubuntuforums.org/showthread.php?p=4530641&quot; hreflang=&quot;en&quot;&gt;How to Resize a LUKS Encrypted File System.&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Avertissement : Ce type de manipulation est susceptible de provoquer la perte irréparable de l'ensemble des données présentes sur votre disque, si vous faites la moindre erreur durant les opérations, ou si j'ai fait la moindre erreur en les décrivant ! Faites une copie de sauvegarde de l'ensemble de votre système, vous êtes seul(e) responsable des dégâts que vous vous apprêtez à causer, même si une erreur s'est glissée dans mon article et si c'est moi qui vous ai foutu dedans. À vos risques et périls ! ;-)&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Dans mon cas particulier, je vais donc commencer par supprimer les partitions sda3 et sda4, dont le contenu sera perdu durant l'opération, mais cela est sans importance s'agissant d'un &lt;code&gt;/tmp&lt;/code&gt; et d'un &lt;em&gt;swap&lt;/em&gt;, puis je vais étendre la partition sda2 sur laquelle réside la LVM chiffrée afin de récupérer dedans l'espace laissé libre par les partitions supprimées, puis j'agrandirai le container chiffré qui occupe cette partition, puis j'agrandirai le volume physique de LVM qui est dedans, ce qui ajoutera à la LVM chiffrée l'espace ainsi récupéré, permettant alors d'y créer de nouveaux &lt;em&gt;volumes logiques&lt;/em&gt;, ou d'étendre les volumes logiques existants.&lt;/p&gt;


&lt;p&gt;Dans le cas général, on considèrera que nous disposerons d'une manière ou d'une autre d'espace disque libre immédiatement après la partition contenant la LVM chiffrée à étendre.&lt;/p&gt;


&lt;p&gt;Dans mon cas particulier, il me faut commencer par désactiver le swap (&lt;code&gt;swapoff -a&lt;/code&gt;) dont je vais supprimer la partition, démonter le &lt;code&gt;/tmp&lt;/code&gt;, et le démontage du &lt;code&gt;/tmp&lt;/code&gt; nécessite de fermer toute session graphique X (KDE ou Gnome) et d'arrêter le gestionnaire de session graphique (&lt;code&gt;invoke-rc.d kdm stop&lt;/code&gt; ou &lt;code&gt;invoke-rc.d gdm stop&lt;/code&gt; selon le cas), ce qui me fera donc travailler en mode console texte. Il me faudra ensuite désactiver les volumes chiffrés correspondants avant de pouvoir en supprimer les partitions.&lt;br /&gt;
Dans le cas général, si vous n'avez pas besoin de démonter une partition nécessaire, vous pouvez travailler dans un terminal depuis une session graphique.&lt;/p&gt;


&lt;h4&gt;Retaillage des partitions&lt;/h4&gt;


&lt;p&gt;Commençons donc par décrire l'étape de suppression des partitions inutiles, et de redimensionnement de la partition à agrandir.&lt;/p&gt;


&lt;p&gt;Nous allons pour cela utiliser le bon vieux &lt;code&gt;fdisk&lt;/code&gt; en console, et non pas un outil graphique, car seul &lt;code&gt;fdisk&lt;/code&gt; nous permettra de &lt;em&gt;supprimer&lt;/em&gt; notre partition essentielle (celle de la LVM chiffrée) et de la recréer exactement au même endroit, mais plus grande.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Lançons donc: &lt;code&gt;fdisk /dev/sda&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La première chose à faire est d'afficher la table de partitions actuelle en utilisant la commande &amp;quot;p&amp;quot;, et de noter absolument tous les jolis chiffres qui apparaîssent alors, de manière à pouvoir remettre manuellement les choses en l'état en cas de problème.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Puis nous utiliserons la commande &amp;quot;d&amp;quot; de &lt;em&gt;fdisk&lt;/em&gt; afin de détruire sans regret les partitions &amp;quot;4&amp;quot; et &amp;quot;3&amp;quot; dont nous n'avons plus besoin.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Puis nous arrivons à l'étape &lt;em&gt;&lt;strong&gt;vraiment terrifiante&lt;/strong&gt;&lt;/em&gt; de la manoeuvre, qui consiste à &lt;em&gt;supprimer&lt;/em&gt; la partition &lt;em&gt;sda2&lt;/em&gt;, c'est-à-dire celle de notre LVM chiffrée, ce qui revient très exactement à scier la branche sur laquelle notre système est assis. Supprimons donc courageusement la partition &amp;quot;2&amp;quot; à l'aide de la commande &amp;quot;d&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Pas de panique toutefois, les modifications ne seront &lt;em&gt;réellement&lt;/em&gt; apportées sur le disque qu'au moment où nous exécuterons la commande &amp;quot;w&amp;quot; finale, et nous aurons recréé la partition vitale d'ici-là, mais en plus grand. D'autre part, la modification de la table de partitions sera alors écrite sur le &lt;em&gt;disque dur&lt;/em&gt; lui-même, mais le noyau Linux n'en tiendra aucun compte puisqu'il est incapable de relire la table de partitions d'un disque ayant des partitions &lt;em&gt;montées&lt;/em&gt;. Il faudra donc rebooter le système pour que le changement de taille de la partition concernée soit pris en compte.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Après avoir supprimé la partition &amp;quot;2&amp;quot;, nous la recréons maintenant aussitôt, comme partition primaire, en utilisant la commande &amp;quot;n&amp;quot;. Nous veillerons alors à ce que la &amp;quot;nouvelle partition 2&amp;quot; commence à l'endroit exact du disque (numéro de cylindre) où elle commençait précédemment, et nous la laisserons s'étendre jusqu'à la fin du disque, utilisant ainsi tout l'espace disponible.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Après avoir recréé la partition, utilisons la commande &amp;quot;p&amp;quot; pour afficher la nouvelle table de partitions, et vérifions soigneusement à l'aide de nos notes qu'elle commence effectivement exactement au même endroit que précédemment.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Si c'est bien le cas, nous pouvons alors écrire nos modifications de manière définitive avec la commande &amp;quot;w&amp;quot;, qui nous fera également quitter &lt;em&gt;fdisk&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nous allons maintenant devoir &lt;em&gt;rebooter le système&lt;/em&gt; pour que la nouvelle table de partitions soit prise en compte. Toutefois, si nous avons (dans mon cas particulier) supprimé des partitions qui servaient antérieurement, nous devons en faire disparaître toute trace dans &lt;code&gt;/etc/fstab&lt;/code&gt; et &lt;code&gt;/etc/crypttab&lt;/code&gt;, puis régénérer notre initramfs (&lt;code&gt;update-initramfs -u&lt;/code&gt;) pour éviter de cruelles erreurs lors du reboot.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Rebootons donc bien proprement le système.&lt;/strong&gt; Ceci devrait se dérouler sans erreur.&lt;/p&gt;


&lt;h4&gt;Extension du volume LUKS chiffré&lt;/h4&gt;


&lt;p&gt;Après avoir rebooté, il nous faut théoriquement agrandir le volume chiffré supportant notre LVM. Je dis &lt;em&gt;théoriquement&lt;/em&gt; car mes observations semblent démontrer que le volume chiffré utilise automatiquement la nouvelle taille entière de la partition, mais comme je n'en suis pas absolument certain, le redimensionner &lt;em&gt;quand même&lt;/em&gt; ne fera pas de mal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Affichons tout d'abord la taille actuelle de notre container de LVM chiffrée, supposant qu'il s'appelle &amp;quot;encVG&amp;quot; par exemple :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;# cryptsetup status encVG
/dev/mapper/encVG is active:
 cipher:  aes-cbc-essiv:sha256
 keysize: 192 bits
 device:  /dev/sda2
 offset:  1032 sectors
 size:    312061593 sectors
 mode:    read/write&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&amp;quot;Agrandissons&amp;quot; (en théorie) maintenant le container :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;cryptsetup resize encVG&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Affichons de nouveau sa taille (&lt;code&gt;cryptsetup status encVG&lt;/code&gt;) : Surprise : il semble que rien n'a changé, et que notre manip n'a donc servi à rien ? Ce n'est pas grave : nous utilisons désormais bel et bien la totalité de l'espace attribué à la partition sda2.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Agrandissement du volume physique de la LVM&lt;/h4&gt;


&lt;p&gt;C'est là que nous allons nous apercevoir que la manip' a marché !&lt;/p&gt;


&lt;pre&gt;# pvs
 PV                       VG   Fmt  Attr PSize   PFree
 /dev/mapper/encVG VG1 lvm2 a-   144.80G    0&lt;/pre&gt;


&lt;pre&gt;pvresize /dev/mapper/encVG&lt;/pre&gt;


&lt;pre&gt;# pvs
 PV                       VG   Fmt  Attr PSize   PFree
 /dev/mapper/encVG VG1 lvm2 a-   148.80G    4.0G&lt;/pre&gt;


&lt;p&gt;Eh oui ! le &amp;quot;&lt;code&gt;pvresize&lt;/code&gt;&amp;quot; nous a bien fait gagner 4 Go d'espace libre dans la LVM chiffrée !&lt;/p&gt;


&lt;h4&gt;Création des nouveaux volumes logiques&lt;/h4&gt;


&lt;p&gt;Nous pouvons maintenant créer (&lt;code&gt;lvcreate&lt;/code&gt;) un ou plusieurs nouveaux volumes logiques dans l'espace désormais disponible sur la LVM.  Dans mon cas, j'en recréerai deux, pour le &lt;code&gt;/tmp&lt;/code&gt; et pour le &lt;em&gt;swap&lt;/em&gt; bien sûr.&lt;/p&gt;


&lt;p&gt;Si vous souhaitez utiliser ce nouvel espace non pas pour créer de nouveaux volumes logiques, mais pour agrandir un volume déjà existant (&lt;code&gt;lvextend&lt;/code&gt;), je vous conseille toutefois de commencer par créer un nouveau volume logique, que vous supprimerez ensuite, mais entre-temps vous l'aurez rempli de données aléatoires, ce qui est toujours conseillé avant de commencer à utiliser un volume chiffré.&lt;/p&gt;


&lt;h4&gt;Remplissage des nouveaux volumes logiques avec des données aléatoires&lt;/h4&gt;


&lt;p&gt;Par exemple :&lt;/p&gt;


&lt;pre&gt;dd if=/dev/urandom of=/dev/mapper/VG1-newvolume bs=1M&lt;/pre&gt;


&lt;p&gt;(Si vous voulez accélérer cette étape, vous pouvez utiliser &lt;code&gt;/dev/zero&lt;/code&gt; à la place de &lt;code&gt;/dev/urandom&lt;/code&gt;, puisque, s'agissant d'un volume chiffré, le chiffrement donnera de toute manière un &lt;em&gt;aspect&lt;/em&gt; parfaitement aléatoire aux données qui seront physiquement écrites sur le disque (les zéros seront transformés en &lt;em&gt;random&lt;/em&gt; apparent).&lt;/p&gt;


&lt;h4&gt;Formatage des nouveaux volumes logiques&lt;/h4&gt;


&lt;p&gt;Nous n'avons plus désormais qu'à formater les nouveaux volumes logiques en fonction de leur utilisation projetée : &lt;code&gt;mke2fs&lt;/code&gt;, &lt;code&gt;mkswap&lt;/code&gt;, etc... ou, pour l'extension d'un volume existant, &lt;code&gt;lvextend&lt;/code&gt; puis &lt;code&gt;resize2fs&lt;/code&gt;&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/27/#pnote-1506-1&quot; id=&quot;rev-pnote-1506-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; par exemple.&lt;/p&gt;


&lt;h4&gt;Mise à jour de fstab&lt;/h4&gt;


&lt;p&gt;Enfin, nous pouvons monter nos nouveaux volumes, sans oublier bien sûr de les mentionner dans &lt;code&gt;/etc/fstab&lt;/code&gt; - il n'y a rien à ajouter dans &lt;code&gt;/etc/crypttab&lt;/code&gt; puisque l'entrée servant à déverrouiller globalement la LVM chiffrée y figure déjà.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;That's all, folks !&lt;/em&gt;&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;English abstract :&lt;/strong&gt;&lt;/em&gt; This article explains how to expand a LUKS-encryped LVM on which resides a fully encrypted GNU/Linux System, including its root filesystem. This can be done on the &amp;quot;&lt;em&gt;live&lt;/em&gt;&amp;quot; system without needing to boot from a &lt;em&gt;live CD&lt;/em&gt; or the like. Use an online translator such as &lt;em&gt;Google translate&lt;/em&gt; or &lt;em&gt;babelfish&lt;/em&gt; to obtain a truly bad, automated translation of this document ;-)&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;Help Google :&lt;/em&gt; resize enlarge expand LUKS encrypted partition LVM container on the fly&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/27/#rev-pnote-1506-1&quot; id=&quot;pnote-1506-1&quot;&gt;1&lt;/a&gt;] À effectuer sur un volume préalablement &lt;em&gt;démonté&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/05/27/Retailler-a-la-volee-une-LVM-chiffree-LUKS#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/05/27/Retailler-a-la-volee-une-LVM-chiffree-LUKS#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1506</wfw:commentRss>
      </item>
    
  <item>
    <title>C'est toujours les meilleurs qui s'en vont...</title>
    <link>http://petaramesh.org/post/2008/05/13/Cest-toujours-les-meilleurs-qui-sen-vont</link>
    <guid isPermaLink="false">urn:md5:bd789c25e86440eaff51697f33e4d89c</guid>
    <pubDate>Tue, 13 May 2008 00:04:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Miscellania</category>
        <category>geekerie</category><category>informatique</category><category>OReillly</category>    
    <description>    &lt;p&gt;Triste nouvelle : Les éditions &lt;a href=&quot;http://oreilly.fr/&quot; hreflang=&quot;fr&quot;&gt;O'Reilly France&lt;/a&gt; ont mis &lt;a href=&quot;http://immateriel.wordpress.com/2008/05/09/oreilly_france_c_est_deja_du_passe/&quot; hreflang=&quot;fr&quot;&gt;la clé sous le paillasson&lt;/a&gt;...&lt;/p&gt;


&lt;p&gt;&amp;lt;&lt;code&gt;deuil&lt;/code&gt;&amp;gt; Sniff... Les seuls bouquins d'informatique lisibles, bien écrits, et parlant de Logiciels Libres, bouhouhou &amp;lt;&lt;code&gt;/deuil&lt;/code&gt;&amp;gt;&lt;/p&gt;


&lt;p&gt;Les merdes infâmes écrites avec les pieds en paraphrasant la doc avec des erreurs dedans demeurent...&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/05/13/Cest-toujours-les-meilleurs-qui-sen-vont#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/05/13/Cest-toujours-les-meilleurs-qui-sen-vont#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1494</wfw:commentRss>
      </item>
    
  <item>
    <title>Une clé de contact pour votre portable chiffré : Mise à jour</title>
    <link>http://petaramesh.org/post/2008/05/11/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Mise-a-jour</link>
    <guid isPermaLink="false">urn:md5:59c965653ea4c66502aeb252b7365103</guid>
    <pubDate>Sun, 11 May 2008 09:46:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>authentification</category><category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>    &lt;p&gt;Ce billet est là uniquement pour signaler une importante mise à jour de mon précédent billet &lt;q&gt;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre&quot; hreflang=&quot;fr&quot;&gt;Une clé de contact pour votre portable chiffré&lt;/a&gt;&lt;/em&gt;&lt;/q&gt; et du script &lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/11/#pnote-1492-1&quot; id=&quot;rev-pnote-1492-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; qu'il propose.&lt;/p&gt;


&lt;p&gt;En effet, ce script s'est avéré dans sa version précédente pouvoir &lt;em&gt;très mal&lt;/em&gt; fonctionner avec une clé non chiffrée sur une clé USB formatée en FAT. Le voici maintenant &lt;em&gt;bien&lt;/em&gt; débuggé, partiellement réécrit et enrichi, ainsi que les explications qui vont avec.&lt;/p&gt;


&lt;p&gt;Que demande le peuple ? ;-)&lt;/p&gt;


&lt;h4&gt;Instructions de mise-à-jour :&lt;/h4&gt;


&lt;p&gt;Si vous utilisiez la précédente version de mon script &lt;em&gt;bootkeyscript&lt;/em&gt;, il vous suffit d'installer la nouvelle à la place de la précédente (typiquement dans &lt;code&gt;/usr/local/sbin&lt;/code&gt;) et de régénérer votre &lt;em&gt;initramfs&lt;/em&gt; avec &amp;quot;&lt;code&gt;update-initramfs -u&lt;/code&gt;&amp;quot;. C'est tout.&lt;/p&gt;


&lt;p&gt;Bon c'est pas tout ça, faut qu'on va aller pique-niquer ;-))&lt;/p&gt;


&lt;p&gt;(&lt;em&gt;Rectificatif :&lt;/em&gt; Ah non, tiens, le programme de la journée a l'air plutôt réglé sur &amp;quot;&lt;em&gt;Monstre engueulade familiale et hurlements uxoriens&lt;/em&gt;&amp;quot;... Soyons zen...)&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/05/11/#rev-pnote-1492-1&quot; id=&quot;pnote-1492-1&quot;&gt;1&lt;/a&gt;] (&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript.asc&quot;&gt;Signature GnuPG&lt;/a&gt;, &lt;a href=&quot;http://petaramesh.org/public/arc/projects/lfd/gpl_v3.txt&quot;&gt;licence GPL&lt;/a&gt;)&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/05/11/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Mise-a-jour#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/05/11/Une-cle-de-contact-pour-votre-portable-chiffre-%3A-Mise-a-jour#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1492</wfw:commentRss>
      </item>
    
  <item>
    <title>Mise à jour (K)Ubuntu 7.10 Gutsy =&gt; 8.04 Hardy LTS</title>
    <link>http://petaramesh.org/post/2008/04/30/Mise-a-jour-KUbuntu-710-Gutsy-804-Hardy-LTS</link>
    <guid isPermaLink="false">urn:md5:a4330479ca3344c94de872ca9e0edefe</guid>
    <pubDate>Wed, 30 Apr 2008 15:20:00 +0200</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;Plusieurs estimés disciples m'ont demandé par mail quelques infos ou conseils pour la mise à jour de leur machine vers la toute nouvelle (&lt;a href=&quot;http://kubuntu.org/&quot; hreflang=&quot;en&quot;&gt;K&lt;/a&gt;) &lt;a href=&quot;http://ubuntu-fr.org/&quot; hreflang=&quot;fr&quot;&gt;Ubuntu 8.04 Hardy&lt;/a&gt; &lt;acronym title=&quot;Long Term Support&quot;&gt;LTS&lt;/acronym&gt;.&lt;/p&gt;


&lt;p&gt;Je n'avais pas encore fait cette mise à jour ; je viens de la faire sur deux machines : Au rapport !&lt;/p&gt;    &lt;p&gt;Je viens donc de mettre à jour deux &lt;a href=&quot;http://kubuntu.org/&quot; hreflang=&quot;en&quot;&gt;Kubuntu&lt;/a&gt; 7.10 vers 8.04, et la bonne nouvelle c'est que ça s'est plutôt très bien passé, comme une lettre à la poste, en utilisant l&lt;em&gt;'updateur&lt;/em&gt; de &lt;a href=&quot;http://kubuntu.org/&quot; hreflang=&quot;en&quot;&gt;Kubuntu&lt;/a&gt; et sans rien faire de particulier.&lt;/p&gt;


&lt;p&gt;Si ça c'est bien passé avec &lt;a href=&quot;http://kubuntu.org/&quot; hreflang=&quot;en&quot;&gt;Kubuntu&lt;/a&gt;, je m'attends à ce que ça se passe encore plus facilement (si toutefois c'est possible) avec &lt;a href=&quot;http://petaramesh.org/post/2008/04/30/&quot; title=&quot;fr&quot;&gt;Ubuntu&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Les deux machines que j'ai mises à jour étaient une station de travail (Bipro Intel Xeon, système installé sur LVM) et mon bon vieux portable (système entièrement installé sur LVM chiffrée). Ce ne sont donc pas les configs les plus simples qui soient, et ça fait un bon test de mise à jour.&lt;/p&gt;


&lt;p&gt;Première note : Ces jours-ci, les miroirs primaires FTP Ubuntu sont totalement saturés. On comprend pourquoi. Je vous conseille donc très fort de sélectionner comme source de paquetages des miroirs alternatifs &lt;em&gt;avant&lt;/em&gt; de lancer la mise à jour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mise à jour de mon portable en utilisant les miroirs de &lt;em&gt;free.fr&lt;/em&gt; : 2 heures.&lt;/li&gt;
&lt;li&gt;Mise à jour de l'autre station en utillisant le miroir &amp;quot;primaire France&amp;quot; : Plus de 24 heures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Qu'on se le dise ;-)&lt;/p&gt;


&lt;p&gt;Après mise à jour, tout fonctionne impec sur les deux machines, y compris le Wi-Fi de mon portable qui utilise pourtant &lt;em&gt;ndiswrapper&lt;/em&gt;, typiquement le truc qui se casse à la mise à jour, ben là, même pas.&lt;/p&gt;


&lt;p&gt;Je note &lt;em&gt;un&lt;/em&gt; problème après cette mise à jour : Mon portable a une carte graphique ATI&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/04/30/#pnote-1478-1&quot; id=&quot;rev-pnote-1478-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; et j'utilisais le pilote propriétaire &lt;em&gt;fglrx&lt;/em&gt;. Là, j'ai vu une belle marche arrière :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Avec Ubuntu 7.04 : Tout marchait parfaitement&lt;/li&gt;
&lt;li&gt;Avec Ubuntu 7.10 : Impossible d'utiliser la &amp;quot;suspension&amp;quot; ou &amp;quot;l'hibernation&amp;quot; du portable. le pilote &lt;em&gt;fglrx&lt;/em&gt; coince.&lt;/li&gt;
&lt;li&gt;Avec Ubuntu 8.04 : Impossible de sortir de l'environnement graphique. Plantage systématique en quittant ou fermant la session (écran noir, plus rien ne répond, il est cependant possible de débloquer la machine en utilisant la &lt;em&gt;MagicSysRq&lt;/em&gt; key &amp;quot;&lt;code&gt;E&lt;/code&gt;&amp;quot;, qui tue tous les processus et permet alors de réobtenir la console et de voir ensuite la machine s'arrêter normalement).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour cette raison, je viens (pour le moment) d'abandonner l'usage du pilote propriétaire &lt;em&gt;fglrx&lt;/em&gt; pour le pilote ATI générique libre, abandonnant au passage l'utilisation de l'accélération 3D matérielle de ma carte graphique (dont je n'ai cependant que faire 98% du temps) et divisant par 2 les performances OpenGL. Bon.&lt;/p&gt;


&lt;p&gt;Je ne peux cependant pas en vouloir à Ubuntu, car il semble que c'est ATI qui rame très loin derrière les versions de noyau et de &lt;em&gt;xorg&lt;/em&gt; dans le développement de son pilote propriétaire... Espérons (voeu pieux) qu'ATI va se décider à pondre une &lt;em&gt;mise à jour qui marche&lt;/em&gt; pour son pilote. Ils commencent à me flégon... :-/&lt;/p&gt;


&lt;p&gt;Si vous avez une carte ATI utilisant &lt;em&gt;fglrx&lt;/em&gt;, je vous suggère de le désactiver (repasser au pilote ordinaire) et de  rebooter ensuite votre machine &lt;em&gt;avant&lt;/em&gt; de lancer la mise-à-jour vers &lt;em&gt;Hardy&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Pour le reste, RÀS, alors si vous vous sentez l'âme aventureuse, vous pouvez tenter le coup - sachant bien que si vous cassez votre bécane, ce ne sera pas ma faute ;-)&lt;/p&gt;


&lt;hr /&gt;


&lt;p&gt;&lt;em&gt;&lt;strong&gt;Addendum 2 mai 2008 10:36 :&lt;/strong&gt;&lt;/em&gt; Mon problème de blocage à la fermeture de session avec le pilote &lt;em&gt;fglrx&lt;/em&gt; a été résolu &lt;a href=&quot;http://tsdgeos.blogspot.com/2008/04/fglrx-blocking-xorg-on-logout.html&quot; hreflang=&quot;en&quot;&gt;comme décrit ici&lt;/a&gt;, merci à Olivier Lacroix pour &lt;a href=&quot;https://answers.launchpad.net/ubuntu/+question/31480&quot; hreflang=&quot;en&quot;&gt;le tuyau&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Solution reçue moins de 24h après avoir posé la question. Décidément, le support de la communauté dans le Logiciel Libre, c'est vraiment que du bonheur ! Ramez une fois dans votre vie avec un problème similaire sous Windows, vous comprendrez la différence... (Typiquement, vous n'aurez la solution qu'en attendant 2 ans une hypothétique corrective, ou à défaut le jour où vous changerez de matériel...)&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/04/30/#rev-pnote-1478-1&quot; id=&quot;pnote-1478-1&quot;&gt;1&lt;/a&gt;] J'en vois déjà des qui rigolent...&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/04/30/Mise-a-jour-KUbuntu-710-Gutsy-804-Hardy-LTS#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/04/30/Mise-a-jour-KUbuntu-710-Gutsy-804-Hardy-LTS#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1478</wfw:commentRss>
      </item>
    
  <item>
    <title>Error ? Success !</title>
    <link>http://petaramesh.org/post/2008/02/08/Error-Success</link>
    <guid isPermaLink="false">urn:md5:c151e56b7ec90a0194c0c5181c17d94f</guid>
    <pubDate>Fri, 08 Feb 2008 17:02:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>geekerie</category><category>informatique</category>    
    <description>    &lt;p&gt;Heureusement que c'est vendredi, y'a des jours où l'on ne peut même plus prétendre que ce genre de chose n'arrive &lt;em&gt;que sous Windows&lt;/em&gt;...&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://petaramesh.org/public/arc/img/info/2008/errorsuccess.jpg&quot; alt=&quot;Error : Success&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://partimage.org/&quot; hreflang=&quot;fr&quot;&gt;partimage&lt;/a&gt;&lt;/em&gt; est certes bien utile, mais cette cochonnerie est bugguée de sa mère, et pas maintenue. S'en servir consiste essentiellement à ruser pour passer entre les bugs :~\&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/02/08/Error-Success#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/02/08/Error-Success#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1351</wfw:commentRss>
      </item>
    
  <item>
    <title>Cartes Flash &quot;SD&quot; et portables Ubuntu Linux</title>
    <link>http://petaramesh.org/post/2008/01/28/Cartes-Flash-SD-et-portables-Ubuntu-Linux</link>
    <guid isPermaLink="false">urn:md5:d842b06ba7dcc01768fa61ec48e3ae77</guid>
    <pubDate>Mon, 28 Jan 2008 14:26:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>geekerie</category><category>informatique</category><category>Linux</category><category>matos</category>    
    <description>    &lt;p&gt;Ce n'est pas histoire de faire de la pub' (sinon, j'accepte volontiers que &lt;em&gt;Sandisk&lt;/em&gt; m'en envoie deux caisses ;-) mais après avoir pas mal galéré, j'ai pensé que l'info pourrait être utile à d'autres que moi...&lt;/p&gt;


&lt;p&gt;Sur deux portables tournant sous &lt;em&gt;Ubuntu Gutsy&lt;/em&gt; et possédant un lecteur de cartes SD/MMC :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Un &lt;em&gt;Acer Aspire 3104 WLMi&lt;/em&gt; avec lecteur SD/MMC interne &amp;quot;&lt;em&gt;ENE&lt;/em&gt;&amp;quot;&lt;/li&gt;
&lt;li&gt;Un &lt;em&gt;Asus EeePC&lt;/em&gt; avec lecteur interne SD/MMC vu en USB 2.0, s'identifant comme &amp;quot;&lt;em&gt;Kingston technologies&lt;/em&gt;&amp;quot; mais laissant également à penser qu'il est fabriqué par &amp;quot;&lt;em&gt;ENE&lt;/em&gt;&amp;quot;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je constate que :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Les cartes Flash SD de marque / type &lt;em&gt;&lt;strong&gt;Sandisk Ultra II&lt;/strong&gt;&lt;/em&gt;, de capacité de 1 Go ou 2 Go, fonctionnent à la perfection, plein pot et sans la moindre erreur.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;ins&gt;Toutes&lt;/ins&gt;&lt;/strong&gt; les autres cartes SD que j'ai essayées (5 ou 6 de marques et capacités différentes) merdoient lamentablement. Dans le meilleur des cas des gerbes d'erreurs de de retries dans &lt;code&gt;/var/log/kern.log&lt;/code&gt; causant de considérables ralentissements, et dans l'écrasante majorité des cas, ça finit par foirer complètement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Donc, sur ces machines et avec Linux, je ne me pose plus de questions oiseuses quant au type de cartes que j'achèterai à l'avenir.&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/01/28/Cartes-Flash-SD-et-portables-Ubuntu-Linux#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/01/28/Cartes-Flash-SD-et-portables-Ubuntu-Linux#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1320</wfw:commentRss>
      </item>
    
  <item>
    <title>gOS ?</title>
    <link>http://petaramesh.org/post/2008/01/27/gOS</link>
    <guid isPermaLink="false">urn:md5:aadfcdfbf6eb8bb0d98e8bb3d8e6f070</guid>
    <pubDate>Sun, 27 Jan 2008 00:38:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>geekerie</category><category>informatique</category><category>Linux</category>    
    <description>    &lt;p&gt;Quelqu'un a déjà essayé &lt;a href=&quot;http://blog.bretagne-balades.org/index.php/2008/01/09/1810-gos-20-rocket-disponible-en-telechargement&quot; hreflang=&quot;fr&quot;&gt;cet OVNI&lt;/a&gt; ?&lt;/p&gt;


&lt;p&gt;Chuis en train de donnelouder ça pour me faire une idée.&lt;/p&gt;


&lt;p&gt;La maison qui fait ça est &lt;a href=&quot;http://www.thinkgos.com/&quot; hreflang=&quot;en&quot;&gt;là&lt;/a&gt; et y'a tellement de &lt;em&gt;Gougoule inside&lt;/em&gt; qu'on peut se demander qui paie les factures et si ce ne serait pas le nouveau moyen de foutre &lt;em&gt;Petitmou&lt;/em&gt; dehors... Un moyen pas forcément idiot.&lt;/p&gt;


&lt;p&gt;Leur &lt;a href=&quot;http://www.thinkgos.com/company.html&quot; hreflang=&quot;en&quot;&gt;profession de foi&lt;/a&gt; est amusante :&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;We started in this business because we saw a big need for a good operating system (OS) company.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;We saw today’s world in a crisis with but a single, dominant OS that is expensive to license, demanding on hardware, and lacking in included software. We saw a need for changes, and formed gOS to help effect them. We believe there must be better ways of being an OS company, and we're commited to finding them with you.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;gOS is a new, friendly OS designed to just work out of the box with Google applications online. Also inside, all you need to browse the web, e-mail, chat, play music and movies, create and edit documents using Google and other free software. In addition, gOS performs well on almost any computer, costs nothing for users, and has a beautiful user interface.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;...Après, ils affirment qu'ils ont la ferme intention de gagner des sous.&lt;/p&gt;


&lt;p&gt;Et y'a un petit concurrent de l'EeePC, l&lt;em&gt;'&lt;a href=&quot;http://www.everex.com/&quot; hreflang=&quot;en&quot;&gt;Everex Cloudbook&lt;/a&gt;&lt;/em&gt;&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/01/27/#pnote-1318-1&quot; id=&quot;rev-pnote-1318-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; qui sort avec ça dans le coffre et &lt;em&gt;No Petitmou inside&lt;/em&gt;...&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2008/01/27/#rev-pnote-1318-1&quot; id=&quot;pnote-1318-1&quot;&gt;1&lt;/a&gt;] Un peu plus gros, beaucoup moins beau, avec un disque dur mécanique (donc bien plus gros), un processeur &lt;em&gt;Via&lt;/em&gt; nettement plus rapide, la même quantité de RAM et la même taille d'écran que l'EeePC.&lt;/p&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2008/01/27/gOS#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2008/01/27/gOS#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1318</wfw:commentRss>
      </item>
    
  <item>
    <title>Une clé de contact pour votre portable chiffré</title>
    <link>http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre</link>
    <guid isPermaLink="false">urn:md5:13f4af6a598b74d2ac08b3b032bc3848</guid>
    <pubDate>Thu, 29 Nov 2007 16:44:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>authentification</category><category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Article mis à jour le 11 mai 2008&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://petaramesh.org/public/arc/img/info/2007/SD_card.jpg&quot; alt=&quot;Carte flash SD&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;Dans &lt;a href=&quot;http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable&quot; hreflang=&quot;fr&quot;&gt;mon précédent article&lt;/a&gt;, je vous ai expliqué comment chiffrer intégralement le disque dur de votre portable sous Linux, rendant l'ensemble des données et programmes qu'il contient absolument indéchiffrables et inaccessibles pour qui ne connaît pas la phrase secrète nécessaire à son déchiffrement.&lt;/p&gt;


&lt;p&gt;Nous allons aujourd'hui nous intéresser à une autre méthode de démarrage d'un tel portable : Celle qui consiste à utiliser une clé de déchiffrement stockée sur un support externe, qui jouera alors le rôle de &amp;quot;&lt;em&gt;clé de contact&lt;/em&gt;&amp;quot; de la machine : Si ce support externe est inséré, le portable pourra démarrer ; s'il est absent, le portable sera inutilisable.&lt;/p&gt;


&lt;p&gt;Nous verrons qu'il est également possible d'utiliser ce qu'on appelle &amp;quot;&lt;em&gt;dual form authentication&lt;/em&gt;&amp;quot;, une authentification forte basée à la fois sur quelque chose que vous &lt;em&gt;avez&lt;/em&gt;, et quelque chose que vous &lt;em&gt;savez&lt;/em&gt; : Un support externe, que vous avez, plus un mot de passe nécessaire à son utilisation. Si l'un des deux manque, point d'accès. C'est d'ailleurs ce que vous faites, comme monsieur Jourdain, à chaque fois que vous payez avec une carte bancaire.&lt;/p&gt;    &lt;p&gt;&lt;em&gt;(Short english summary at end)&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;L'un des avantages à avoir &lt;a href=&quot;http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable&quot; hreflang=&quot;fr&quot;&gt;chiffré tout son disque avec LUKS&lt;/a&gt;, c'est que ce système permet de modifier après coup la ou les phrases secrètes ou clés qui le verrouillent. On peut donc assez aisément : &lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#pnote-1200-1&quot; id=&quot;rev-pnote-1200-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installer plusieurs phrases secrètes &lt;em&gt;différentes&lt;/em&gt; permettant de déverrouiller la machine, ce qui est utile si la machine a plusieurs utilisateurs légitimes : ainsi, aucun n'a besoin de connaître la phrase secrète de l'autre. Chacun la sienne !&lt;/li&gt;
&lt;li&gt;Ajouter une clé de déchiffrement qui ne sera pas une phrase secrète, mais un fichier hébergé sur un stockage externe (qui peut lui-même être chiffré, ce qui permet d'obtenir la &amp;quot;&lt;em&gt;dual form authentication&lt;/em&gt;&amp;quot;, ou authentification à double critère).&lt;/li&gt;
&lt;li&gt;Supprimer une phrase ou clé existante si l'on ne souhaite plus utiliser l'une des méthodes, si l'un des utilisateurs ne doit plus avoir accès à la machine ou si une phrase ou clé a été compromise, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La méthode hybride permet également de verrouiller le système avec une &lt;em&gt;phrase secrète&lt;/em&gt; longue et complexe - donc fastidieuse à taper - et alternativement avec un support externe contenant une clé qui peut être protégée par un mot de passe plus simple, voire pas de mot de passe du tout, en fonction des besoins de sécurité que l'on aura.&lt;/p&gt;


&lt;p&gt;En terme de &lt;em&gt;support externe&lt;/em&gt;, nous pourrons envisager l'usage d'une clé &amp;quot;&lt;em&gt;flash drive&lt;/em&gt;&amp;quot; USB,&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#pnote-1200-2&quot; id=&quot;rev-pnote-1200-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; ou d'une carte mémoire type SD, etc, pour peu que la machine considérée soit équipée d'un lecteur adéquat.&lt;/p&gt;


&lt;p&gt;En partant du principe que nous avons déjà un système entièrement chiffré sur la base de &lt;a href=&quot;http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable&quot; hreflang=&quot;fr&quot;&gt;mon précédent article&lt;/a&gt;, la mise en oeuvre d'une clé sur support externe - avec ou sans double authentification - va être relativement simple : Je fournis ici un &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot;&lt;sup&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#pnote-1200-3&quot; id=&quot;rev-pnote-1200-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; qui fait tout le boulot.&lt;/p&gt;


&lt;p&gt;En premier lieu, procurons-nous évidemment un support externe utilisable sur notre machine, et que nous utiliserons. Nous pouvons le partitionner et le formater de la manière de notre choix, le script &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot; détectera automatiquement le système de fichiers utilisé.&lt;/p&gt;


&lt;p&gt;Si nous voulons utiliser une clé &amp;quot;simple&amp;quot; sur support externe, non protégée elle-même par mot de passe, nous pouvons nous contenter de mettre celle-ci dans une partition FAT existante de n'importe quel support externe, que nous pourrons également utiliser &amp;quot;comme d'habitude&amp;quot; pour y stocker tous documents et fichiers de notre choix, en prenant simplement grand soin de ne jamais effacer par mégarde la clé de notre système !&lt;/p&gt;


&lt;p&gt;Si nous voulons chiffrer la clé elle-même, nous créerons sur le support externe une petite partition que nous chiffrerons avec &lt;em&gt;LUKS&lt;/em&gt; avant d'y créer un filesystem &lt;em&gt;ext2&lt;/em&gt; sur lequel nous stockerons enfin la clé.&lt;br /&gt;
Ceux qui ne désirent pas cette &amp;quot;double protection&amp;quot; peuvent sauter l'étape de création d'une partition chiffrée sur le support externe.&lt;/p&gt;


&lt;h3&gt;Création d'une partition chiffrée sur le support externe&lt;/h3&gt;


&lt;p&gt;Nous utiliserons donc un outil de partitionnement (&lt;em&gt;fdisk&lt;/em&gt;, &lt;em&gt;gparted&lt;/em&gt;, etc...) pour créer sur le support amovible une petite partition (typiquement 10 Mo) de type &amp;quot;&lt;em&gt;Linux&lt;/em&gt;&amp;quot; (83), non formatée. Pour la suite de cet article, nous considérerons la partition créée, et située sur &lt;code&gt;/dev/sdb2&lt;/code&gt;. &lt;strong&gt;Adaptez bien évidemment les instructions qui suivent à l'emplacement de votre propre partition, sur votre propre périphérique, au risque de détruire irrémédiablement des données sur votre système.&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Commençons par remplir notre partition de clés de données aléatoires, selon la méthode habituelle :&lt;/p&gt;


&lt;pre&gt;dd if=/dev/urandom of=/dev/sdb2 bs=1M&lt;/pre&gt;


&lt;p&gt;Compte tenu de sa taille modeste, ça ne devrait prendre que quelques secondes.&lt;/p&gt;


&lt;p&gt;Faisons ensuite de cette partition un volume chiffré &lt;em&gt;LUKS&lt;/em&gt; :&lt;/p&gt;


&lt;pre&gt;cryptsetup luksFormat /dev/sdb2&lt;/pre&gt;


&lt;p&gt;Après un avertissement auquel il nous faut répondre &amp;quot;YES&amp;quot;, il nous sera demandé de taper deux fois la &lt;em&gt;phrase secrète&lt;/em&gt; ou mot de passe que nous utiliserons pour protéger nos clés. Rappelons-nous que nous devrons le taper à &lt;em&gt;chaque&lt;/em&gt; boot, et que cela vient en supplément de la possession matérielle du support. À moins d'être paranoïaque, nous pouvons donc nous contenter d'un mot de passe relativement court et facile à taper - mais de préférence, pas à deviner ;-) &lt;br /&gt;
Une fois le volume chiffré créé, nous devons l'activer :&lt;/p&gt;


&lt;pre&gt;cryptsetup luksOpen /dev/sdb2 ext_keys&lt;/pre&gt;


&lt;p&gt;Après avoir tapé le mot de passe, si nous tapons &amp;quot;&lt;code&gt;ls -l /dev/mapper&lt;/code&gt;&amp;quot;, nous devrions voir y apparaître un périphérique nommé &amp;quot;&lt;em&gt;ext_keys&lt;/em&gt;&amp;quot;, qui correspond au volume chiffré &amp;quot;&lt;code&gt;/dev/sdb2&lt;/code&gt;&amp;quot; actuellement ouvert.&lt;/p&gt;


&lt;p&gt;Il nous faut maintenant &amp;quot;formater&amp;quot; cette partition pour y créer un &lt;em&gt;filesystem ext2&lt;/em&gt; :&lt;/p&gt;


&lt;pre&gt;mke2fs -m 0 -L ext_keys /dev/mapper/ext_keys&lt;/pre&gt;


&lt;h3&gt;Génération d'un fichier-clé de 256 octets aléatoires&lt;/h3&gt;


&lt;p&gt;Nous allons maintenant &lt;em&gt;monter&lt;/em&gt; le volume externe de manière à pouvoir y créer un fichier-clé. Commençons par créer le répertoire qui servira de point de montage :&lt;/p&gt;


&lt;pre&gt;mkdir /mnt/ext_keys&lt;/pre&gt;


&lt;p&gt;Puis :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si nous n'avons &lt;strong&gt;&lt;ins&gt;pas&lt;/ins&gt;&lt;/strong&gt; chiffré le volume, nous utilisons directement la partition de l'unité externe :
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mount -t vfat -o defaults /dev/sdb2 /mnt/ext_keys&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Si nous &lt;strong&gt;&lt;ins&gt;avons&lt;/ins&gt;&lt;/strong&gt; chiffré le volume, nous montons sa version ouverte depuis &lt;code&gt;/dev/mapper&lt;/code&gt; :
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mount -t ext2 -o noatime /dev/mapper/ext_keys /mnt/ext_keys&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nous n'avons plus qu'à générer un fichier de 256 octets aléatoires que nous nommerons .bootkey (par exemple).&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;N.B.:&lt;/ins&gt; Veillez bien à utiliser ici &lt;code&gt;/dev/random&lt;/code&gt; et non pas &lt;code&gt;/dev/urandom&lt;/code&gt; :&lt;/p&gt;


&lt;pre&gt;dd if=/dev/random of=/mnt/ext_keys/.bootkey&lt;/pre&gt;


&lt;p&gt;...à la suite de quoi un &amp;quot;&lt;code&gt;ls -la /mnt/ext_keys/&lt;/code&gt;&amp;quot; devrait bien nous montrer la présence de notre fichier-clé aléatoire de 256 octets.&lt;/p&gt;


&lt;p&gt;=&amp;gt; Un support externe peut être endommagé ou perdu ! Une mémoire flash n'est pas infaillible ! A ce stade, je vous conseille vivement de faire une copie de votre fichier-clé sur un ou plusieurs autres supports !&lt;/p&gt;


&lt;p&gt;Maintenant que notre fichier est généré (et sauvegardé), nous pouvons démonter l'unité externe :&lt;/p&gt;


&lt;pre&gt;umount /mnt/ext_keys
sync&lt;/pre&gt;


&lt;p&gt;et, si nous avions utilisé un volume chiffré, nous pouvons le désactiver :&lt;/p&gt;


&lt;pre&gt;cryptsetup luksClose ext_keys&lt;/pre&gt;


&lt;h3&gt;Première regénération de l&lt;em&gt;'initramfs&lt;/em&gt;&lt;/h3&gt;


&lt;p&gt;Pour pouvoir accéder à notre unité externe lors du boot, nous devrons nous assurer que les modules nécessaires (USB ou SD/MMC) sont bien présents sur l&lt;em&gt;'initramfs&lt;/em&gt; que nous utilisons.&lt;/p&gt;


&lt;p&gt;Les modules à charger dépendent fortement du matériel que vous possédez. Utilisez la commande &amp;quot;&lt;code&gt;lsmod&lt;/code&gt;&amp;quot; pour lister les modules actuellement chargés sur votre système, et déterminer ceux qu'il vous faudra inclure dans l'initramfs.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;On aura typiquement pour de l'USB :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usbcore&lt;/li&gt;
&lt;li&gt;ohci_hcd (ou uhci_hcd selon le matériel)&lt;/li&gt;
&lt;li&gt;ehci_hcd&lt;/li&gt;
&lt;li&gt;usb_storage&lt;/li&gt;
&lt;li&gt;sd_mod&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Pour un lecteur SD/MMC :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mmc_core&lt;/li&gt;
&lt;li&gt;sdhci&lt;/li&gt;
&lt;li&gt;mmc_block&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si vous voulez mettre votre clé sur une partition FAT (sur une clé USB par exemple, il faudra également ajouter :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fat&lt;/li&gt;
&lt;li&gt;vfat&lt;/li&gt;
&lt;li&gt;nls_cp437&lt;/li&gt;
&lt;li&gt;nls_iso8859_1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mettez alors cette liste de modules, un par ligne, dans le fichier &lt;code&gt;/etc/initramfs-tools/modules&lt;/code&gt;. Le mien, pour une utilisation de cartes SD, contient les lignes suivantes :&lt;/p&gt;


&lt;pre&gt;mmc_core
sdhci
mmc_block
aes_i586
sha256
dm_mod
dm_crypt&lt;/pre&gt;


&lt;p&gt;Une fois ceci fait, récréons notre &lt;em&gt;initramfs&lt;/em&gt; :&lt;/p&gt;


&lt;pre&gt;update-initramfs -v -u&lt;/pre&gt;


&lt;h3&gt;Insertion de la nouvelle clé dans le container &lt;em&gt;LUKS&lt;/em&gt; principal du système&lt;/h3&gt;


&lt;p&gt;Nous allons maintenant rebooter notre système (antérieurement chiffré), et, quand celui-ci nous demandera notre &lt;em&gt;phrase secrète&lt;/em&gt;, nous allons &lt;em&gt;volontairement&lt;/em&gt; taper 3 fois de suite un mot de passe invalide, puis attendre. Au bout d'une trentaine de secondes, nous devrions obtenir un message d'erreur indiquant que le &lt;em&gt;root filesystem&lt;/em&gt; est indisponible, puis nous retrouver dans un &lt;em&gt;shell minimal&lt;/em&gt; (&lt;em&gt;busybox&lt;/em&gt;) à l'intérieur de notre &lt;em&gt;initramfs&lt;/em&gt;.&lt;/p&gt;


&lt;pre&gt;(initramfs)&lt;/pre&gt;


&lt;p&gt;À partir de là, nous ne pouvons pas faire grand-chose, mais nous pouvons en faire assez pour ajouter notre clé au container :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Créons un point de montage &amp;quot;&lt;code&gt;/ext_keys&lt;/code&gt;&amp;quot; : &lt;code&gt;mkdir /ext_keys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Montons notre unité externe sous ce point : &lt;code&gt;mount -t vfat -o ro /dev/sdb2 /ext_keys&lt;/code&gt; (si nous avions chiffré la partition, nous devons d'abord l'ouvrir avec &amp;quot;&lt;code&gt;cryptsetup luksOpen&lt;/code&gt;'' avant de la monter à partir de &lt;code&gt;/dev/mapper&lt;/code&gt; exactement comme expliqué plus haut)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ajoutons maintenant la clé au container chiffré du disque dur (en supposant qu'il s'appelle /dev/sda2) :&lt;/p&gt;


&lt;pre&gt;cryptsetup luksAddKey /dev/sda2  /ext_keys/.bootkey&lt;/pre&gt;


&lt;p&gt;Le système nous demandera alors la phrase secrète &lt;em&gt;actuelle&lt;/em&gt; du container, avant d'ajouter la clé qui se trouve sur le périphérique externe.&lt;/p&gt;


&lt;p&gt;Une fois ceci fait, nous pouvons démonter le volume externe (&lt;code&gt;umount /ext_keys&lt;/code&gt;), et si nécessaire refermer le volume chiffré correspondant (&lt;code&gt;cryptsetup luksClose ext_keys&lt;/code&gt;).&lt;br /&gt;
Puis, nous pouvons rebooter &amp;quot;normalement&amp;quot; :&lt;/p&gt;


&lt;pre&gt;sync
reboot&lt;/pre&gt;


&lt;p&gt;=&amp;gt; Lors de ce reboot, nous devons toujours taper &lt;em&gt;la phrase secrète habituelle&lt;/em&gt; de notre système, car son &lt;em&gt;initramfs&lt;/em&gt; ne sait pas encore utiliser la clé résidant sur le support externe.&lt;/p&gt;


&lt;h3&gt;Génération d'un &lt;em&gt;initramfs&lt;/em&gt; compatible avec la clé sur support externe.&lt;/h3&gt;


&lt;p&gt;Pour que notre système puisse utiliser la clé que nous avons fabriquée puis installée, il nous faut ajouter dans l'initramfs le script &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot; que j'ai écrit et que vous trouverez en attachement.&lt;br /&gt;
Ce script est très souple, car il détecte automatiquement si la partition contenant la clé est chiffrée ou non, et en demande le mot de passe le cas échéant. De plus, si l'unité externe n'est pas présente, il vous sera possible de taper une &lt;em&gt;phrase secrète&lt;/em&gt; à la main - si toutefois votre système en reconnaît encore une comme valide.&lt;/p&gt;


&lt;h4&gt;Installation du script &amp;quot;&lt;em&gt;bootkeyscript&lt;/em&gt;&amp;quot;&lt;/h4&gt;


&lt;p&gt;Installez ce script dans un répertoire approprié de votre système (je vous suggère &lt;code&gt;/usr/local/sbin&lt;/code&gt;), et rendez-le exécutable avec &amp;quot;&lt;code&gt;chmod 755 /usr/local/sbin/bootkeyscript&lt;/code&gt;&amp;quot;.&lt;/p&gt;


&lt;h4&gt;Inclusion de l'utilitaire &amp;quot;stty&amp;quot; dans l'initramfs&lt;/h4&gt;


&lt;p&gt;Créez un script que vous appellerez &amp;quot;&lt;code&gt;include_stty&lt;/code&gt;&amp;quot; dans le répertoire &lt;code&gt;/etc/initramfs-tools/hooks&lt;/code&gt;, avec le contenu suivant :&lt;/p&gt;


&lt;pre&gt;#! /bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /bin/stty /bin&lt;/pre&gt;


&lt;p&gt;Rendez ce script exécutable : &lt;code&gt;chmod 744 /etc/initramfs-tools/hooks/include_stty&lt;/code&gt;&lt;/p&gt;


&lt;h4&gt;Inclusion de l'utilitaire &amp;quot;udevsettle&amp;quot; dans l'initramfs&lt;/h4&gt;


&lt;p&gt;Créez un script que vous appellerez &amp;quot;&lt;code&gt;include_udevsettle&lt;/code&gt;&amp;quot; dans le répertoire &lt;code&gt;/etc/initramfs-tools/hooks&lt;/code&gt;, avec le contenu suivant :&lt;/p&gt;


&lt;pre&gt;#! /bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/udevsettle /sbin&lt;/pre&gt;


&lt;p&gt;Rendez ce script exécutable : &lt;code&gt;chmod 744 /etc/initramfs-tools/hooks/include_udevsettle&lt;/code&gt;&lt;/p&gt;


&lt;h4&gt;Edition de /etc/crypttab&lt;/h4&gt;


&lt;p&gt;Editez votre fichier &lt;code&gt;/etc/crypttab&lt;/code&gt; : C'est lui qui indiquera au système qu'il faut utiliser le script, et où se trouve la clé. En fonction du périphérique externe que vous utilisez et du nom que vous avez choisi pour votre fichier-clé, la ligne concernant votre LVM chiffrée devra désormais prendre l'aspect suivant :&lt;/p&gt;


&lt;pre&gt;# &amp;lt;target name&amp;gt; &amp;lt;source device&amp;gt; &amp;lt;key file&amp;gt; &amp;lt;options&amp;gt;
crypt_VG1 /dev/sda2 sdb2/.bootkey   luks,tries=3,lvm=crypt_VG1-LV_ROOTFS,keyscript=/usr/local/sbin/bootkeyscript&lt;/pre&gt;


&lt;p&gt;À noter : l'emplacement du &amp;quot;&lt;em&gt;key file&lt;/em&gt;&amp;quot; se note ici sous la forme &lt;code&gt;partition/fichier&lt;/code&gt; (avec des sous-répertoires si vous le souhaitez), mais sans indiquer &amp;quot;&lt;code&gt;/dev/...&lt;/code&gt;&amp;quot; ni le point de montage, qui sont automatiques.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Ne vous trompez pas en modifiant ce fichier !&lt;/strong&gt; Par rapport à votre installation antérieure, il vous faut seulement :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modifier &amp;quot;&lt;em&gt;key file&lt;/em&gt;&amp;quot; de &amp;quot;&lt;code&gt;none&lt;/code&gt;&amp;quot; à l'emplacement de votre fichier-clé ;&lt;/li&gt;
&lt;li&gt;Ajouter à la fin des options &amp;quot;&lt;code&gt;keyscript=/usr/local/sbin/bootkeyscript&lt;/code&gt;&amp;quot;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le reste ne change pas par rapport à précédemment.&lt;/p&gt;


&lt;p&gt;Nous avons presque terminé.&lt;/p&gt;


&lt;h4&gt;Génération de l&lt;em&gt;'initramfs&lt;/em&gt; final :&lt;/h4&gt;


&lt;pre&gt;update-initramfs -v -u&lt;/pre&gt;


&lt;p&gt;...Et il ne nous reste plus qu'à &lt;em&gt;rebooter&lt;/em&gt; proprement.&lt;/p&gt;


&lt;p&gt;- Si le périphérique contenant la clé est présent, la machine bootera automatiquement (elle demandera le mot de passe du périphérique-clé automatiquement, uniquement ci celui-ci a été créé ainsi).&lt;/p&gt;


&lt;p&gt;- Si le périphérique contenant la clé est absent, vous obtiendrez (et c'est intentionnel) uniquement le message d'erreur :&lt;/p&gt;


&lt;p&gt;&lt;em&gt;&lt;strong&gt;Missing boot device /dev/sdb2!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;...mais en réponse à ce messages d'erreur, &lt;em&gt;vous pouvez taper une phrase secrète&lt;/em&gt;, s'il en existe une valide pour le container chiffré du disque dur, et le démarage se poursuivra alors normalement.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Vous avez désormais un système chiffré capable d'être &amp;quot;trimodal&amp;quot; : Il peut démarrer soit avec une phrase secrète, soit avec une clé externe non protégée, soit avec une clé externe protégée, vous offrant ainsi une sécurité extrême.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si les choses ne fonctionnent pas comme désiré, vous pouvez passer le script en mode &amp;quot;debug&amp;quot; en ajoutant &amp;quot;&lt;code&gt;cryptdebug&lt;/code&gt;&amp;quot; à la ligne de paramètres de démarrage de votre noyau. Le script affichera alors des messages indiquant sa progression et d'éventuels problèmes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Une fois que vous serez &lt;em&gt;certain&lt;/em&gt; que votre clé externe permet effectivement le démarrage du système, et que vous en avez fait une copie de secours (ailleurs que sur le portable qu'elle protège ;-) vous pourrez, si vous le souhaitez, supprimer complètement la &lt;em&gt;phrase secrète&lt;/em&gt; antérieure de votre disque dur chiffré, en utilisant &amp;quot;&lt;code&gt;cryptsetup luksDelKey&lt;/code&gt;&lt;em&gt; (voir &lt;/em&gt;man cryptsetup&lt;em&gt;), après avoir &lt;/em&gt;booté dans l'initrd'' comme expliqué plus haut.&lt;/p&gt;


&lt;p&gt;Il ne vous reste plus qu'à penser à &lt;strong&gt;ne pas laisser votre &lt;em&gt;clé de contact&lt;/em&gt; en permanence sur votre machine&lt;/strong&gt; : Aussitôt que la machine a démarré, vous pouvez la retirer - et donc utiliser votre lecteur de carte ou prise USB pour y connecter, comme d'habitude, tout autre périphérique de votre choix.&lt;/p&gt;


&lt;hr /&gt;


&lt;p&gt;Vous pouvez également vous référer avec fruit au &lt;em&gt;&lt;a href=&quot;https://help.ubuntu.com/community/FeistyLUKSTwoFormFactor&quot; hreflang=&quot;en&quot;&gt;Two Form Factor Authentication and LUKS Whole Disk Encryption with Feisty Fawn HowTo&lt;/a&gt;&lt;/em&gt;, notez cependant que &lt;strong&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;le script &amp;quot;maison&amp;quot;&lt;/a&gt; que je vous fournis ici n'en provient pas&lt;/strong&gt; : J'ai la faiblesse de penser que mon script est beaucoup plus puissant, et il a l'avantage de ne nécessiter aucune modification des scripts standard du système.&lt;/p&gt;


&lt;hr /&gt;


&lt;p&gt;&lt;em&gt;&lt;strong&gt;Short english summary :&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;In this article, I propose a &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot; that allows easy use of &lt;em&gt;dual form factor authentication&lt;/em&gt; on a fully encrypted LVM Ubuntu (7.10 Gutsy Gibbon) Linux installation. (See one of these excellent HowTos for installing Ubuntu on a fully-encrypted LVM base : &amp;quot;&lt;em&gt;&lt;a href=&quot;https://help.ubuntu.com/community/EncryptedFilesystemLVMHowto&quot; hreflang=&quot;en&quot;&gt;EncryptedFilesystemLVMHowto&lt;/a&gt;&lt;/em&gt;&amp;quot;, &amp;quot;&lt;em&gt;&lt;a href=&quot;https://help.ubuntu.com/community/FeistyLUKSTwoFormFactor&quot; hreflang=&quot;en&quot;&gt;FeistyLUKSTwoFormFactor&lt;/a&gt;&lt;/em&gt;&amp;quot;)&lt;/p&gt;


&lt;p&gt;The &lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;script&lt;/a&gt; that I propose here has some advantages over existing scripts :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Doesn't need any change or patch to Ubuntu Gutsy existing scripts, with which it integrates well, making future packages upgrads easy ;&lt;/li&gt;
&lt;li&gt;Automatically allows in a smart way any combination of the following authentication methods :
&lt;ul&gt;
&lt;li&gt;Single form-factor authentication, using an unencrypted keyfile on an external removable device ;&lt;/li&gt;
&lt;li&gt;Dual-form factor authentication, using a keyfile residing on a LUKS-encrypted partition on an external device ;&lt;/li&gt;
&lt;li&gt;Possible automatic fallback to typing a passphrase if keyfile external device is missing (with a purposely obscure &lt;q&gt;&lt;em&gt;Missing boot device!&lt;/em&gt;&lt;/q&gt; error message).&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Short installation instructions :&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a fully (passphrase-controlled) LVM encrypted system as usual, possibly following one of the existing HowTos. Do &lt;em&gt;not&lt;/em&gt; change anything in the existing Ubuntu encryption scripts.&lt;/li&gt;
&lt;li&gt;Create a random keyfile. Install it on an external device partition, either itself LUKS-encrypted with a passphrase (for 2 form-factor auth) or unencrypted (1 form-factor, with key device, without passphrase).&lt;/li&gt;
&lt;li&gt;Install the key to the main system LUKS container (following usual instructions).&lt;/li&gt;
&lt;li&gt;List all the modules you will need to access your key device and its filesystem, in the &lt;code&gt;/etc/initramfs-tools/modules&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Put such an executable script (mode 744) into /etc/initramfs-tools/hooks, let's call it &amp;quot;include_stty&amp;quot; :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;#! /bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /bin/stty /bin&lt;/pre&gt;


&lt;p&gt;(This will include &amp;quot;stty&amp;quot; into the initramfs, to avoid echoing typed
passphrase if not using bootsplash. Using bootsplash wouldn't actually need
this)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an &lt;em&gt;include_udevsettle&lt;/em&gt; script the same way :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;#! /bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/udevsettle /sbin&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Install my &amp;quot;&lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript&quot;&gt;bootkeyscript&lt;/a&gt;&lt;/em&gt;&amp;quot; script wherever you like on your system (I suggest /usr/local/sbin), mode 755.&lt;/li&gt;
&lt;li&gt;Update /etc/crypttab with the columns :
&lt;ul&gt;
&lt;li&gt;Key : device/keyfilename i.e. &lt;code&gt;sdb1/.mysystemkey&lt;/code&gt; or &lt;code&gt;mmcblk0p2/somedir/somekeyfile&lt;/code&gt; (Syntax is &lt;em&gt;devicepartition/filepath&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Options : Add &amp;quot;&lt;code&gt;keyscript=/usr/local/sbin/bootkeyscript&lt;/code&gt;&amp;quot;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Regenerate initramfs (update-initrafms -u)&lt;/li&gt;
&lt;li&gt;Reboot, enjoy.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;


&lt;h4&gt;Changelog&lt;/h4&gt;


&lt;p&gt;&lt;strong&gt; 2008/05/10: bootkeyscript V. 1.5&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Much debugged and rewritten version of the script.&lt;/li&gt;
&lt;li&gt;Works much better than previously for keys on USB flash disks.&lt;/li&gt;
&lt;li&gt;Includes a &amp;quot;debug&amp;quot; mode that you can set by adding &amp;quot;&lt;code&gt;cryptdebug&lt;/code&gt;&amp;quot; to the kernel command line.&lt;/li&gt;
&lt;li&gt;This article completed with some missing infomation.&lt;/li&gt;
&lt;li&gt;Compatible with Ubuntu 8.04 Hardy or 7.10 Gutsy&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;


&lt;p&gt;&lt;em&gt;Help Google : Ubuntu Linux 7.10 Gutsy Gibbon LUKS whole disk encryption external device keys, two form factor authentication, how to howto&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#rev-pnote-1200-1&quot; id=&quot;pnote-1200-1&quot;&gt;1&lt;/a&gt;] Les possibilités de ce système sont immenses. On peut par exemple imaginer, pour un serveur - qui doit être capable de booter sans intervention humaine - de stocker une clé sur une machine distante, et de l'obtenir via Internet, la machine distante étant configurée pour ne fournir cette clé qu'à une adresse IP précise. Le serveur sera ainsi capable de booter tout seul dans son &amp;quot;environnement habituel&amp;quot;, mais si jamais il est volé, il deviendra inutilisable en dehors de son adresse IP habituelle, et il sera possible de supprimer la clé de la machine distante sur laquelle elle est stockée. Un tel &lt;em&gt;setup&lt;/em&gt; est toutefois extrêmement complexe et va bien au-delà des objectifs de cet article.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#rev-pnote-1200-2&quot; id=&quot;pnote-1200-2&quot;&gt;2&lt;/a&gt;] L'avantage d'une clé USB est qu'elle peut être &lt;em&gt;bootable&lt;/em&gt;, alors qu'une SD-card ne le sera pas - parce que le BIOS du système ne le prévoit généralement pas. Si on utilise une clé USB, on peut même envisager de mettre dessus le &amp;quot;/boot&amp;quot; non chiffré du système (moins de 100 Mo), ainsi que le &lt;em&gt;bootloader grub&lt;/em&gt;, ne laissant sur le disque dur qu'un container totalement chiffré et non bootable contenant tout le reste du système. Ce n'est pas particulièrement compliqué à faire, mais c'est là encore en dehors du sujet de cet article.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://petaramesh.org/post/2007/11/29/#rev-pnote-1200-3&quot; id=&quot;pnote-1200-3&quot;&gt;3&lt;/a&gt;] Évidemment sous licence GNU GPL.&lt;/p&gt;&lt;/div&gt;</description>
    
          <enclosure url="http://petaramesh.org/public/arc/projects/lfd/gpl_v3.txt"
      length="35147" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript"
      length="8673" type="text/plain" />
          <enclosure url="http://petaramesh.org/public/arc/projects/cryptsetup/bootkeyscript.asc"
      length="189" type="text/plain" />
    
    
          <comments>http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1200</wfw:commentRss>
      </item>
    
  <item>
    <title>Flinguez le disque dur de votre portable avec Linux !</title>
    <link>http://petaramesh.org/post/2007/11/22/Flinguez-le-disque-dur-de-votre-portable-avec-Linux</link>
    <guid isPermaLink="false">urn:md5:ce5ef17984b29852657d7c54b0f5d8d3</guid>
    <pubDate>Thu, 22 Nov 2007 23:41:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>geekerie</category><category>informatique</category><category>Linux</category>    
    <description>&lt;p&gt;Ou une méthode particulièrement involontaire d&lt;em&gt;'effacement sécurisé&lt;/em&gt; de vos fichiers : Ruiner le disque dur de votre portable à l'insu de votre plein gré, sans une leçon et en un exercice pratique !&lt;/p&gt;


&lt;p&gt;Linux peut vous y aider...&lt;/p&gt;    &lt;p&gt;Mais comment donc ? Linux sur mon portable pourrait transformer son disque dur en une ruine fumante en l'espace de quelques mois ? Il se pourrait bien que oui, quoique cela ne soit pas certain...&lt;/p&gt;


&lt;p&gt;Les disques durs des portables ont ceci de particulier, par rapport aux disques durs des machines de bureau, qu'ils sont étudiés pour minimiser autant que possible leur consommation d'énergie - pour prolonger l'autonomie de la batterie - et également pour mieux résister aux chocs en fonctionnement.&lt;/p&gt;


&lt;p&gt;L'une de leurs fonctions pour ce faire est de pouvoir rétracter leurs têtes de lecture (les &lt;em&gt;parquer&lt;/em&gt;) assez rapidement dès que le disque &amp;quot;ne fait rien&amp;quot; depuis quelques instants, permettant de cesser d'alimenter l'actuateur des têtes d'une part, et d'autre part de rendre le disque insensible à un éventuel choc - les têtes n'étant plus sur le disque, qui continue cependant à tourner. Les têtes sont alors rétractées sur une petite &amp;quot;rampe&amp;quot; où elles sont verrouillées en position, ne risquant plus de se &lt;em&gt;crasher&lt;/em&gt; sur le disque en cas de choc un peu violent.&lt;/p&gt;


&lt;p&gt;Jusqu'ici, ça semble bel et bon.&lt;/p&gt;


&lt;p&gt;Sauf que...&lt;/p&gt;


&lt;p&gt;Sauf que le parquage des têtes sur la rampe sollicite la mécanique du disque considérablement plus que le simple fonctionnement en lecture-écriture. Cela provoque une usure qui peut se terminer par des choses très désagréables.&lt;/p&gt;


&lt;p&gt;Le nombre de fois qu'une tête peut être &lt;em&gt;parquée&lt;/em&gt; et &lt;em&gt;déparquée&lt;/em&gt; est variable selon le modèle de disque, mais tourne en moyenne autour de 600.000. Après quoi, le mécanisme est théoriquement &lt;em&gt;usé&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;600.000, c'est beaucoup si une tête une fois &lt;em&gt;parquée&lt;/em&gt; n'est pas &lt;em&gt;déparquée&lt;/em&gt; avant plusieurs minutes.&lt;/p&gt;


&lt;p&gt;Mais ça devient relativement peu si la tête est &lt;em&gt;parquée&lt;/em&gt; et &lt;em&gt;déparquée&lt;/em&gt; plusieurs fois par minute, en permanence. Ça peut ruiner un disque dur de portable en l'espace de quelques mois, s'il est utilisé tous les jours...&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Or&lt;/strong&gt;, le &lt;em&gt;parquage automatique&lt;/em&gt; des têtes est une tâche gérée directement par le disque dur, dès lors que le mode &amp;quot;économie d'énergie&amp;quot; est activé. Il parque alors ses têtes &lt;em&gt;tout seul&lt;/em&gt; au bout de typiquement 5 à 10 secondes sans accès disque.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Or&lt;/strong&gt;, un système Linux est plein de gentils petits &lt;em&gt;démons&lt;/em&gt; qui font des accès disque réguliers, typiquement toutes les 30 secondes, même quand le système ne fait &amp;quot;rien&amp;quot;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Or&lt;/strong&gt;, les noyaux Linux récents, qui sont malins, s'ils détectent (via l'&lt;acronym title=&quot;Advanced Configuration and Power Interface&quot;&gt;ACPI&lt;/acronym&gt;) qu'ils tournent sur un portable et que son disque possèdent une fonction d'économie d'énergie, activent automatiquement celle-ci lors du boot. Ben ouais, quoi ?&lt;/p&gt;


&lt;p&gt;Résultat ?&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Parquer... Déparquer... Parquer... Déparquer... Parquer... Déparquer... Parquer... &lt;strong&gt;TZZzzzoiiiinnngg ! Aïe !&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Mais comment savoir si c'est en train d'arriver à &lt;em&gt;votre&lt;/em&gt; disque en ce moment même ? Pas dur : À l'oreille.&lt;/p&gt;


&lt;p&gt;Lors des accès disque ordinaires, un disque dur de portable fait un gratouillis à peine audible. Lors du parquage, il fait un petit &amp;quot;&lt;em&gt;Cloc !&lt;/em&gt;&amp;quot;&lt;/p&gt;


&lt;p&gt;Allumez votre portable dans une pièce calme, laissez-le 10 minutes que les &lt;em&gt;cronjobs&lt;/em&gt; quotidiens puissent être exécutés, et écoutez-le. Entendez-vous le disque dur émettre un léger &amp;quot;&lt;em&gt;Cloc !&lt;/em&gt;&amp;quot; 2 ou 3 fois par minute ? Si oui, vous avez le problème.&lt;/p&gt;


&lt;p&gt;Vérifions : Installez le package &lt;em&gt;smartmontools&lt;/em&gt; :&lt;/p&gt;


&lt;pre&gt;aptitude install smartmontools&lt;/pre&gt;


&lt;p&gt;Déterminez (avec la commande &amp;quot;mount&amp;quot; sans paramètre) si votre disque dur s'appelle &amp;quot;hda&amp;quot; ou &amp;quot;sda&amp;quot;. Ce sera probalement &amp;quot;hda&amp;quot; pour un disque PATA, ou &amp;quot;sda&amp;quot; pour un disque SATA.&lt;/p&gt;


&lt;p&gt;Affichons maintenant les paramètres SMART du disque :&lt;/p&gt;

&lt;pre&gt;
smartctl -A /dev/sda

smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   062    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   040    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0007   253   253   033    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       261
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   040    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0012   099   099   000    Old_age   Always       -       461
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       260
191 G-Sense_Error_Rate      0x000a   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       63
193 Load_Cycle_Count        0x0012   093   093   000    Old_age   Always       -       71733
194 Temperature_Celsius     0x0002   203   203   000    Old_age   Always       -       27 (Lifetime Min/Max 18/52)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   253   000    Old_age   Always       -       0
223 Load_Retry_Count        0x000a   100   100   000    Old_age   Always       -       0

&lt;/pre&gt;


&lt;p&gt;Vous obtenez une liste de valeurs définissant l'état de santé de votre disque, dont les colonnes sont les suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ID# : Le numéro du paramètre&lt;/li&gt;
&lt;li&gt;ATTRIBUTE_NAME : La signification technique de ce paramètre&lt;/li&gt;
&lt;li&gt;FLAG : Un &lt;em&gt;flag&lt;/em&gt; hexa. laissez tomber ;-)&lt;/li&gt;
&lt;li&gt;VALUE : La &lt;strong&gt;valeur actuelle&lt;/strong&gt; de ce paramètre, ramené à une base 100 ou 200 le plus souvent. Il est généralement assez facile de savoir si l'on est sur base 100 ou 200. &lt;strong&gt;Plus la valeur est haute, plus c'est bon, plus la valeur est basse, plus c'est mauvais&lt;/strong&gt;. Typiquement, 100 ou 200, c'est &amp;quot;parfait&amp;quot;.&lt;/li&gt;
&lt;li&gt;WORST : La valeur la plus basse jamais mesurée pour ce paramètre.&lt;/li&gt;
&lt;li&gt;THRESH : Seuil d'alerte &amp;quot;défaillance imminente&amp;quot;. Si la VALUE s'approche de ce seuil ou descend en-dessous, votre disque est à l'agonie.&lt;/li&gt;
&lt;li&gt;TYPE : Peut être &amp;quot;&lt;em&gt;Pre-fail&lt;/em&gt;&amp;quot; : Ce paramètre, s'il descend, est indicatif d'une défaillance imminente. Ou &amp;quot;&lt;em&gt;Old_age&lt;/em&gt;&amp;quot; : Ce paramètre descend continuellement avec l'utilisation du disque, c'est un peu comme un compteur kilométrique qui n'indique pas que quelque chose va mal, mais que quelque chose a beaucoup servi...&lt;/li&gt;
&lt;li&gt;UPDATED : &amp;quot;&lt;em&gt;Always&lt;/em&gt;&amp;quot;: Ce paramètre est mesuré en permanence. &amp;quot;&lt;em&gt;Offline&lt;/em&gt;&amp;quot; : Ce paramètre n'est mesure QUE si l'on lance une &amp;quot;&lt;em&gt;offline data collection&lt;/em&gt;&amp;quot;.&lt;/li&gt;
&lt;li&gt;WHEN_FAILED : Le nombre d'heures de vol qu'avait le disque la première fois que ce paramètre a foiré.&lt;/li&gt;
&lt;li&gt;RAW_VALUE : La valeur brute mesurée (non ramenée à une base particulière). Elle peut être humainement compréhensible (heures de fonctionnement, température, compteur d'évènements...) ou incompréhensible (certaines valeurs de mesure des erreurs).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et voilà.&lt;/p&gt;


&lt;p&gt;Les seules valeurs auxquelles nous nous intéresserons ici sont :&lt;/p&gt;

&lt;pre&gt;
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  9 Power_On_Hours          0x0012   099   099   000    Old_age   Always       -       461
193 Load_Cycle_Count        0x0012   093   093   000    Old_age   Always       -       71733

&lt;/pre&gt;


&lt;p&gt;Ce disque dur a fonctionné 461 heures, et a subi 71733 &lt;em&gt;cycles de parquage des têtes&lt;/em&gt;, soit en moyenne 155,6 par heure ou 2,6 par minute. &lt;strong&gt;Aïe ! On a un problème.&lt;/strong&gt; Le disque risque de ne pas vivre vieux à ce rytme.&lt;/p&gt;


&lt;p&gt;Relançons la commande &amp;quot;&lt;code&gt;smartctl -A /dev/sda&lt;/code&gt;&amp;quot; plusieurs fois toutes les une ou deux minutes, et voyons si la &amp;quot;RAW VALUE&amp;quot; du &amp;quot;Load_Cycle_Count&amp;quot; augmente régulièrement. Il est probable que oui.&lt;/p&gt;


&lt;p&gt;Essayons maintenant d'y remédier :&lt;/p&gt;


&lt;p&gt;&lt;code&gt;hdparm -B 254 /dev/sda&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Relançons la commande encore plusieurs fois. La valeur n'augmente plus ? Très bien, nous avons résolu &lt;em&gt;provisoirement&lt;/em&gt; le problème.&lt;/p&gt;


&lt;p&gt;Si ça n'a pas marché, essayons :&lt;/p&gt;


&lt;p&gt;&lt;code&gt;hdparm -B 255 /dev/sda&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Si ça ne marche toujours pas, c'est que le disque n'est &lt;em&gt;pas influençable&lt;/em&gt;, et qu'il fait ça de lui-même un point c'est tout. On ne pourra alors rien y faire.&lt;/p&gt;


&lt;p&gt;Si on a trouvé la solution, Il faut maintenant demander à notre gentil Linux de passer ce paramètre à chaque démarrage.&lt;/p&gt;


&lt;p&gt;Sous &lt;em&gt;Ubuntu&lt;/em&gt;, nous éditerons le fichier /etc/hdparm.conf, et à la fin de ce fichier, nous ajouterons le paragraphe :&lt;/p&gt;

&lt;pre&gt;
/dev/sda {
	apm = 254
	keep_settings_over_reset = on
}

&lt;/pre&gt;


&lt;p&gt;Sous &lt;em&gt;Mandriva&lt;/em&gt;, par contre, nous &lt;em&gt;copierons&lt;/em&gt; le fichier &lt;code&gt;/etc/sysconfig/harddisks&lt;/code&gt; sous le nom &lt;code&gt;/etc/sysconfig/harddisksda&lt;/code&gt;, puis, ceci fait, nous éditerons ce fichier et ajouterons à la fin la ligne magique :&lt;/p&gt;


&lt;pre&gt;EXTRA_PARAMS=&amp;quot;-B254 -k1&amp;quot;&lt;/pre&gt;


&lt;p&gt;Puis nous n'aurons plus qu'à rebooter notre machine, et à vérifier comme indiqué plus haut que le problème n'existe plus.&lt;/p&gt;


&lt;p&gt;Nous venons de sauver la vie de notre disque dur !&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;N.B.:&lt;/ins&gt; Si vous avez l'habitude d&lt;em&gt;'hiberner&lt;/em&gt; votre portable sur disque dur, il n'est pas certain qu'au &lt;em&gt;réveil&lt;/em&gt; ce paramètre soit automatiquement réappliqué. Il vous faudra vérifier, le &lt;em&gt;scripter&lt;/em&gt; au besoin, ou... vivre avec.&lt;/p&gt;


&lt;p&gt;(Maintenant, je dis ça comme ça, rien ne me permet d'affirmer que les versions récentes de &lt;em&gt;Winchoze&lt;/em&gt; n'ont pas le même problème, hein... Vous avez un portable sous &lt;em&gt;Winchoze&lt;/em&gt; ? Tendez l'oreille...)&lt;/p&gt;


&lt;hr /&gt;


&lt;p&gt;Une autre chose que nous pouvons faire pour réduire les &lt;em&gt;écritures&lt;/em&gt; sur disque inutiles (et que je fais quasi-systématiquement sur tous types de machines) est de cesser d'enregistrer sur disque les &lt;em&gt;timestamps d'accès&lt;/em&gt; (même en simple lecture) à tous les fichiers. Ces &lt;em&gt;timestamps&lt;/em&gt; génèrent quantité d'écritures et de déplacements de têtes, et, le plus souvent, ne servent à &lt;em&gt;rien&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;C'est extrêmement facile. Il vous suffit d'éditer votre fichier &lt;code&gt;/etc/fstab&lt;/code&gt;, et, pour tous les points de montage correspondant à votre disque dur, à chaque fois que vous voyez l'option &amp;quot;&lt;code&gt;defaults&lt;/code&gt;&amp;quot;, remplacez-la simplement par &amp;quot;&lt;code&gt;noatime&lt;/code&gt;&amp;quot;. Enregistrez, et voilà !&lt;/p&gt;</description>
    
    
    
          <comments>http://petaramesh.org/post/2007/11/22/Flinguez-le-disque-dur-de-votre-portable-avec-Linux#comment-form</comments>
      <wfw:comment>http://petaramesh.org/post/2007/11/22/Flinguez-le-disque-dur-de-votre-portable-avec-Linux#comment-form</wfw:comment>
      <wfw:commentRss>http://petaramesh.org/feed/rss2/comments/1182</wfw:commentRss>
      </item>
    
  <item>
    <title>Ubuntu : Chiffrement intégral du disque dur d'un portable</title>
    <link>http://petaramesh.org/post/2007/11/21/Ubuntu-%3A-Chiffrement-integral-du-disque-dur-dun-portable</link>
    <guid isPermaLink="false">urn:md5:cfa329c4dbf2371f015e90bd29ff7f46</guid>
    <pubDate>Wed, 21 Nov 2007 00:43:00 +0100</pubDate>
    <dc:creator>Petaramesh</dc:creator>
        <category>Informatique non-duelle</category>
        <category>chiffrement</category><category>cryptographie</category><category>geekerie</category><category>informatique</category><category>Linux</category><category>Ubuntu</category>    
    <description>&lt;p&gt;Je continue à faire mumuse avec le chiffrement sous Ubuntu, et je viens de parvenir au chiffrement intégral du disque dur de mon portable (à &lt;code&gt;/boot&lt;/code&gt; près).&lt;/p&gt;


&lt;p&gt;Eh oui, un portable, ça se perd, ça se vole... Si on veut à la fois que nos données personnelles ne risquent jamais de traîner toutes nues dans la nature, et cerise sur le gâtal, que la machine soit parfaitement inutilisable pour l'éventuel voleur, le chiffrement intégral du disque dur est &lt;em&gt;le must&lt;/em&gt;. Mais ce n'est pas forcément simple !&lt;/p&gt;    &lt;p&gt;Quelques explications pour montrer le chemin à qui n'a pas peur de s'y risquer. Attention, la manip n'est pas sans danger pas plus qu'elle n'est pour les débutants ! Il y a mille manières de se retrouver avec une machine non-bootable et toutes ses données perdues !&lt;/p&gt;


&lt;p&gt;J'en décris ici seulement l'idée, les grandes lignes. Des points de détail peuvent manquer, alors encore une fois, attention à vos données ! &lt;q&gt;&lt;em&gt;You've been warned !&lt;/em&gt;&lt;/q&gt;&lt;/p&gt;


&lt;p&gt;Je pars d'un portable comportant une installation quasi-standard d&lt;em&gt;'Ubuntu 7.10 Gutsy Gibbon&lt;/em&gt;, avec cependant un &lt;em&gt;swap chiffré&lt;/em&gt; selon la méthode expliquée dans &lt;a href=&quot;http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu%3A-Chiffrement-du-swap&quot; hreflang=&quot;fr&quot;&gt;mon précédent article&lt;/a&gt;, et également un /tmp + /var/tmp chiffré selon la méthode décrite dans un article que je n'ai pas encore écrit.&lt;/p&gt;


&lt;p&gt;Le jeu consiste à chiffrer l'ensemble des filesystems sur la base d'une &lt;em&gt;&lt;acronym title=&quot;Logical Volume Manager&quot;&gt;LVM&lt;/acronym&gt;&lt;/em&gt;, sans bien sûr rien perdre de mon installation, ni devoir réinstaller à blanc. Simplement en déplaçant l'installation sur un disque externe avant de la remettre sur le portable dont le filesystem aura été préalablement chiffré.&lt;/p&gt;


&lt;p&gt;J'ai commencé par prendre un disque dur externe USB que j'ai entièrement effacé et gavé de données aléatoires avec un beau&lt;/p&gt;


&lt;p&gt;&lt;code&gt;nice dd if=/dev/urandom of=/dev/sdb bs=1M&lt;/code&gt;&lt;br /&gt;
(ça dure des heures...)&lt;/p&gt;


&lt;p&gt;À la suite de quoi, j'ai partitionné le disque externe en 3 bouts :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Un petit /boot de 100 Mo en ext3&lt;/li&gt;
&lt;li&gt;Une grosse partition non formatée de type 83 (Linux) de &amp;quot;tout le disque moins 2 Go&amp;quot;&lt;/li&gt;
&lt;li&gt;Une partition non formatée de type 82 (Linux swap)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ceci fait, j'ai monté la première partition et y ai copié mon &lt;code&gt;/boot&lt;/code&gt; d'un coup de &lt;em&gt;rsync -ax&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Ensuite de quoi, j'ai utilisé &lt;em&gt;&lt;code&gt;cryptsetup luksFormat&lt;/code&gt;&lt;/em&gt; puis &lt;em&gt;&lt;code&gt;mke2fs&lt;/code&gt;&lt;/em&gt; pour faire de la deuxième partition du disque externe une partition chiffrée &lt;em&gt;LUKS&lt;/em&gt;, que j'ai montée (sous un point de montage temporaire &lt;code&gt;/mnt/ext2&lt;/code&gt;).&lt;/p&gt;


&lt;p&gt;Après quoi, j'ai recopié l'ensemble du système du portable sur cette partition chiffrée du disque externe d'un nouveau coup de &lt;code&gt;rsync&lt;/code&gt; (les différentes partitions séparées du disque interne rassemblées en une seule dans le disque externe).&lt;/p&gt;


&lt;p&gt;J'obtiens donc une copie de sauvegade complète et chiffrée (sauf &lt;code&gt;/boot&lt;/code&gt;) de mon portable sur le disque USB externe.&lt;/p&gt;


&lt;p&gt;Vient le plus délicat : Rendre l'installation chiffrée bootable et utilisable directement depuis le disque externe,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Monter le /boot du disque externe  sous la structure chiffrée : &lt;code&gt;mount -t ext3 -o noatime /dev/sdb1 /mnt/ext2/boot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Créer un /dev/null bidon sous la nouvelle installation : &lt;code&gt;mknod /mnt/ext2/dev/null c 1 3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Monter le /dev sous l'installation externe, de manière &amp;quot;fantôme&amp;quot; : &lt;code&gt;mount --bind /dev /mnt/ext2/dev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Se chrooter dans l'installation : &lt;code&gt;chroot /mnt/ext2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Une fois là, monter &lt;code&gt;/proc&lt;/code&gt; : &lt;code&gt;mount -t proc proc /proc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;...et &lt;code&gt;/sys&lt;/code&gt; : &lt;code&gt;mount -t sysfs sysfs /sys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Adapter &lt;code&gt;/etc/crypttab&lt;/code&gt; à la structure du disque externe : Créer une entrée pour le swap chiffré sur le disque externe, et une autre pour la &amp;quot;racine&amp;quot; chiffrée :
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cswap /dev/sdb3 /dev/urandom size=128,swap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crootfs /dev/sdb2 none luks, check&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Adapter &lt;code&gt;/etc/fstab&lt;/code&gt; de même à la structure des points de montage : un /boot non chiffré, une racine (&lt;code&gt;/dev/mapper/crootfs&lt;/code&gt;), un swap chiffré comme &lt;a href=&quot;http://petaramesh.org/post/2007/10/27/Securisation-dune-Ubuntu%3A-Chiffrement-du-swap&quot; hreflang=&quot;fr&quot;&gt;dans mon précédent article&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Se rendre ensuite dans &lt;code&gt;/boot/grub&lt;/code&gt; et modifier menu.lst : Y modifier le &amp;quot;&lt;code&gt;root=&lt;/code&gt;&amp;quot; pour pointer sur le &lt;em&gt;root filesystem&lt;/em&gt; chiffré.&lt;/li&gt;
&lt;li&gt;Installer &lt;em&gt;grub&lt;/em&gt; sur le &lt;acronym title=&quot;Master Boot Record&quot;&gt;MBR&lt;/acronym&gt; du disque externe de manière à le rendre bootable.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A ce stade, il suffit normalement de régénérer l'initramfs avec&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;update-initramfs -v -u&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;...pour avoir fini le boulot.&lt;/p&gt;


&lt;p&gt;Je me suis cependant aperçu qu'un des scripts de démarrage d'Ubuntu était incorrect et n'autorisait pas le boot sur un disque externe USB chiffré, trop lent à être &amp;quot;vu&amp;quot; par le noyau au démarrage.
J'ai donc écrit un &lt;em&gt;&lt;a href=&quot;http://petaramesh.org/public/arc/projects/cryptsetup/cryptroot.071120a.patch&quot;&gt;patch&lt;/a&gt;&lt;/em&gt; pour ce script (&lt;code&gt;/usr/share/initramfs-tools/scripts/local-top/cryptroot&lt;/code&gt;), patch que je joint en annexe et que je vous conseille d'installer (il ne peut pas faire de mal ;-) &lt;em&gt;avant&lt;/em&gt; de lancer &amp;quot;@@update-initramfs -v -u&amp;quot;&lt;/p&gt;


&lt;p&gt;Ceci fait, il ne reste plus qu'à...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;cd /&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /proc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /sys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt; (nous sort du chroot)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /mnt/ext2/dev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /mnt/ext2/boot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sync&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;umount /mnt/ext2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sync&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fermer le volume chiffré LUKS (&lt;code&gt;cryptsetup luksClose&lt;/code&gt;, etc...) du disque externe&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;...Et on peut rebooter proprement.&lt;/p&gt;


&lt;p&gt;Sélectionner par le BIOS le démarrage depuis le disque USB, on doit alors avoir un beau &lt;em&gt;grub&lt;/em&gt; qui propose le démarrage sur le disque externe chiffré.&lt;/p&gt;


&lt;p&gt;Le mot de passe de montage de la partition LUKS sera demandé automatiquement grâce aux scripts prévus à cet effet. Elle est pas belle, la vie ?&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;&lt;em&gt;À ce stade, on a créé une installation de Linux entièrement chiffrée sur un disque externe bootable, que l'on devrait pouvoir d'ailleurs utiliser pour booter un peu n'importe quelle machine et y retrouver son environnement Ubuntu complet !&lt;/em&gt;&lt;/strong&gt; (modulo les possibles problèmes causés par des hardwares différents, notamment carte graphique...)&lt;/p&gt;


&lt;p&gt;Une fois que l'on a vérifié que notre installation &lt;em&gt;externe&lt;/em&gt; est complète et marche parfaitement, et qu'on peut donc utiliser le portable &lt;em&gt;sans son disque interne&lt;/em&gt;, on va pouvoir totalement effacer celui-ci, y préparer notre installation chiffrée un peu de la même manière que pour le disque externe, et redéménager dans l'autre sens.&lt;/p&gt;


&lt;p&gt;Commençons par effacer totalement le disque dur du portable avec :&lt;/p&gt;


&lt;p&gt;&lt;code&gt;nice dd if=/dev/urandom of=/dev/sda bs=1M&lt;/code&gt;&lt;br /&gt;
(Comme précédemment, ça durera des heures...)&lt;/p&gt;


&lt;p&gt;Pour l'organisation du disque proprement di