Installation Slackware sans CD ni DVD
Transcription
Installation Slackware sans CD ni DVD
Installation de Slackware1 GNU/Linux sans graver CD ni DVD Juan Ferriz 5 décembre 2009 certains droits réservés document publié sous licence Creative Commons http://creativecommons.org/licenses/by-nc-sa/3.0/ Ce document s’inspire d’un autre existant sur le Web à http://humanreadable.nfshost.com/sdeg/installing_no_cd.htm. Description du problème Je veux installer la version 13.0 (64 bits) de Slackware sur ma machine, mais je ne veux pas devoir graver les CDs ni le DVD. Je veux pouvoir installer depuis l’image ISO, située sur une quelconque partition disponible. Je sais que l’installation peut se réaliser depuis le Web (par ftp par exemple) en indiquant un miroir pendant le processus, mais de toutes façons il faut d’abord démarrer le système. Ce démarrage est également expliqué dans ce document. Ma machine est organisée de la manière suivante : 2 disques durs internes et 1 externe disque 1 : interne hda1 WinXP, avec GRUB4DOS (C :\boot) hda5 et suivantes plusieurs en FAT32 et NTFS disque 2 : interne hdb1 OpenBSD (avec ses disklabels) hdb2 et suivantes Slackware Linux / disque 3 : USB externe 40GB sda1 partition NTFS Pour faire simple, j’ai descendu l’image ISO du DVD depuis un miroir2 de Slackware, ou bien en utilisant un fichier torrent3 officiel. 1 Resumé des étapes 1. extraire bzImage et initrd.img du DVD. Ces fichiers se trouvent dans les répertoires kernels et isolinux respectivement. 2. dire à GRUB de charger le noyau bzImage et l’initrd.img. 3. avant d’exécuter le setup, monter la partition où se trouve l’image ISO, et monter cette image ISO dans un dispositif loop. 4. installer en indiquant la route du répertoire slackware ou slackware64 comme source des fichiers. 5. créer un initrd.gz. 6. ça y est. Nous allons entrer dans les détails. 1 Extraire bzImage et initrd.img bzImage est le noyau (kernel). Il est généralement conseillé d’utiliser celui se trouvant dans le répertoire huge.s ou hugesmp.s du DVD, vu qu’il contient tous les modules nécessaires. initrd.img est un système Linux minimal, contenant tout le nécessaire pour installer le système. L’extraction sous Windows est aisée avec 7-zip4 : il suffit d’ouvrir l’ISO, localiser les fichiers et dire “copier à...”. Il est aussi possible de les descendre directement du Web, depuis n’importe quel miroir de Slackware. Je les laisse dans le répertoire C :\boot correspodant à GRUB4DOS5 . Sous Linux ou sous un *BSD, il suffit de la monter dans un dispositif loop. 2 Charger le noyau bzImage et l’initrd.img via GRUB Note : si GRUB n’est pas installé sur la machine, Super Grub Disk6 peut être utile. Il faut indiquer à GRUB quoi et comment démarrer. Dans mon cas, bzImage et initrd.img sont dans la première partition du disque dur (Windows), dans le répertoire C :\boot. Nous lui disons donc : root (hd0,0) kernel /boot/bzImage ro vga=791 initrd /boot/initrd.img boot Ceci charge le noyau et démarre le système d’installation contenu dans l’initrd.img : 2 root (hd0,0) indique le disque où chercher : première partition du premier disque dur kernel /boot/bzImage ro vga=791 charge le noyau en mode lecture seule (l’option vga es . . . optionnelle) initrd /boot/initrd.img localise l’initrd boot voilà, on a tout les éléments, alors on démarre On peut écrire directement dans la ligne de commandes de GRUB : quand le compte à rebours apparaı̂t, on presse C pour y accéder. Sinon, on peut aussi éditer une entrée existante (sélectionner l’entrée et presser E-edit) pour le démarrage normal de Linux et la modifier (il s’agit d’une modification temporaire), et à la fin presser B (boot). 3 Monter l’image ISO Avant d’exécuter le setup, on peut passer à une autre console (avec Alt+F2 par exemple). On va monter l’image ISO. D’abord il faut créer deux répertoires qui vont servir de points de montage : mkdir /hd /iso Il faut éviter de les créer dans /mnt vu que ce point de montage est utilisé par le système d’installation. Ainsi donc on les crée à la racine (travaillant dans une partition virtuelle, rien n’est réellement créé sur le disque physique. . . ). On monte la partition où se trouve l’image ISO. Dans mon cas c’est un disque dur externe formaté en NTFS : mount -t ntfs -r /dev/sda1 /hd Et on monte l’image ISO : mount -t iso9660 -o loop,ro /hd/os/slack/13.0/slackware64-13.0-install-dvd.iso /iso (remplacer la route os/slack/13.0/... par celle qui correspond) À partir de maintenant, le contenu de l’image ISO fait partie intégrante du système de fichiers, et est visible avec un simple ls -l /iso. 4 Installer Slackware On revient à la première console (Alt+F1) et on écrit la commande setup. L’installation normale de Slackware commence. Lorsqu’il demande d’où on veut installer, on sélectionne “Install from a pre-mounted directory” (installer depuis un répertoire déjà monté) en indiquant la route /iso/slackware64. L’installateur ira chercher les paquets depuis l’image ISO préalablement montée, et tardera très peu, vu que l’accès au disque dur est beaucoup plus rapide que l’accès à un DVD ou au réseau. Personnellement, une fois le système installé, je redémarre la machine et le système d’installation. 3 5 Créer initrd.gz Il est conseillé de lire d’abord le document README.initrd situé à la racine du DVD. Pour pouvoir démarrer le système d’exploitation, avec les noyaux 2.6 génériques, il est généralement nécessaire d’avoir un initrd. Dans mon cas, j’utilise le système de fichiers reiserfs et le noyau generic-smp. Il faut d’abord s’assurer d’avoir installé les paquets suivants, du répertoire slackware/a ou slackware64/a : – mkinitrd-. . . – kernel-generic-. . . – kernel-modules-. . . Au besoin, on s’assure de monter quelques partitions nécessaires (comme /, /usr, /usr/local, et peut-être d’autres) dans /mnt : mount /dev/hdb2 /mnt mount /dev/hdb6 /mnt/usr mount /dev/hdb7 /mnt/usr/local (naturellement, les partitions dépendent du système. . . ) Ensuite on fait : chroot /mnt On est maintenant en train de travailler sur le système installé. Il peut être nécessaire de monter la /proc : mount -t proc none /proc On change de répertoire : cd /boot et on exécute mkinitrd : mkinitrd -c -k 2.6.29.6 -r /dev/hdb2 -f reiserfs -m reiserfs -k 2.6.29.6 est la version et le type du noyau -r /dev/hdb2 la partition où se trouve la racine / -f reiserfs le système de fichiers de la racine -m reiserfs charger le module reiserfs (voir la documentation pour des cas différents) mkinitrd renvoie un numéro et crée un fichier nommé initrd.gz. 4 6 Redémarrer la machine On peut maintenant redémarrer la machine et démarrer notre Slack depuis le disque dur. Il ne manque plus qu’à la configurer. Enjoy ! Notes 1 http://www.slackware.com http://www.slackware.com/getslack 3 http://www.slackware.com/getslack/torrents.php 4 http://7-zip.org 5 https://gna.org/projects/grub4dos/ 6 http://www.supergrubdisk.org/ 2 5