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

Documents pareils