Olivier Chapuis � propos de l'auteur : Dans la vie l'auteur fait des math�matiques, en particulier de la logique, de l'alg�bre et de l'informatique th�orique. Il a d�couvert Linux que r�cemment et cela a �t� pour lui une vraie r�v�lation. Il aime Muriel et son hobby pr�f�r� est actuellement la plong�e sous-marine. Il aime aussi la Bretagne, la mer, le bateau, le ski et la bonne bouffe. �crire � l'auteur Sommaire: 1. Introduction 2. Principales �tapes 3. Pr�paratifs et donn�es du probl�me 4. Reconstruire la partition windows 5. Utiliser la <<nouvelle>> partition 6. Probl�mes References |
Il m'est arriv� un jour, environ 2 mois apr�s avoir install� Linux, de vouloir supprimer windows. La raison �tait simple je ne l'utilisais plus ! J'imagine qu'un certain nombre de d�butants sous Linux seront dans mon cas et j'ai �crit ce document pour les aider (les gourous peuvent tout de m�me le lire pour me conseiller des am�liorations). Si vous �tes dans ce cas deux strat�gies s'offre � vous.
La premi�re est de r�installer Linux. L'avantage de cette strat�gie est qu'avec un peu d'exp�rience avec Linux vous ferez de meilleurs choix lors de l'installation, en particulier en ce qui concerne la taille de vos partitions. Son principal d�savantage c'est que vous allez tout �craser. Vous pouvez rem�dier en partie � cela en sauvegardant tout ce qui n'est pas sur votre c�d�rom d'installation. Mais r�installer cette sauvegarde peut vous faire perdre du temps et de la sueur.
La deuxi�me strat�gie est tout d'abord de supprimer windows (ce qui est tr�s facile) puis d'utiliser la place disponible pour linux, c.-�.-d. faire du <<repartitionnement>> chose assez d�licate et peu document�. L'avantage de cette m�thode c'est que si elle r�ussie votre syst�me sera <<comme avant>> mais avec plus de place disque. Son deuxi�me avantage c'est que si elle �choue vous pourrez toujours utiliser la premi�re strat�gie. Dans ce document j'explique comment j'ai fait. Bien sur la m�thode peut d�pendre de votre configuration. En particulier si vous avez un �norme disque dur <<vierge>> j'imagine que l'on peut imaginer une strat�gie beaucoup plus sure et qui donne un meilleur r�sultat. Moi mon syst�me de sauvegarde c'est des disquettes 1,44 Mo. Dans tous les cas j'esp�re que la strat�gie expos�e ci-dessous pourra aider un d�butant.
Je tiens � remercier Olivier Tharan qui a bien voulu r�pondre avec quelques d�tails � un message post� dans fr.col.moderated et qui �tait une version -1 de ce document. Je remercie aussi Finn Bo Jorgensen et Chmouel Boudjnah pour leur r�ponse.
- Pr�paratifs : sauvegarder, consulter et prendre note de certains fichiers importants pour la suite. Lire la doc pour comprendre ce que l'on va faire. (section 3 ci-dessous).
- Supprimer windows (section 4 ci-dessous).
- Repartitionner, le plus d�licat (section 5 ci-dessous).
Avant tout sauvegardez l'essentiel. En particulier, les fichiers de configurations et son travail. Je ne dirais rien de plus la dessus.
Une �tape pr�liminaire est de comprendre ce que l'on va faire. Il y a parfois quelques explications sur les commandes et fichiers dans ce qui suit mais c'est tr�s incomplet. Il faut lire les mans ! Ici il s'agit de fdisk, mk2ext, cp (commande pas si stupide), lilo, lilo.conf et fstab (il y a aussi des mans pour certains fichiers de configuration). On trouve des docs tr�s d�taill�es sur lilo dans le r�pertoire /usr/doc/lilo-0.20/doc/ (si votre syst�me est bien install�). En particulier il existe un <<user guide>> de 46 pages ! Pour fdisk voir le fichier /usr/doc/util-linux-2.7/README.fdisk tr�s complet aussi. En �crivant ce document j'ai appris l'existence d'un mini-Howto tr�s utile pour ce qui nous concerne : Hard Disk Upgrade Mini How-To (je ne sais pas s'il existe une traduction en fran�ais).
Tout d'abord voici ce qu'�tait ma table de partition :
[olivier@snoopy olivier]# /sbin/fdisk -l (en su) Disk /dev/hda: 128 heads, 63 sectors, 788 cylinders Units = cylinders of 8064 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 397 1600672+ c Unknown /dev/hda2 398 398 601 822528 83 Linux native /dev/hda3 602 602 627 104832 82 Linux swap /dev/hda4 628 628 788 649152 83 Linux native |
On voit que windows est sur hda1, il n'est pas anormale que fdisk dise <<Unknown>> � propos de la partition FAT32. Mon noyau (� l'�poque un 2.0.34) sait g�rer ce type de syst�me de fichiers mais cela n'est pas le cas de mon fdisk. A titre indicatif voil� ce que donnait df (avec la partition dos mont�e).
[olivier@snoopy olivier]# df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda2 796065 506992 247947 67% / /dev/hda4 628351 226366 369528 38% /home /dev/hda1 1594456 850420 744036 53% /mnt/dos |
On va avoir � �diter deux fichiers de configurations /etc/fstab et /etc/lilo.conf. Voici � quoi ils ressemblaient.
[olivier@snoopy olivier] less /etc/fstab /dev/hda2 / ext2 defaults 1 1 /dev/hda4 /home ext2 defaults 1 2 /dev/hda3 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 user,noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 user,noauto,ro 0 0 none proc proc defaults 0 0 /dev/hda1 /mnt/dos msdos user,noauto 0 0 |
[olivier@snoopy olivier] less /etc/lilo.conf boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=500 image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hda2 read-only other=/dev/hda1 label=dos table=/dev/hda |
� partir de maintenant tout se passe en root. Pour des raisons psychologique je vous conseille de vous loger en root (pas en su dans votre compte). Si vous utilisez vi pour �diter il se peut qu'il faille utiliser w! pour sauver. Dans tous les cas je vous conseille de v�rifier que vos modifications ont bien �t� pris en compte (quitter votre �diteur et regarder le fichier avec less).
On va utiliser les commandes fdisk et mke2fs. Ces commandes agissent sur les partitions d'un disque dur ou de tout autre syst�me de sauvegarde. Il vaut mieux agir avec ces commandes sur des partitions qui ne sont pas mont�es. Le tout ce fait en trois �tapes.
- Si votre partition dos est mont� d�monter la: umount /mnt/dos.
- On lance fdisk. On change l'identit� de hda1: on dit � linux que cette partition sera maintenant une partition Linux native. Cela se fait avec la commande t (t, 1, 83). On regarde : p , la seul chose qui change c'est le Unkown qui devient linux native et le c qui devient 83. On quitte en sauvant: w. On re regarde: fdisk -l. En quittant fdisk j'ai eu le droit � un message d'erreur que voici:
The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. Re-read table failed with error 16: P�riph�rique ou ressource occup�.. Reboot your system to ensure the partition table is updated. |
Ce message est � mon avis normal et inoffensif: je n'ai pas red�marr�.
- Formater: mke2fs /dev/hda1. Plein de chiffres apparaissent puis cela compte un peu et hop windows 98 il n'y plus ! Les gens prudents rajouterons un -c en option pour faire une v�rification rapide des mauvais blocs.
Bon et bien voil� windows a disparu. Je n'�tait pas sp�cialement comptant � cause de cela (je n'ai personnellement rien contre win98, par contre Microsoft ...). Mais j'�tais content pour Linux ... <
Bon maintenant on a une partition de 1,5 Go avec rien dessus, une partition de 600 Mo avec /home et une partition de 800 Mo avec / (et une partition de swap de 100 Mo). Il y a en gros 100 Mo qui est dans mon /home/moncompte qui devrait �tre dans /usr/local/ (je voulais laisser de la place sur /dev/hda2) et il y a 10Mo dans /usr/local. On va d�placer / sur hda1 et mettre /usr/local sur hda2. Ce qui devait donner en gros:
Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda1 1600672 465000 1130672 29% / /dev/hda2 796065 110000 696065 13% /usr/local /dev/hda4 628351 40739 587612 6% /home |
De l'espace pour une dizaine d'ann�es ....
Bon il faut r�aliser cela. Pour pouvoir agir sur hda1 il faut la monter quelque part. En g�n�ral on utilise /mnt.
- On cr�e un nouveau r�pertoire sur /mnt, disons /mnt/tmp pour avoir quelque chose de propre pour monter hda1 (mount ne cr�e pas de r�pertoires: mkdir /mnt/tmp.
- On monte hda1 sur /mnt/tmp : mount -t ext2 /dev/hda1 /mnt/tmp (l� tout est clair -t ext2 indique le type du syst�me de fichier).
- On copie / sur /mnt/tmp/ en pr�servant sa structure: cp -ax / /mnt/tmp/. Pour l'option -a citons le man : <<Pr�server autant que possible la structure et les attributs du fichier original lors de la copie. Cette option est �quivalente � -dpR>>. Voir le man de cp pour la signification de d, p et R ce qui explique mieux le a. L'option -x demande d'ignorer les sous-r�pertoires qui se trouvent sur un syst�me de fichiers diff�rent de celui de d�part de la copie. Dans notre cas cela permet de ne pas copier /home sur /mnt/hda1). Cette op�ration de copie peut prendre du temps (15 min environ avec mon disque IDE et mon AMD K6 � 266), il est temps de sortir la phrase habituelle: allez prendre une grenadine, un caf� ou un double whisky en attendant.
- L� on a pas tout � fait le hda1 qu'il faut. � cause de l'option -x il nous manque deux r�pertoires (vides) qui sont /home et /proc. Donc mkdir /mnt/tmp/home et mkdir /mnt/tmp/proc. Ces r�pertoires sont des points de montages ils doivent �tre l� pour que /home (qui est sur hda3) et /proc soient mont�s sur la racine.
Bon l�, les choses se compliquent un peu. On a / (=/-/home) sur hda2 mais aussi sur /mnt/tmp/. On va pr�parer le red�marrage. Il s'agit d'�diter fstab et lilo.conf. Il faut bien se rendre compte que l'on va red�marrer avec le / qui se trouve sur /mnt/tmp/. Donc, en ce qui concerne fstab, le fichier que l'on va modifier est en fait /mnt/tmp/etc/fstab. Pour lilo.conf c'est diff�rent il faut �diter /etc/lilo.conf lancer lilo et aussi copier le nouveau /etc/lilo.conf sur /mnt/tmp/etc/lilo.conf (pour avoir un syst�me consistant). On peut aussi �diter seulement /mnt/tmp/etc/lilo.conf et relancer lilo en lui indiquant avec l'option -C qu'il doit choisir un autre fichier de configuration. J'ai choisi la deuxi�me m�thode.
- /mnt/tmp/etc/fstab
Ce fichier indique comment et où doivent �tre mont� ce qui est montable lors du d�marrage. Lorsque l'on va red�marrer on veut que la racine / soit celle de hda1, d'o� la premi�re ligne du /etc/fstab ci-dessous. Bien sûr il ne faut pas monter deux racines ! Comme on va avoir � travailler sur hda2 je la monte sur /mnt/tmp. Pour le reste il n'y a rien � changer.
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /mnt/tmp ext2 defaults 1 2 /dev/hda4 /home ext2 defaults 1 3 /dev/hda3 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 user,noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 user,noauto,ro 0 0 none /proc proc defaults 0 0 |
- /mnt/tmp/etc/lilo.conf.
lilo.conf est le fichier de configuration de lilo le petit programme qui se trouve sur le MBR. Je ne rentre pas dans les d�tails. S'il y a des gens qui n'utilisent pas lilo je leurs conseille tr�s fortement (lodalin est une absurdit� dans notre cas et pourquoi d�marrer avec une disquette de nos jour ?). Ici on indique juste � lilo que maintenant le noyau se trouve sur hda1 (il �tait avant sur hda2) et bien s�r on supprime ce qui concerne windows.
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=500 image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hda1 read-only |
- On relance lilo: /sbin/lilo -v -C /mnt/tmp/etc/lilo.conf. Le v c'est pour que lilo nous raconte un peut plus sa vie. Ici il est interdit de voir appara�tre un message d'erreur ! On a pas le droit de se tromper si on veut red�marrer. On doit voir quelque chose comme:
LILO version 20, Copyright 1992-1997 Werner Almesberger Reading boot sector from /dev/hda Merging with /boot/boot.b Boot image: /boot/vmlinuz-2.0.34 Added linux * /boot/boot.0300 exists - no backup copy made. Writing boot sector. |
- On red�marre. Quelques petits tests (df , fdisk -l , on regarde si le syst�me de fichiers est plac� comme on l'a sp�cifi�).
- On efface tout ce qu'il y a dans /mnt/tmp/, cela se fait comme cela: rm -rf * dans le r�pertoire /mnt/tmp. Ensuite on copie le r�pertoire /usr/local qui reste: cp -a * /mnt/tmp dans le cd /usr/local. On regarde si tout va bien puis on efface /usr/local: rm -fr * dans le r�pertoire /usr/local (attention il ne faut pas effacer le <<nom >> ou disons plut�t le point de montage local !).
- On �dite une nouvelle fois /etc/fstab: on change juste la 2�me ligne:
/dev/hda2 /usr/local ext2 defaults 1 2 |
- On red�marre. On fait quelques tests.
Et voil� op�ration termin�... J'avoue que j'�tais assez content surtout qu'apr�s j'ai test� pleins de programmes et tout marchait !
Et bien j'en ai eu un petit probl�me. Ce qui est ci-dessus n'est pas exactement ce qui c'est pass� mais une id�alisation. Un conseil que je peux vous donner c'est de comprendre un minimum ce que vous faites ce qui vous permettra de comprendre pourquoi cela ne marche pas et de r�tablir la situation. Un conseil que m'avait donn� Olivier Tharan �tait de red�marrer en single user (je n'ai pas fait cela car la seul doc que j'ai trouv� sur le mode single user est: <<regarder les fichiers du mode de d�marrage single user>> et j'ai eu un peu la flemme). Avant le premier red�marrage il est peut-�tre prudent d'avoir une bonne disquette de red�marrage (il faut peut-�tre qu'elle soit adapt�e � la situation et j'avoue ne pas savoir exactement comment la r�aliser....).
Voici le petit probl�me que j'ai eu. Avant le premier red�marrage j'avais fait presque ce qui est expliqu� ci-dessus. Mais lors du d�marrage au niveau du montage du syst�me de fichiers une suite de messages d'erreurs c'est mis � d�filer � toute vitesse. J'ai r�ussi � lire: /proc ... error ... error ... /home ... error (sans trace dans /var/log/messages). PPuis (ouf) l'invite de login est apparue. Je me loge en root et tout de suite
[root@snoopy root]$ df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda1 1548535 506977 961525 35% / /dev/hda2 796065 506992 247947 67% /mnt/tmp |
La maison n'avait pas �t� mont�. J'ai �dit� fstab, mais tout semblait normal. Ensuite j'ai eu la brillante id�e (le double whisky ?) de vouloir monter /home et j'ai eu le droit � un truc du genre <<pas de point de montage>>. � ce point, j'ai compris que je n'avais pas compris ce qu'�tait un point de montage et que j'avais un peut oubli� l'option x de cp (j'avoue avoir un peu honte). J'ai cr�� les bons points de montages: /home et /proc, et j'ai mont� ma /home et /proc pour voir si cela �tait OK. Puis l'op�ration c'est termin� comme expliqu� ci-dessus.
© Olivier Chapuis 1999
LinuxFocus1999 Contacter le Webmestre |