Partage de données et de configuration entre Windows et Linux

Lorsqu’il s’agit d’installer Windows et Linux en dual-boot, il est souvent intéressant d’aller un peu plus loin dans l’intégration des deux systèmes d’exploitation et de permettre à l’utilisateur de retrouver ses documents, sa musique, ses vidéos, ses e-mails (dans cet exemple Mozilla Thunderbird) et son calendrier (dans cet exemple Mozilla Lightning) quel que soit le système d’exploitation sur lequel il a démarré.

Comment faire ?

Voici ce que je fais en général dans les configuration dual-boot Windows/Ubuntu (mais la procédure est similaire pour d’autres distributions) que je met en place pour les personnes qui ne sont pas encore passées 100% à un système d’exploitation libre.

  1. (optionnel) je commence par exécuter mon script de post-installation afin que les codecs et polices Windows soient installés
  2. ensuite je rajoute quelques paquets qui seront utiles pour cet exemple (exécutez la commande suivante dans un terminal – applications/accessoires/terminal- ou cliquez sur les trois liens suivants si vous utilisez Ubuntu : apt://mozilla-thunderbird, apt://lightning-extension et apt://ntfs-config) :
    sudo aptitude install mozilla-thunderbird lightning-extension ntfs-config
  3. ntfs-config
    ntfs-config (attention à l'« ortograffe » ;-))

    vous pouvez maintenant exécuter la commande suivante dans un terminal, cochez la case en regard de votre partition Windows et tapez « windows » dans le champ à droite ; validez et profitez de cocher les deux cases sur l’écran suivant :

    sudo ntfs-config
  4. si ça n’a jamais été fait et que vous utilisez Thunderbird, lancez-le une fois (ne configurez rien, fermez l’assistant et Thunderbird)
  5. dans un terminal, copier/coller les commandes suivantes (cela déplace le point de montage de votre partition Windows hors de /media et évite d’avoir une icône inutile sur votre bureau) :
    sudo sh -c 'sed "s//media/windows//mnt/windows/g" /etc/fstab > /tmp/fstab && cp /tmp/fstab /etc/fstab'
    sudo umount /media/windows
    sudo mv /media/windows /mnt
    sudo mount /mnt/windows
  6. C’est là que cela devient intéressant ; il s’agit ensuite de faire des liens symboliques depuis votre dossier personnel qui pointent vers les dossiers correspondant sous Windows. Lorsque vous tapez les commandes suivantes dans le terminal, à chaque fois qu’il y a un mot entre « <> », il ne faut pas taper ce mot, ni les symboles «<» et «>», mais utilisez la touche tabulation plusieurs fois afin de faire apparaître les possibilités, puis, lorsque vous avez repéré le bon répertoire, commencez à saisir son nom, puis tapez encore une fois sur la touche tabulation pour compléter automatiquement le nom. Finalement notez que <dossier des utilisateurs> correspond en général « Documents and settings » sous XP et « Users » sous Vista.
    mv Documents Documents_old;mv Images Images_old;mv Vidéos Vidéos_old;mv Musique Musique_old
    ln -s /mnt/windows/<dossier utilisateurs>/<nom utilisateur>/Mes documents Documents
    ln -s /mnt/windows/<dossier utilisateurs>/<nom utilisateur>/Mes documents/Mes images Images
    ln -s /mnt/windows/<dossier utilisateurs>/<nom utilisateur>/Mes documents/Mes vidéos Vidéos
    ln -s /mnt/windows/<dossier utilisateurs>/<nom utilisateur>/Documents/Ma musique Musique
    mv Documents_old/* Documents/;mv Images_old/* Images/;mv Vidéos_old/* Vidéos/;mv Musique_old/* Musique/*
    rmdir Documents_old Images_old Vidéos_old Musique_old
  7. Maintenant que vos données sont mises en commun entre Windows et Linux, voici les instructions en ce qui concerne Firefox, les e-mails (Thunderbird) et le calendrier (Lightning) (Attention : copiez-collez ce qui suit quelque part parce que vous allez devoir fermer Firefox pour continuer et notez que les opérations suivantes suppriment votre profil Firefox et Thunderbird sous Linux au profit des versions sous Windows).
    cd .mozilla-thunderbird/<série de lettres et de chiffres>
    rm -rf *
    TB=/mnt/windows/<dossier utilisateurs>/<nom utilisateur>/Application Data/Thunderbird/Profiles/<série de lettres et de chiffres>
    for file in "$TB"/*; do ln -s "${file}"; done
    rm extensions
    cd ../..
    cd .mozilla/firefox/<série de lettres et de chiffres>
    rm -rf *
    FF=/mnt/windows/<dossier utilisateurs>/<nom utilisateur>/Application Data/Mozilla/Firefox/Profiles/<série de lettres et de chiffres>
    for file in "$FF"/*; do ln -s "${file}"; done
    rm extensions
  8. Vous pouvez maintenant rouvrir Firefox et Thunderbird et devriez retrouver les mêmes informations et la même configuration que sous Windows

Informations supplémentaires

Dans cette configuration il est important de comprendre que si la partition NTFS n’a pas été démontée correctement par Windows, elle ne sera pas montée sous Linux et les documents et profiles ne seront donc pas accessible (dans ce cas, il faut redémarrer sous Windows). C’est également le cas si vous mettez Windows en « Veille profonde » (hibernation).

SSH and telnet protocol handler for Firefox

I manage quite a lot of different computers, network devices, etc. As we are using an internal web based documentation system I thought it would be useful to be able to just click on ssh://user@thiscomputer.com and telnet://thisdevice.com links and have Firefox open a terminal where I’d be connected to this specific machine.

As with most things computer related in the Internet era, someone else had already just done that. I modified his script a little bit so it’ll work with links specifying ssh keys and port :

  1. save the following zsh script into a file (let’s call it ~/.scripts/firefox-handler.zsh) (if you don’t have zsh, install it using your package manager or fix the script to use whatever shell you want).
    #!/bin/zsh
    url=$1
    proto=${url//:*/}
    data=${${url//*:///}%/}
    
    #makes -i $HOME/.ssh/id_rsa_foo work
    data=${data//%20/ }
    data=${data//$HOME/$HOME}
    #/makes -i $HOME/.ssh/id_rsa_foo work
    
    /usr/bin/gnome-terminal -e "$proto $data"
  2. chmod +x ~/.scripts/firefox-handler.zsh
  3. in Firefox go to about:config and add the following two strings (right-click -> new -> string) network.protocol-handler.app.ssh and network.protocol-handler.app.telnet and put nothing as the value (for a yet unknown reason, it doesn’t work if you specify the path to your script right now)

Restart Firefox, you should now be able to click on ssh and telnet links and also type those URIs in your location bar and it should ask you with what application you want to open it, you can now browse to the location of the previously created script and check the box « don’t ask me again ». As an added bonus, you can also use those URIs as bookmarks which I find quite handy.