Trucs en vrac

(Écrit en orthographe recommandée. Voir note en bas de page)



J'ai mis ici divers problèmes que j'ai eus ainsi que les solutions que j'ai trouvées, et divers trucs et astuces qui pourront rendre service, mais pour lesquels je n'ai pas eu le temps de faire un article. Donc, le classement est plus qu'approximatif. Bonne lecture.

  • Mise à jour impossible de programmes sous Debian

 J'avais installé une Debian testing en mars 2005 (à l'époque de la Sarge donc) et je voulais mettre à jour des paquets et en installant d'autres (en restant en testing).
J'ai fait donc les formules magiques :
apt-get update (aucun message d'erreur)
 et ensuite j'ai tenté d'installer konversation :
#apt-get install konversation
 me répond que des paquets vont être installés et d'autres enlevés dont initrd-tools kernel-image-2.4.27-speakup
Rien que ça... Et en plus je ne vois pas kernel dans la liste de ce qui va être installé... Pas très rassurant. Mais j'imagine qu'ils savent ce qu'ils font.
 Et comme parfois j'aime vivre dangereusement et qu'en plus le choix par défaut est Oui [O/n]. Je fais Entrée et je croise les doigts. Réponse :
E: Cette installation va temporairement nécessiter l'enlèvement du paquet
essentiel e2fsprogs en raison d'une boucle entre les champs Conflicts et
Pre-Depends. C'est souvent une mauvaise chose, mais si vous souhaitez
réellement le faire, activezl'option APT::Force-LoopBreak.
E: Internal Error, Could not early remove e2fsprogs

 Oui, mais non. Je ne souhaite réellement pas le faire. Mais je me pose une
question : Est-ce possible d'installer konversation sous Debian ? Et comment ?

Continuons le combat. Après avoir fait une mise à jour de k3b sans problème, je tente la
même chose avec xcdroast :
# apt-get install xcdroast
 Pareil pour les paquets qui doivent être enlevés (version longue en fin de
mail)
Les paquets suivants seront ENLEVÉS :
  initrd-tools kernel-image-2.4.27-speakup
 Pareil, je prends le choix par défaut Oui et je ferme les yeux en pensant
très fort à autre chose...
E: Cette installation va temporairement nécessiter l'enlèvement du paquet
essentiel e2fsprogs en raison d'une boucle entre les champs Conflicts et
Pre-Depends. C'est souvent une mauvaise chose, mais si vous souhaitez
réellement le faire, activezl'option APT::Force-LoopBreak.
E: Internal Error, Could not early remove e2fsprogs

Là-dessus, j'essaye ce qui est dit en lançant la commande :
apt-get install -o apt::Force-LoopBreak=true e2fsprogs

et je reçois un message des plus alarmants qui me coupe vraiment l'envie de continuer :
"You are running a kernel (version 2.4.27-speakup) and attempting to remove
  the same version. This is a potentially disastrous action. Not only
  will /boot/vmlinuz-2.4.27-speakup be removed, making it impossible to boot
  it, (you will have to take action to change your boot loader to boot
  a new kernel), it will also remove all modules under the directory
  /lib/modules/2.4.27-speakup. Just having a copy of the kernel image is not
  enough, you will have to replace the modules too.

    I repeat, this is very dangerous. If at all in doubt, answer
    no. If you know exactly what you are doing, and are prepared to
    hose your system, then answer Yes.
Remove the running kernel image (not recommended) [No]?"

Solutions ? En fait, il ne manquait pas grand-chose :
apt-get -o APT::Force-LoopBreak=1 --fix-brokeninstall e2fslibs
et je n'ai pas eu de message d'erreur. Par précaution, je n'ai activé cette
option que pour le paquet bloquant (inutile de le faire pour la MAJ
complète).
J'ai même pu installer des programmes ensuite et faire la mise à jour (elle est pas belle la vie ?)

Tant que j'y suis, je fais passer les façons de "régler" le problème que j'ai
vues sur le Net :
*       utiliser aptitude qui gèrerait mieux les problèmes de boucles qu'apt (pas essayé)
*       Ajouter dans le fichier /etc/apt/apt.conf la ligne suivante :
APT::Force-LoopBreak "1"
et faire ensuite un apt-get -f install e2fsprogs
Effacer ou commenter la ligne en question juste après, on n'est jamais trop prudent.
*       Le supprimer et le réinstaller avec dpkg ainsi :
dpkg -i --force-all e2fsprogs
faire de même avec les dépendances qui vont s'afficher et terminer avec un simple apt-get install
Voir http://forums.knoppix-fr.org/viewtopic.php?id=9948
Bonne chance (faites des sauvegardes et ayez sous la main un OS de secours).
  • Ouah!! Plus moyen de redémarrer Windows depuis que j'ai installé Linux :-(

J'ai retaillé la partition Windows avec diskdrake. Tout semble s'être bien passé, j'arrive toujours à lire les données depuis Linux. Mais au moment de redémarrer Windows, tintin ! J'ai la mire Windows, mais rien d'autre. Les outils de dépannage de la disquette de secours (MS-DOS) ne sont d'aucune utilités, puisqu'ils n'arrivent pas à accéder au disque C:\. Par contre, ce qui est rassurant, c'est qu'on peut tout lire depuis Linux (installé ou sur CD ou disquette). J'ai jeté un coup d'oeil à mes partitions avec fdisk (de Linux) ou cfdisk : la partition Windows est passée en FAT12 au lieu de FAT32 !!! J'ai remis la partition en FAT32 (sans aucun problème de perte de données : ça ne formate pas) et au reboute, ça a marché. Plusieurs linuxiens ont eu ce problème et l'ont résolu de la même manière (surement un bogue de diskdrake;-)

Windows Me (ainsi que 95 et 98) refuse de s'installer (et de démarrer) ailleurs que sur la première partition du premier disque dur (maitre). Ce qui fait que si pour une raison ou une autre vous décidez de mettre ce disque dur en esclave, Windows refusera obstinément de démarrer. Or il est possible de contourner le problème grace à lilo ou à grub.  J'ai fait le test avec grub. Normalement, pour démarrer Windows, il faut dire ceci à grub :
root (hd0,0)            ---->Indique la partition où se trouve l'OS à amorcer (hd0,0) = hda1
chainloader +1      ----> Indique qu'il passe la main au chargeur de démarrage qui s'y trouve (celui de Windows ici)

Si on installait (ou déplaçait) Windows sur le deuxième disque dur, il suffirait de mettre (hd0,1) au lieu de (hd0,0). Mais Windows refuserait quand même (il ne veut pas être ailleurs que sur la première partition du première disque dur, il ne veut pas. Inutile d'insister.) L'astuce consiste donc à lui faire croire qu'il s'y trouve ;-) grâce à ces lignes dans grub qui vont "inverser" les deux disques.
map (hd0) (hd1)
map (hd1) (hd0)

Les lignes du fichier menu.lst qui permettent d'amorcer Windows sont donc :
map (hd0) (hd1)
map (hd1) (hd0)
root (hd0,0)
chainloader +1

Attention ! Il y encore quelques impératifs : la partition doit :
  • être marquée "amorçable" avec fdisk ou cfdisk
  • obligatoirement être primaire (et non pas logique)
  • avoir pour nom hda1 hdb1 hdc1... Même si la partition en question occupe le tout début du disque dur, ce ne sera pas suffisant. Exemple, si fdisk -l /dev/hdb vous affiche ceci :
Device Boot      Start         End      Blocks   Id  System
/dev/hdb2   *           1         893     7172991    b  W95 FAT32
/dev/hdb1             894        1148     2048287+  83  Linux
/dev/hdb3            1149        2423    10241437+  83  Linux

vous voyez que la partition Windows occupe le début du disque dur (1       893). Et pourtant, Windows ne démarrera pas. Le remède est simple : il suffit de d'effacer la table des partitions avec fdisk (de Linux ! j'insiste, et ce n'est pas du tout par chauvinisme) ou cfdisk (avoir imprimé la sortie de fdisk -l /dev/hdb), puis de recréer la table des partitions avec *exactement* les mêmes dimensions, mais en faisant en sorte que la partition Windows soit nommée hdb1 (il suffit de la créer en premier). Le résultat sera donc :

Device Boot      Start         End      Blocks   Id  System
/dev/hdb1   *           1         893     7172991    b  W95 FAT32
/dev/hdb2             894        1148     2048287+  83  Linux
/dev/hdb3            1149        2423    10241437+  83  Linux

Ce coup-ci, Windows devrait être amorçable avec :
map (hd0) (hd1)
map (hd1) (hd0)
root (hd0,0)
chainloader +1



On peut formater une disquette en mode texte. Mais les outils graphiques sont bien utiles aussi. J'en connait deux : kfloppy et gfloppy.

 Il y a une commande exprès, c'est supermount avec les options enable ou disable. Donc si vous voulez activer le supermount, il vous faut taper (sous root) supermount enable et si vous voulez le  désactiver, il vous faut taper supermount disable. Vous verrez apparaitre à l'écran tout un série de lignes : en fait c'est votre nouveau fichier fstab tel qu'il devrait être. Oui, parce qu'il n'a pas été récrit : pour le modifier réellement, il faut rajouter l'option -i. Ce qui donne ceci: #supermount -i enable ou #supermount -i disable

 Si vous ne voulez pas modifier tous les lecteurs amovibles, vous pouvez spécifier les lecteurs que vous voulez modifier avec l'option -m. Par exemple vous ne voulez désactiver le supermount que sur le lecteur de disquette. Vous faites #supermount -i -m=/mnt/floppy disable

Vous pourrez faire ça en mode graphique dans le Centre de Control Mandrake (mcc ou DrakConf)

Une fois ceci fait, vous ne verrez aucun changement (génial non ?). Pour activer ces changements, il vous faut redémarre l'ordinateur. Pffff!! Mais non, je plaisante (quoi que ça marche), ce n'est pas nécessaire : il faut démonter le périphérique concerné, puis le remonter (sous root toujours).

Mais pour que le fichier soit pris en compte par le système, il faut démonter le périphérique concerné, puis le remonter. (sinon, on ne voit aucun changement).

Donc pour activer les changements sur le lecteur de disquettes, faire :

#umount umount /mnt/floppy (vérifier en lançant la commande deux fois jusqu'à obtenir le message d'erreur "umount: /mnt/floppy/ :n'est pas monté".
Enfin, remonter à la main (sans le supermount donc) avec :
mount /mnt/floppy

Et là ça devrait être bon. Normalement...

Ah j'allais oublier : je suis tombé sur un bogue la commande supermount :
Avec le lecteur de cdrom, je me suis rendu compte que le fichier fstab n'avait pas étémodifié avec :
#supermount -i enable

alors qu'il l'est avec :
#supermount -i disable

Va comprendre...

Alors évidemment, le démontage, montage n'a aucun effet.
Bon, pas de panique : il suffit de retoucher le fichier à la main :-( ou alors d'utiliser mcc et d'aller dans les "Points de montage", de choisir le périphérique et de cocher Options -->Supermount et de décocher les autres cases. Ouf !!!

Dans ce qui suit, je veux parler de CD contenant des pistes audio et une piste de données. J'ai eu un problème un jour en voulant copier un CD de musique (du groupe "La oreja de Van Gogh") : lors de la copie xcdroast par en vrille et mon graveur se bloque, m'obligeant à rebouter pour le récupérer. C'est alors que j'ai réalisé que  c'était un CD mixte. J'ai pensé un moment que ce CD contenait un protection contre la copie, mais comme d'une part il était lisible sur mon PC et que je pouvais extraire les pistes sans problème, le blocage n'était surement pas là, et ce d'autant plus que Nero me le copiait sans difficulté. Faire un CD mixte n'est pas très compliqué avec cdrecord (voir le man) : c'est encore plus simple avec gcombust. Le hic, c'est que la piste de données doit obligatoirement être au début, ce qui a pour effet :
  1. de commencer le disque sur une piste de données (bonjour les crachouillis du style "Radio Cric-crac")
  2. de décaler les pistes audio :(
L'astuce est décrite dans le man de cdrecord (Nero utilise le même truc, mais il le fait de façon entièrement automatique et transparente lors de la copie de cd CD et mon CD du commerce était construit de la même façon). Il faut faire un CD multissession : 
Ce qui a pour effet de rendre la piste de données illisible pour le lecteur audio du salon ou de la voiture (ainsi que kscd) qui ne lise que la première session, tout en laissant la piste de donnés lisible sur le PC (sauf si le lecteur est très vieux et ne lit pas les multissession).
C'est tout simple ! Et pourtant c'est peu connu.
  1. Fichier par fichier. Avec mc, il suffit de se positionner sur le fichier rpm, de faire entrée et on navigue dans l'archive rpm (comme konqueror le fait avec une archive tar). Il n'y a plus qu'à copier le fichier désiré dans le répertoire de son choix avec la touche F5.
  2. Si on veut désarchiver tout le rpm, il suffit de lancer l'enchainement de commandes suivant :
rpm2cpio /chemin/paquet.rpm | cpio -idv
et le paquet rpm sera désarchivé dans le répertoire courant. Un conseil, créez un répertoire exprès et mettez-vous y dedans avant de lancer l'enchainement de commandes.

Cette manip peut-être intéressante par exemple si vous détruisez par erreur votre noyau :-( lors d'une compilation. Il suffit de la désarchiver à partir du CD d'installation (à partir d'un autre poste, ou du même poste depuis un système de secours).



logo orthographe recommandée

N.B. L'Académie française a approuvé à l'unanimité un certain nombre de rectifications.
Ces rectifications sont désormais inscrites dans les programmes du ministère français de l'éducation nationale (BO n°5 du 12 avril 2007).
Pour en savoir plus http://www.orthographe-recommandee.info/

Attention ! Ces rectifications ne sont PAS de simples tolérances, mais fixent la NOUVELLE orthographe de certains mots.