<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>3. Installation du périphérique d'amorçage</title> <link rel="stylesheet" href="style.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.66.1"> <link rel="start" href="index.html" title=" Guide pratique de chiffrement des systèmes de fichiers racines "> <link rel="up" href="index.html" title=" Guide pratique de chiffrement des systèmes de fichiers racines "> <link rel="prev" href="ar01s02.html" title="2. Création du système de fichiers racine chiffré"> <link rel="next" href="ar01s04.html" title="4. Dernières étapes"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr><th colspan="3" align="center">3. Installation du périphérique d'amorçage</th></tr> <tr> <td width="20%" align="left"> <a accesskey="p" href="ar01s02.html">Précédent</a> </td> <th width="60%" align="center"> </th> <td width="20%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a> </td> </tr> </table> <hr> </div> <div class="sect1" lang="fr"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> <a name="configurer-amorce"></a>3. Installation du périphérique d'amorçage</h2></div></div></div> <div class="sect2" lang="fr"> <div class="titlepage"><div><div><h3 class="title"> <a name="ramdisque-initial"></a>3.1. Création du ramdisque</h3></div></div></div> <p> Pour commencer, redéfinissez la racine du système (via <span><b class="command">chroot</b></span>) à l'intérieur de la partition chiffrée et créez le point de montage du périphérique d'amorçage : </p> <pre class="screen"> chroot /mnt/efs mkdir /loader </pre> <p> Ensuite, créez le ramdisque initial (initrd), lequel sera nécessaire par la suite : </p> <pre class="screen"> cd dd if=/dev/zero of=initrd bs=1k count=4096 mke2fs -F initrd mkdir ramdisk mount -o loop initrd ramdisk </pre> <p> Créez la hiérarchie du système de fichiers et copiez-y les fichiers requis : </p> <pre class="screen"> mkdir ramdisk/{bin,dev,lib,mnt,sbin} cp /bin/{bash,mount,umount} ramdisk/bin/ ln -s bash ramdisk/bin/sh mknod -m 600 ramdisk/dev/console c 5 1 mknod -m 600 ramdisk/dev/hda2 b 3 2 mknod -m 600 ramdisk/dev/loop0 b 7 0 cp /lib/{ld-linux.so.2,libc.so.6,libdl.so.2} ramdisk/lib/ cp /lib/{libncurses.so.5,libtermcap.so.2} ramdisk/lib/ cp /sbin/{losetup,pivot_root} ramdisk/sbin/ </pre> <p> Ne soyez pas surpris si vous voyez un message du genre « /lib/libncurses.so.5: No such file or directory », ou « /lib/libtermcap.so.2: No such file or directory », c'est normal : bash n'a besoin que de l'une de ces deux bibliothèques. Vous pouvez vérifier laquelle est actuellement nécessaire avec la commande suivante : </p> <pre class="screen"> ldd /bin/bash </pre> <p> Créez le script d'initialisation <tt class="filename">init</tt> (n'oubliez pas de remplacer « <i class="replaceable"><tt>xxxxxxxxxx</tt></i> » par la graine que vous avez choisi) : </p> <pre class="screen"> cat > ramdisk/sbin/init << "EOF" #!/bin/sh /sbin/losetup -e aes256 -S <i class="replaceable"><tt>xxxxxxxxxx</tt></i> /dev/loop0 /dev/hda2 /bin/mount -r -n -t ext2 /dev/loop0 /mnt while [ $? -ne 0 ] do /sbin/losetup -d /dev/loop0 /sbin/losetup -e aes256 -S <i class="replaceable"><tt>xxxxxxxxxx</tt></i> /dev/loop0 /dev/hda2 /bin/mount -r -n -t ext2 /dev/loop0 /mnt done cd /mnt /sbin/pivot_root . loader exec /usr/sbin/chroot . /sbin/init EOF chmod 755 ramdisk/sbin/init </pre> <p> Démontez le périphérique de bouclage (<span class="foreignphrase"><i class="foreignphrase">loopback device</i></span>) et compressez le fichier initrd : </p> <pre class="screen"> umount -d ramdisk rmdir ramdisk gzip initrd mv initrd.gz /boot/ </pre> </div> <div class="sect2" lang="fr"> <div class="titlepage"><div><div><h3 class="title"> <a name="cd-amorcable"></a>3.2. Démarrage depuis un cd-rom</h3></div></div></div> <p> Je vous conseille vivement de démarrer votre système depuis un média en lecture seule, tel qu'un cd-rom amorçable. </p> <p> Téléchargez et décompressez syslinux : </p> <pre class="screen"> wget ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/syslinux-2.07.tar.gz tar -xvzf syslinux-2.07.tar.gz </pre> <p> Configurez isolinux : </p> <pre class="screen"> mkdir bootcd cp /boot/vmlinuz-2.4.23 bootcd/vmlinuz cp /boot/initrd.gz syslinux-2.07/isolinux.bin bootcd/ echo "DEFAULT vmlinuz initrd=initrd.gz ro root=/dev/ram0 vga=4" \ > bootcd/isolinux.cfg </pre> <p> Créez et gravez l'image iso sur un cd-rom amorçable : </p> <pre class="screen"> mkisofs -o bootcd.iso -b isolinux.bin -c boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -J -hide-rr-moved -R bootcd/ cdrecord -dev 0,0,0 -speed 4 -v bootcd.iso rm -rf bootcd{,.iso} </pre> </div> <div class="sect2" lang="fr"> <div class="titlepage"><div><div><h3 class="title"> <a name="partition-d-amorcage"></a>3.3. Démarrer depuis une partition</h3></div></div></div> <p> La partition d'amorçage est un périphérique de démarrage de remplacement : vous en aurez besoin si vous perdez votre CD amorçable. <span class="emphasis"><em>Rappellez-vous que <tt class="filename">hda1</tt> est un média sur lequel il est possible d'écrire et que cela n'est pas sécurisé ; utilisez-le seulement en cas d'urgence !</em></span> </p> <p> Créer et montez le système de fichiers ext2 : </p> <pre class="screen"> dd if=/dev/zero of=/dev/hda1 bs=8192 mke2fs /dev/hda1 mount /dev/hda1 /loader </pre> <p> Copiez le noyau et le ramdisque initial : </p> <pre class="screen"> cp /boot/vmlinuz-2.4.23 /loader/vmlinuz cp /boot/initrd.gz /loader/ </pre> <p> Si vous utilisez <span><b class="command">grub</b></span> : </p> <pre class="screen"> mkdir /loader/boot cp -av /boot/grub /loader/boot/ cat > /loader/boot/grub/menu.lst << EOF default 0 timeout 10 color green/black light-green/black title Linux root (hd0,0) kernel /vmlinuz ro root=/dev/ram0 vga=4 initrd /initrd.gz EOF grub-install --root-directory=/loader /dev/hda umount /loader </pre> <p> Si vous utilisez <span><b class="command">lilo</b></span> : </p> <pre class="screen"> mkdir /loader/{boot,dev,etc} cp /boot/boot.b /loader/boot/ mknod -m 600 /loader/dev/hda b 3 0 mknod -m 600 /loader/dev/hda1 b 3 1 mknod -m 600 /loader/dev/ram0 b 1 0 cat > /loader/etc/lilo.conf << EOF lba32 boot=/dev/hda prompt timeout=100 image=/vmlinuz label=Linux initrd=/initrd.gz read-only root=/dev/ram0 vga=4 EOF lilo -r /loader umount /loader </pre> </div> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"> <a accesskey="p" href="ar01s02.html">Précédent</a> </td> <td width="20%" align="center"><a accesskey="u" href="index.html">Niveau supérieur</a></td> <td width="40%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a> </td> </tr> <tr> <td width="40%" align="left" valign="top">2. Création du système de fichiers racine chiffré </td> <td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td> <td width="40%" align="right" valign="top"> 4. Dernières étapes</td> </tr> </table> </div> </body> </html>