Ho haï, I haz a shiny lappy
Par hr le vendredi 6 février 2009, 13:29 - système - Lien permanent
Maintenant que j'ai décidé de me débarrasser de brokuntu, il faut que je réinstalle un système sur mon portable. Ayant toujours aimé debian, mon choix se porte sur une lenny (message à canonical : "Même leurs versions de dev sont stables!!!"). Sans lecteur cd, j'opte pour une installation via clé usb. Et c'est là que se pose un petit problème, impossible de faire démarrer la machine sur une clé usb, la machine s'arrête sur un "Boot Problem" qui ne laisse aucun doute sur le soucis... Je vous livre la solution que j'ai trouvée si, et seulement si, vous lisez la suite (*cliffanger*).
Il semble que certains BIOS récent aient de petits problèmes avec syslinux(1), je vais donc détailler ma méthode pour installer une lenny en netinst par une clé usb.
ATTENTION : les manipulations décrites vont détruire toutes les données sur la clé usb.
Il faut commencer par installer les paquets nécessaires à nos manipulations : syslinux et dosfstools.
Si vous ne connaissez pas le périphérique correspondant à votre clé usb, branchez là dans votre machine puis :
# dmesg |grep -A 3 -i usb
Cette commande devrait vous permettre de repérer une ligne du type :
[624258.956080] sd 4:0:0:0: [sdb] 2015231 512-byte hardware sectors (1032 MB)
Ma clé usb est donc reconnue en tant que /dev/sdb.
Je vais maintenant utiliser le script mkdiskimage pour initialiser ma clé usb comme un support zip. Ce script a besoin d'avoir des éléments (nombre de têtes et de secteurs) de la géométrie de la clé en question.
# fdisk -l /dev/sdb Disk /dev/sdb: 1031 MB, 1031798272 bytes 32 heads, 62 sectors/track, 1015 cylinders Units = cylinders of 1984 * 512 = 1015808 bytes Disk identifier: 0xed9dc743 [...] # mkdiskimage -4 /dev/sdb 0 32 62
Le script mkdiskimage peut mettre du temps à s'exécuter, une fois qu'il est terminé, la clé doit avoir une unique partition /dev/sdb4 en FAT16.
La clé usb est maintenant prête à accepter les fichiers qu'il faut pour la faire démarrer et lancer l'installation. On installe donc syslinux(1), le noyau, le système de fichier de démarrage en RAM et une image de disque d'installation.
# syslinux /dev/sdb4 # mount /dev/sdb4 /mnt/ # cd /mnt # wget http://ftp2.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz [...] # wget http://ftp2.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/linux [...] # cat <<EOF >syslinux.cfg > default linux > append initrd=initrd.gz root=/dev/sdb4 > EOF default linux append initrd=initrd.gz root=/dev/sdb4 # wget ftp://ftp2.fr.debian.org/debian-cd/4.0_r6/i386/iso-cd/debian-40r6-etchnhalf-i386-netinst.iso [...] # cd && umount /mnt
Et voilà, la clé usb est maintenant prête à être utilisée pour installer la machine par le réseau. Il faut la connecter au portable, appuyer sur F12 pendant le démarrage et la sélectionner.
UPDATE:
Attention, à la fin de l'installation, je vous déconseille de redémarrer tout de suite. La clé usb est détectée comme /dev/sda lors de mon installation et mon disque en tant que /dev/sdb. Un petit passage en console (alt+F2) doit permettre de modifier les points de montage dans fstab, crypttab si besoin et menu.lst :
# chroot /target # vi /etc/fstab [... remplacer sdb par sda ...] # vi /etc/crypttab [... remplacer sdb par sda ...] # vi /boot/grub/menu.lst [... remplacer (hd1,0) par (hd0,0) surtout pour la valeur groot= ...]
I CAN HAZ DEBIAN
PS: Bouletcorp :