How-To : Ubcd4win + Debian sur une clé usb (méthode pour feignant) 22/08/2009
Le but de ce how-to
L'idée est de réaliser une clé usb capable de booter à la fois ubcd4win (et différentes images comme memtest ou windiag) et une distribution linux.
Nous allons installer une debian standard sur une partition séparée. Ceci nous permettra d'installer tous les paquets dont on peut avoir besoin (comme partimage, gparted, etc) sans avoir besoin d'une image bootable pour chacun des outils.
Ceci n'a rien a voir avec l'utilisation d'une distribution "live", commme knoppix ou slax, et présente des avantages et des inconvénients :
- C'est une distribution standard, pas vraiment faite pour tourner depuis un disque flash, et qui ne se charge pas dans la RAM. Les performances ne seront donc pas terribles.
- C'est moins sûr qu'un système de fichers en lecture seule.
+ C'est beaucoup plus facile à mettre à jour et à personnaliser, même comparé à des distributions qui offrent un mode "persistant".
En bref
Grosso modo, cela consiste à :
- installer le système généré par ubcd4win sur la première partition, avec grub4dos comme boot manager, en utilisant le plugin interne "ubcd4win to usb".
- installer debian sur la seconde partition, avec grub sur le secteur de démarrage de cette partition, en utilisant l'installateur debian standard
- chainloader grub4dos et grub afin que le système puisse tourner correctement depuis cette partition
Ceci n'est qu'un exemple de ce que l'on peut faire. Ce n'est probablement pas la méthode la plus rapide ni la plus eficace. Elle a néanmoins le mérite d'être (assez) simple : pas de debootstrap, pas d'installation manuelle de grub...
Pré-requis :
- Evidemment, une clé usb. 2GB me semble le minimum absolu, 4GB serait plus adapté.
- Un système Windows avec ubcd4win installé
- Un système Linux
- VirtualBox ou VMWare*
*Vous pouvez vous débrouiller sans, mais cela vous épargnera beaucoup de temps perdu et de soucis.
Mon environnement réel pour ce tuto consiste en un PC de bureau sous Debian, qui est l'hôte VirtualBox, et une machine virtuelle Windows XP
N'importe quelle combinaison de ce genre devrait faire l'affaire (deux "vrais" PC, linux virtualisé sur windows, linux et windows virtualisés sous mac, un live cd linux booté depuis une machine virtuelle tournant sous windows, ...)
Ma clé est une PNY de 8GB.
Etape 1 : Créer la partition pour accueillir ubcd4win
J'utilise ici gparted sous debian, car XP ne peut pas nativement partitionner un disque amovible autrement qu'en créant une seule partition qui prend tout le disque.

Si vous voulez savoir comment faire ceci sous windows, jetez un coup d'oeil à : http://www.lancelhoff.com/multi-partition-a-usb-flash-drive-in-windows
Etape 2 : Installation d'ubcd4win sur la clé
Branchez votre clé sur votre machine windows !
Lancez ubcd4win et activez/désactivez les plugins à votre convenance (on n'entrera pas ici dans les détails de l'utilisation d'ubcd4win)
N'oubliez pas de cocher "create iso image" car c'est l'étape où ubcd4win réordonne nu2menu. Si cette étape n'est pas effectuée, vous risquez au final de vous retrouver avec un menu en pagaille et plein de doublons. Nous allons plutôt désactiver le plugin "build ISO" pour empêcher la création effective de l'image


Vous pouvez à présent fermer la fenêtre des plugins et lance la compilation de votre distrib ubcd4win. Vous avez le temps d'aller boire un café ou de travailler un peu, c'est assez long !
(Bien sûr cette étape est facultative si vous avez déja effectué la compilation auparavant)
Lorsque c'est fini, rouvrez la fenêtre des plugins, sélectionnez "ubcd4win to usb" et cliquez sur "config"

Cochez bien "enable disc format" et n'oubliez pas de donner un label à votre partition. La mienne s'appelle UBCD1 (bizarre pour une installation USB, mais je n'aimais pas trop UBUSB).

Vous avez déja une clé bootable sur ubcd4win, grâce aux développeurs qui nous ont bien maché le travail.
Etape 3 : Installer Debian
Il vous bien évidemment télécharger une image de cd d'installation, si vous ne l'avez pas déja fait. Pour moi ce sera “debian-40r5-i386-netinst.iso”.
Je vous conseille fortement d'effectuer ce qui suit en utilisant VirtualBox ou VMWare, car c'est à la fois plus facile et plus sûr (et que ça vous permettra de faire autre chose pendant les interminables moments où il n'y a rien d'autre à faire qu'à contempler les barres de progression : 2%...3%...4%...). Vous pouvez néanmoins insérer votre clé dans votre pc "réel" et redémarrer depuis le cd d'installation si vous y tenez vraiment. Dans ce cas, vérifiez très attentivement que vous installez bien sur la bonne partition !
Créez dans VirtualBox une machine virtuelle, sans disque dur attaché, en outrepassant gaillardement l'avertissement sur les problèmes que pourrait rencontrer la machine virtuelle au démarrage. Attachez à la machine à la fois la clé usb et l'image iso d'installation
Ma machine virtuelle s'appelle "temp":



Au lancement, votre machine virtuelle devrait démarrer depuis le cd d'installation
A l'écran de boot, tapez "expert" avant d'appuyer sur entrée. Bien que ce ne soit pas absolument obligatoire, cela vous donnera plus de choix lors de l'installation (comme choisir une distribution stable/testing/unstable ou ne créer que l'utilisateur root).

Connectez la clé usb à la machine virtuelle (depuis Périphériques->Périphériques USB dans le menu de la machine virtuelle)
Lancez vous dans l'installation (choix de la langue, disposition du clavier, réseau, etc...). Les options par défaut suffisent généralement.
Arrivé à l'étape du partitionnement, choisissez partitionnement manuel et créez une partition primaire de type ext2 dans l'espace libre disponible sur la clé, montée comme "/". Vous pouvez aussi utiliser le fat32, mais il est déconseillé d'utiliser l'ext3 ou une autre système de fichier avec journalisation, ce qui entraînerait trop d'I/O su la clé.
Evidemment, vous pouvez choisir un schéma de partitionnement différent, comme une partition home séparée, mais gardez à l'esprit que ce n'est qu'une "trousse à outils" que vous cherchez à construire, pas un environnement de bureau !
N'oubliez pas de noter le nom de la partition sur laquelle vous êtes en train de lancer l'installation (pour moi "/dev/sda2")

Passez outre l'avertissement de l'installeur sur l'absence de swap. Là encore, un espace swap sur une clé usb risquerait de provoquer trop d'écritures sur le disque et de l'user prématurément.
Choisissez un mot de pass root et créez (ou non) un utilisateur standard. Même si ce n'est pas très sûr, je considère pour ma part qu'étant donné l'usage purement occasionnel et de dépannage que je fait de cette installatiion, il n'y a pas grand risque à rester root.
Rapellez-vous que nous voulons garder un système aussi léger que possible. Désactivez donc le "popularité contest" et décochez tout lors du choix des paquets, même le "système standard". Vous installerez les paquets dont avez besoin plus tard, selon vos besoins.
L'ETAPE IMPORTANTE
L'installation de grub. Par défaut, l'installeur vous propose d'installer grub sur le MBR du premier disque dur. Ce que nous ne voulons pas, car ça sèmerait la pagaille partout. Donc pensez bien à sélectionner NON à l'écran suivant.

Vous pouvez donc spécifier que vous voulez installer grub sur le secteur de démarrage de la partition qui contient votre installation debian. Celle que vous avez formaté et monté comme "/" à l'étape partitionnement (ou comme /boot si vous avez pris des fantaisies). Si vous avez suivi le même schéma de partitionnement que moi, cela devrait être la deuxième partition de votre clé usb, autrement dit /dev/sda2
L'installation proprement dite est maintenant finie, mais il nous faut régler quelques détails pour que tout puisse démarrer et tourner correctement.
Etape 4 : derniers ajustements et optimisations
Brancher la clé sur votre machine linux.
Il nous faut attribuer un label (appelé aussi "étiquette") à notre partition, pour empêcher grub et mount de se mélanger les pinceaux dans le partitionnement.
Vous pouvez pour ce faire utiliser gparted ou la commande e2label. J'appellerais la mienne UBCD2. Lorsque vous raccordez votre clé à un système linux, vous devez donc avoir deux partitions UBCD1 et UBCD2 (Windows ne verra que la première)
1. En tant que root, éditez le fichier /media/UBCD2/etc/fstab (adaptez le chemin à votre propre point de montage)
De :
/dev/sda2 / ext2 defaults,errors=remount-ro 0 1
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/sda1 /media/usb0 auto rw,user,noauto 0 0
/dev/sda2 /media/usb1 auto rw,user,noauto 0 0
A :
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/lock tmpfs defaults,noatime 0 0
tmpfs /var/log tmpfs defaults,noatime 0 0
tmpfs /var/run tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 1
La ligne "LABEL=..." spécifie à mount quelle partition contient le système, car la notation /dev/sda2 n'est pas valide dans le cas présent d'une clé amovible.
l'option noatime est là pour éviter que le système n'écrive la date dans le système de fichiers à chaque fois qu'un fichier est lu.
les lignes "tmpfs..." permettent d'écrire dans la RAM des fichiers dans lequel le système écrit très fréquemment.
2. Editez maintenant /media/UBCD2/boot/grub/menu.lst :
De :
root (hd0,1)
kernel /boot/vmlinuz-2.6.18-6-486 root=/dev/sda2 ro
initrd /boot/initrd.img-2.6.18-6-486
savedefault
root (hd0,1)
kernel /boot/vmlinuz-2.6.18-6-486 root=/dev/sda2 ro single
initrd /boot/initrd.img-2.6.18-6-486
savedefault
A :
kernel /boot/vmlinuz-2.6.18-6-486 root=LABEL=UBCD2 ro noresume
initrd /boot/initrd.img-2.6.18-6-486
kernel /boot/vmlinuz-2.6.18-6-486 root=LABEL=UBCD2 ro single noresume
initrd /boot/initrd.img-2.6.18-6-486
Vous pouvez aussi supprimer l'entrée relative à windows et modifier quelques unes des options par défaut de grub, pour éviter que votre configuration soit perdue lors d'une mise à jour du noyau. Vous repérerez facilement les lignes contenant ces options dans menu.lst, elles commencent par :
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
Voici les changement que j'ai effectués :
De :
A :
De :
A :
3. Chainloader les boot managers
Editez /media/UBCD1/menu.lst (encore une fois, modifiez le chemin en fonction du point de montage de votre première partition, celle qui contient ubcd4win) et ajoutez l'entrée suivante :
rootnoverify (hd0,1)
makeactive
chainloader +1
4. Vous y êtes !
Vous pouvez dès à présent redémarrer depuis votre clé usb et ajuster quelques petits détails :
ln -s /dev/null /etc/blkid.tab
rm -f /etc/mtab
ln -s /proc/mounts /etc/mtab
Vous devriez maintenant etre en mesure d'installer tout ce que vous voulez en utilisant apt. Je vous conseille d'installer localepurge, qui vous permet d'éliminer tous les fichiers de langues inutilisés, et de gagner ainsi de l'espace disque.
Je me répète un peu, mais gardez bien à l'esprit que vous êtes sur une clé usb. Essayez donc de conserver un système peu gourmand en espace disque et en ressources, en n'installant que des packages légers (Evitez, par exemple, un environnement de bureau KDE ou GNOME complet, et préférez des gestionnaires de fenêtres lights comme Openbox.)
Liens en rapport :
http://ubcd4win.com/forum/index.php?showtopic=9630 (en)
http://ubcd4win.com/forum/index.php?showtopic=11445 (en)
http://ubcd4win.com/forum/index.php?showtopic=9668 (en)
http://ubcd4win.com/forum/index.php?showtopic=11375 (en)
http://ubcd4win.com/forum/index.php?showtopic=11375 (fr)
http://feraga.com/node/25 (en)
http://www.debian-administration.org/articles/179 (en)
