Pour la petite histoire il y a quelques jours, je me décide à sortir de ma retraite e-sportive et donc à casser un peu de Terran et de Protoss. Windows me voici ! Pour repartir sur des bonnes bases, j’installe les mises à jour du système et des logiciels ainsi que les derniers pilotes graphique. Un redémarrage plus tard c’est le drame, pas d’écran de login, ou plutôt un écran noir avec uniquement le curseur de la souris. Je vous épargne tous ce que j’ai entrepris pour régler le problème mais dans le lot, il y avait un chargement des paramètres par défaut du BIOS (la bestiole étant assez ancienne, j’en tire le maximum avec un overclocking pas piqué des hannetons qui peut parfois poser problème). Le problème fini par être réglé, mais quelques jours plus tard je me rends compte que l’un de mes disques de 2 Tio ne fait plus que 1 Tio ! Quelques tribulations googleiennes plus tard je tiens le coupable : le HPA made in Gigabyte.

Ma carte-mère est donc une Gigabyte GA-P965-DS3 qui propose une fonction fort louable de sauvegarde du BIOS, trop coooooool ! Sauf que ce fameux BIOS, il faut bien le sauvegarder quelque part, naïvement je pensais à une autre ROM sur la carte-mère, et bien que nenni, un sou étant un sou, la sauvegarde en question est stockée sur une partition d’environ 2000 secteurs spécialement créée par le BIOS sur l’un des disques durs, il n’y a pas de petite économie ! Alors pourquoi pas, avec des disques de plusieurs centaines voire milliers de Gio, on ne va pas pleurer pour un pauvre mibioctet. Sauf que chez Gigabyte (dont j’apprécie grandement les produits par ailleurs), on ne doit pas savoir que la capacité des disques durs double tous les 18-24 mois et du coup on ne pense pas qu’un jour notre sympathique fonctionnalité de sauvegarde de BIOS va devoir gérer des disques de plus de 1 Tio, on obtient alors des résultats fort amusants du genre : 1 Tio -> 33 Mio, 1,5 Tio -> 500 Gio et dans mon cas 2 Tio -> 1 Tio (source). Le chargement des paramètres par défaut du BIOS a donc réactivé cette option et privé par la même occasion mon fier bloc de fonte de la moitié de sa virilité, les disques durs aussi jouant à qui a la plus grosse. A ce stade, peu d’espoir de retrouver les données intactes, à peine s’autorise t’on à penser retrouver le tibioctet perdu.

On ne va pas faire durer le suspense plus que nécessaire, j’ai tout de même retrouvé l’espace disque perdu et gâteau sur la cerise, les données avec.

AVERTISSEMENTS avec pleins de points d’exclamation et de têtes de mort à l’intérieur et tout autour : les manipulations suivantes ne sont pas neutres et peuvent potentiellement atomiser vos données et dans une moindre mesure les supports de stockage. Merci de bien lire les instructions, de potasser un peu la documentation des outils employés, de vérifier chaque étape avant de valider. En cas de problème, rincer abondamment à l’eau froide et contacter un médecin (mon Doc étant parfaitement usurpé, je m’auto-dégage de toute responsabilité !).

Pré-requis :

  • Un PC
  • 2 disques de capacité identique (ou supérieure pour le deuxième)
  • Un live-CD HDAT2
  • Un live-CD GNU-Linux

Conventions :

  • sda : disque de 250 Gio (capacité utilisée dans la suite de l’article) avec le HPA actif
  • sdb : disque de 250 Gio (ou plus)

Voici donc la marche à suivre :

Pour commencer, faire une copie bloc à bloc du disque HPA-isé sur un autre de capacité supérieure ou égale, histoire d’avoir au moins une chance de revoir ses données (je ne l’ai personnellement pas fait, ayant des sauvegardes à jour !).

Par exemple, à l’aide d’un live-CD GNU-Linux, copier l’intégralité du disque sda vers sdb :

# dd if=/dev/sda of=/dev/sdb

Première solution : HDAT2

Il s’agit d’un programme DOS disponible sous forme de live-CD qui permet d’intervenir sur la configuration des disques durs et dans le cas qui nous intéresse d’identifier et supprimer le HPA.

J’ai honteusement repris les captures d’écrans du site original pour décrire la démarche :

 – Sélectionner le disque et vérifier que le HPA est bien actif dessus :

Indentifier le disque HPA-isé – Sélectionner l’entrée « SET MAX (HPA) Menu » :

Choisir le menu SET MAX (HPA)  – Dans le champs « New hidden », fixer le nombre de secteurs à 0 puis valider avec « S »

Désactiver le HPAil ne reste plus qu’à redémarrer et constater le retour de l’entièreté de l’espace disque.

Deuxième solution : hdparm

On va ici utiliser cette commande GNU-Linux qui permet tout comme HDAT2 de visualiser et modifier les paramètres de configuration des disques durs. Là encore on va passer par un live-CD GNU-Linux.

– Vérifier que le HPA est actif sur le disque sda et noter le nombre de secteurs utilisables et maximum :

# hdparm -N /dev/sda
 max sectors   = 488395055/488397168, HPA is enabled

 – On va maintenant utiliser le nombre maximum de secteurs possibles et donc supprimer le HPA :

# hdparm -N 488397168 /dev/sda

– Vérifier que la manipulation a bien fonctionné et redémarrer :

# hdparm -N /dev/sda
 max sectors   = 488397168/488397168, HPA is disabled

Liste des résolutions pour 2012 :

  • Recommencer à fumer
  • Continuer à arrêter le sport
  • Finir (enfin) une saison de Starcraft 2 en ligue diamant
  • Passer chez Free Mobile
  • Ne plus laisser mon chat traîner dehors (âmes sensibles…)
  • Et pour finir, faire évoluer mon environnement de bureau !

Du coup début décembre, j’ai pris un peu d’avance en migrant de Ubuntu 11.04 vers (surprise !) Mint 12 lors d’une période de travail un peu calme. Toujours pas convaincu par Unity et réellement curieux de tester Gnome-shell maintenant que sa personnalisation est grandement facilitée via les nombreux greffons disponibles, je me suis naturellement tourné vers Mint.

Concrètement, après quelques personnalisations ergonomico-esthétiques, j’ai facilement réussi à obtenir un bureau des plus convivial qui mêle mes anciennes habitudes Gnome 2 avec la philosophie Gnome-shell. Principale victime de cette transition, le dock AWN qui après quelques jours s’est retrouvé inutile face la redoutable efficacité du couple touche « Super/Windows + application ». Je ne vais pas épiloguer sur Mint 12, le Web est bourré d’analyses, tests, avis et tutti quanti. Le bilan est pour ma part, plus que positif, l’ensemble est cohérent, rapide, beau et réellement efficace. Alors il y aurait bien des petites choses à corriger et/ou ajouter comme par exemple l’impossibilité de ranger le contenu de la barre de fenêtre ou encore la navigation parmi les applications à l’aide des flèches haut/bas alors qu’elles sont alignées horizontalement mais je ne me fais pas de soucis. Le résultat ci-dessous :

Pour finir, un honteux copier/presque-coller du précédent article de la liste des applications que j’utilise au quotidien  :

Personnalisation :

  • des thèmes shell Dark Shine, window Equinox Evolution Rounded et GTK+ Mint-Z (dépôts ppa:webupd8team/themes, ppa:satyajit-happy/themes)
  • des icônes Faenza-Radiance  (dépôt ppa:tiheum/equinox)
  • la nouvelle police Roboto de Google pour Android 4
  • les greffons Gnome-shell suivants : system-monitor, noa11y, user themes, notifications, shutdown menu, window list
  • enfin des fonds d’écran encore récupérés chez Interfacelift

gnome-shell 02Passons donc aux logiciels que j’installe au niveau professionnel :

  • Lightning + DAVMail
  • Pidgin
  • Turpial
  • Remmina + greffons
  • Likewise Open : intégration du poste dans un domaine Windows
  • Terminator : remplace avantageusement le terminal
  • SRWare Iron : navigateur Internet secondaire
  • Virtualbox / VMWare Player : virtualisation
  • Truecrypt : cryptage des supports de stockage amovible
  • KeepassX : gestion des mots de passe
  • Zenmap : scanner de ports
  • Wireshark : capture de trames réseau
  • FileZilla : client FTP
  • Getting Things Gnome : gestion des tâches
  • yEd : Editeur de diagramme

Semi-professionnel :

  • Miro : gestion des podcasts (dont feu-TechnoIT)
  • Ubuntu-Tweak : configuration rapide l’OS
  • Y-PPA-Manager : ajout simplifié de dépôts
  • Deluge
  • VLC + vlc-plugin-pulse

Et pour finir quelques quelques astuces en vrac :

  • Restaurer la commande Alt + F2 : Paramètres Systèmes -> clavier -> raccourcis -> système -> afficher la fenêtre pour lancer une commande (cliquer puis appuyer sur les touches Alt+F2)
  • Lancer automatiquement des programmes au démarrage : Alt+F2 : gnome-session-properties
  • Régler le problème de sortie audio avec VLC : installer le paquet vlc-plugin-pulse
  • Modifier la taille de la police du panneau : éditer le fichier « /usr/share/themes/mon_theme/gnome-shell/gnome-shell.css » et modifier la valeur du paramètre « font-size » dans la partie « # panel »

 

 

Firefox_Sync_logo

Mise à jour : depuis Firefox 29, l'outil de synchronisation a changé afin de correspondre entre autres, aux besoins de Firefox OS. Du coup avec la méthode décrite ci-dessous, il n'est plus possible synchroniser avec un nouveau navigateur de version 29 et plus. Seule la synchronistaion des navigateurs déjà "attachés" au serveur continuera à fonctionner correctement mais jusqu'à quand, impossible de le savoir. Autant dire que cette méthode est obsolète et revolue. La bonne nouvelle c'est que Mozilla propose son nouveau serveur de synchonisation pour l'auto-hébergement, la mauvaise c'est que je ne suis pas parvenu à relier le navigateur et mon serveur. Pour l'heure, je vais donc confier mes données à Mozilla (si on ne peut pas leur faire confiance, à qui peut-on le faire sur le Web ? ), si d'aventure je parviens à une solution viable cela fera l'objet d'un nouvel article.

 

D’aucuns diront que je fais une fixation sur ce fameux serveur. D’aucuns auront raison car je ne suis pas satisfait de son installation et que ça me reprend les jours fériés. Le point délicat, c’est le serveur Apache dont le virtualhost me cause du soucis, le but était de ne pas utiliser plusieurs serveurs web et tant qu’à faire, de ne pas ouvrir de port supplémentaire dans le firewall (TCP 5000). Mais après un test concluant de la solution native, je me suis résolu à l’appliquer telle quelle (avec MySQL et en ajoutant quelques améliorations quand même), tant pis pour le trou supplémentaire dans mon Iptables et tant mieux pour mes jours fériés.

Pré-requis :

  • Un serveur GNU/Linux (ici Debian Squeeze i386)
  • Base de données MySQL
  • Un navigateur Mozilla Firefox (ici Nightly 11)/IceWeasel PC/Mobile (ici 8 )

Conventions :

  • prompt : # commande : exécuter la commande sous le compte root ou précédée de la commande « sudo »
  • prompt : $ commande : exécuter la commande sous le compte utilisateur

 

1. Installation

– Installer les dépendances :

# apt-get install python-dev mercurial python-virtualenv mysql-server build-essential libmysqlclient-dev

– Créer la base de données sync :

# mysql -u root -p
mysql> create database sync;
mysql> grant all on sync.* to sync identified by 'my_password';
mysql> flush privileges;
mysql> exit;

– Aller dans /var/www et télécharger la dernière version du serveur :

# cd /var/www
# hg clone https://hg.mozilla.org/services/server-full

– Renommer le dossier /var/www/server-full en /var/www/sync :

# mv /var/www/server-full /var/www/sync

– Se placer dans le dossier /var/www/sync et compiler le serveur :

# cd sync
# make build

– Installer Mysql-Python

# bin/easy_install Mysql-Python

– Configurer le fichier /var/www/sync/etc/sync.conf pour MySQL (directives [storage] sqluri et [auth] sqluri), le quota – 25 Mio pour prendre large, le serveur web (directive [auth] fallback_node) et SMTP (directive [smtp] sender) :

# nano /var/www/sync/etc/sync.conf
[global]
clean_shutdown = false

[captcha]
use = false
public_key = 6Le8OLwSAAAAAK-wkjNPBtHD41v5OmoNFANIa1JL
private_key = 6Le8OLwSAAAAAEKoqfc-DmoF4HNswD7RNdGwxRij
use_ssl = false

[storage]
backend = syncstorage.storage.sql.SQLStorage
sqluri = mysql://sync:my_password@localhost/sync
standard_collections = false
use_quota = true
quota_size = 25120
pool_size = 100
pool_recycle = 3600
reset_on_return = true
display_config = true
create_tables = true

[auth]
backend = services.user.sql.SQLUser
sqluri = mysql://sync:my_password@localhost/sync
pool_size = 100
pool_recycle = 3600
create_tables = true
fallback_node = http://my_server.net:5000/

[smtp]
host = localhost
port = 25
sender = my_account@email.net

[cef]
use = true
file = syslog
vendor = mozilla
version = 0
device_version = 1.3
product = weave

– Configurer le fichier /var/www/sync/development.ini pour changer l’emplacement des logs :

# nano /var/www/sync/development.ini
[DEFAULT]
debug = True
translogger = False
profile = False

[server:main]
use = egg:Paste#http
host = 0.0.0.0
port = 5000
use_threadpool = True
threadpool_workers = 60

[app:main]
use = egg:SyncServer
configuration = file:%(here)s/etc/sync.conf

#
# logging
#
[loggers]
keys = root,syncserver

[handlers]
keys = global,syncserver,syncserver_errors

[formatters]
keys = generic

[logger_root]
level = WARNING
handlers = global

[logger_syncserver]
qualname = syncserver
level = ERROR
handlers = syncserver,syncserver_errors
propagate = 0

[logger_syncserver_errors]
qualname = syncserver
level = ERROR
handlers = syncserver_errors
propagate = 0

[handler_global]
class = StreamHandler
args = (sys.stderr,)
level = DEBUG
formatter = generic

[handler_syncserver]
class = StreamHandler
args = (sys.stderr,)
level = INFO
formatter = generic

[handler_syncserver_errors]
class = handlers.RotatingFileHandler
args = ('/var/log/sync/sync-error.log',)
level = ERROR
formatter = generic

[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %Y-%m-%d %H:%M:%S

– Créer le dossier des logs /var/log/sync :

# mkdir /var/log/sync

– Créer un group sync :

# groupadd sync

– A ce stade, une petite modification par rapport au précédent tutoriel car nous allons cette fois créer un utilisateur weave que nous ajoutons à ce groupe (car le compte sync existait déjà sur mon serveur et étant lié à un exécutable du même nom, il mettait le bazar dans mes scripts) :

# useradd -d /var/www/sync -g sync -r -s /bin/bash weave

– Donner les droits sur les dossiers /var/www/sync et /var/log/sync à l’utilisateur/groupe sync :

# chown -R weave:sync /var/www/sync
# chown -R weave:sync /var/log/sync

– Ajouter une règle IPTABLES ouvrant le port TCP 5000 :

# iptables -A INPUT -p tcp -m tcp --dport 5000 -j ACCEPT

– Démarrer le serveur sync en arrière-plan pour le tester :

$ cd /var/www/sync
$ bin/paster serve development.ini &

– Si tout fonctionne, créer un script pour démarrer automatiquement le service :

# nano /etc/init.d/sync-server.sh
#!/bin/bash 

### BEGIN INIT INFO
# Provides:          Mozilla Sync HomeServer
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Mozilla Sync HomeServer initscript
# Description:       Mozilla Sync HomeServer
### END INIT INFO
 
MESSAGELOG=/var/log/sync/sync-messages.log
PID=`pidof -x -o %PPID paster`
 
case "$1" in
  start)
    echo "Starting Mozilla Sync HomeServer"
    [ ! -d $MESSAGEDIR ] && mkdir -p $MESSAGEDIR
    su weave -c "cd /var/www/sync/ && bin/paster serve development.ini &>$MESSAGELOG &"
    ;;
  stop)
    echo "Stopping Mozilla Sync HomeServer"
    kill $PID &>/dev/null
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"
esac
exit 0

– Rendre le script exécutable et ajouter le service :

# chmod 755 /etc/init.d/sync-server.sh
# insserv sync-server.sh

Pour le reste, référez-vous à l’article précédent.

Sources :

 

HDD-10mbPourquoi ? Pourquoi avoir recours à une telle gestion des disques sur notre serveur/poste de travail. Tout simplement car un collègue m’a récemment demandé conseil sur l’infrastructure informatique à mettre en place pour la création d’une TPE/petite-PME. Je lui ai donc répondu que les rats quittaient le navire, que de la part de … ça ne m’aurait pas étonné, mais toi, toi ! Disparais céans ou je te flagelle à coup de RJ45, fumier. Il a répliqué qu’il s’agissait d’un ami à lui qui heu, voulait heu, enfin tu vois, se lancer dans une activité heu, dans le tertiaire, voilà c’est ça, le tertiaire. Pleinement soulagé et rassuré quant à la loyauté et la droiture du collègue, je me confondais en excuse et lui promettais de réfléchir rapidement à la question, d’autant que son ami semblait pressé. Le sujet étant vaste et néanmoins bougrement intéressant, je m’arrête dans cet article à la problématique du stockage sur un serveur GNU/Linux, nul besoin d’un Windows pour cela, le but étant ici d’allier fiabilité (RAID1), flexibilité (LVM2) et sécurité (chiffrement LUKS).

Je précise d’emblée aux esprits chagrins que le but ici n’est pas de discourir sur la pertinence d’une solution donnée par rapport à une autre (RAID1 vs RAID5, NAS vs serveur multi-rôles, etc). L’idée est uniquement de détailler la procédure de partitionnement (même si le terme est un poil galvaudé) lors de l’installation de l’OS car contre toute attente, ce fut un peu laborieux. Je me heurtais systématiquement à un message d’erreur indiquant que GRUB ne pouvait s’installer sur /dev/sda (ni même sur /dev/sdb ou encore hd0). Soupçonnant une quelconque erreur dans ma méthode, j’ai testé différentes procédures (RAID1 + LVM, RAID1 + Chiffrement global, LVM + Chiffrement global et même RAID1 + LVM + Chiffrement séparé de chaque volume logique) sans le moindre problème. Ce n’est qu’en recommençant une n-ième fois que je me suis finalement rendu compte que la configuration de la partition /boot disparaissait au cours de la procédure…

Pré-requis :

  • Un serveur GNU/Linux (ici Debian Squeeze 64 bits)
  • 2 disques durs de même capacité (ici 8,6 Gio)

Conventions :

  • prompt : # commande : exécuter la commande sous le compte root ou précédée de la commande « sudo »
  • prompt : $ commande : exécuter la commande sous le compte utilisateur

En avant pour la visité guidée (je n’ai pas lésiné sur les captures d’écran, je vous préviens). Notez que les captures suivantes ont été réalisée sur une machines virtuelle KVM sous Proxmox mais ça ne change rien à l’affaire.

– Choisir le partitionnement manuel et créer au début de chaque disque une partition primaire de 256 Mio qui aura comme point de montage /boot. La partition de démarrage ne pouvant être chiffrée, on la traite à part.

Partitionnement manuelCréer une nouvelle table de partitionCréer partitionPartition de 256 Mio

Partition primaireCréer la partition au début du disque




















– Configurer ces 2 partitions en tant que volumes physiques pour RAID, valider les changements puis configurer le RAID logiciel. Créer un volume multi-disques RAID1 de 2 disques, sans disque de secours, puis sélectionner les 2 partitions des 256 Mio. Faire de même avec les 2 partitions restantes et valider la configuration du RAID1.

Configurer les partitions en tant que volumes physiques pour RAIDConfigurer le RAIDCréer un volume multidisqueRAID1

Utiliser 2 disquesPas de disque de rechangeSélectionner les partitions de 256 Mio

Faire de même avec les 2 autres partitionsValider la configuration RAID1






























– Sélectionner le volume RAID1 de 256 Mio et le formater en Ext3 avec /boot comme point de montage :
Sélectionner la partition RAID1 de 256 Mio Formater en Ext3 et point de montage /boot










– Chiffrer la partition RAID1 de 8,3 Gio, rien de spécial à signaler ici, il suffit de suivre les captures d’écran. Notez qu’il faut bien sûr accepter d’écrire des données aléatoires sur tous les secteurs de la partition mais que cela peut prendre beaucoup de temps, en fonction de la taille de cette partition. On remarquera que sur la première capture d’écran ci-dessous, la partition RAID1 de 256 Mio est bien configurée avec comme point de montage /boot.

Configurer le chiffrementValider les changementsCréer un volume chiffréChoisir le volume RAID1 de 8,3 Gio

Paramètres de chiffrementFinir la procédure de chiffrementEcrire des données aléatoires sur l'ensemble de la partition

Choisir un mot de passe solide





























– Après le chiffrement de la partition de 8,3 Gio, on constate sur la première capture d’écran ci-dessous que la partition RAID1 de 256 Mio n’a plus de point de montage (il faudra donc penser à reconfigurer cette partition avant de poursuivre l’installation de l’OS sous peine de se retrouver avec un chargeur d’amorçage incapable de s’installer correctement). On passe maintenant à la configuration des volumes logiques. Après avoir créé un groupe de volume logique (VG) dans la partition chiffrée, créer les volumes logiques désirés (ici vg-root, vg-swap et vg-home) et terminer la procédure.

Configurer les volumes logiques Confirmer le formatage en Ext3Créer un groupe de volumes logiquesNommer le groupe de volumes logiquesSélectionner le volume chiffréConfirmer le schéma des partitions Créer un volume logiqueSélectionner le groupe de volumes logiques précédemment crééNommer le volume logiqueSaisir la taille du volume logiqueCréer les volumes logiques supplémentairesTerminer la procédure de création des volumes logiques







































– Configurer le formatage et le point de montage de chaque volume logique :

Sélectionner le volume logique "vg-home"Configurer le volume logiqueSélectionner le volume logique "vg-root"Configurer le volume logiqueSélectionner le volume logique "vg-swap"Configurer le volume logique



















– Reconfigurer le point de montage (/boot) de la partition RAID1 de 256 Mio et finir la procédure de configuration des disques :
Reconfigurer la partition de 256 MioTerminer la procédure de partitionnementConfirmer la configuration des partitions et volumes logiques










– Une fois l’installation achevée et le système redémarré, il ne reste plus qu’à installer GRUB2 sur /dev/sdb (il s’installe sur /dev/sda par défaut) afin de pouvoir démarrer sur les 2 disques :

# grub-install "/dev/sdb"

Installer GRUB2 sur /dev/sdb












Vérifier que Grub est bien installé sur les 2 disques en débranchant chaque disque alternativement et en démarrant le système. That’s all folks !

Mise à jour du 20/03/2016 : La méthode décrite ci-dessous est toujours fonctionnelle mais présente des difficultés dues à son ancienneté (cf les commentaires), l'article Intégrer les mises à jour à un ISO Windows 7 (épisode 2) décrit une méthode plus récente et plus simple.

Dans les semaines qui viennent, je vais être amené à déployer Windows 7 64 bits sur l'ensemble du parc informatique de la société (enfin sauf sur mon poste, faut pas pousser hein…), mettant ainsi fin au règne de Windows XP. Pas de problème particulier en perspective si ce ne sont d'éventuelles incompatibilités entre les plugins développés en interne (32 bits) et les futurs 3DS Max (64 bits). Message personnel pour Patrick, mon lead-artist préféré : si tu pouvais enfin te libérer quelques jours pour tester ça en profondeur, je ferai un effort pour ne plus renverser (accidentellement bien sûr !) le monceau de figurines nippones qui jonchent ton poste de travail. Mais revenons au sujet du jour, Windows 7 qui est sorti il y a maintenant 2 ans est affublé d'un Service Pack ainsi que d'un nombre non négligeable de mises à jour, typiquement le genre raffinements qui font que la procédure de mises à jour prend plus de temps que l'installation de l'OS (même avec un serveur WSUS sous le coude). L'idéal serait donc d'avoir un ISO de Windows 7 contenant l'intégralité des mises à jour. Il y a une dizaine de jours, Olivier Olejniczak de l'excellent site Synergeek, publiait un article qui allait me faciliter la tâche, la lecture de cet article est recommandée pour en apprendre un peu plus sur les fichiers .wim (que nous allons ici modifier). Olivier, donc, termine son article par la mention d'un script Powershell permettant de télécharger toutes les mises à jour concernant son OS et de les intégrer dans le fameux fichier install.wim. Je vais donc détailler la mise en œuvre de ce processus ô combien distrayant.

Pré-requis :

  • Windows 7 / 2008 R2 (64 bits dans le cas présent)
  • Powershell 2.0 (la version 3.0 pose problème)

Procédure :

On va commencer par télécharger le Microsoft Deployment Toolkit qui nous fournira tous les outils nécessaires aux futures manipulations. Une fois installé, exécuter le Deployment Workbench, se rendre dans la partie Information Center > Components et télécharger Windows Automated Installation Kit (boire 5 cafés le temps de rapatrier les 1,7 Gio).

DeployementWorkbench - Télécharger WAIK

Si vous n'aimez pas le café (et je vous plains sincèrement), vous pouvez préparer l'environnement de travail pendant ce temps :

 – Copier le contenu de l'ISO de Windows 7 dans un dossier (par exemple X:\ISO_update\Win7\), notez que l'utilisation d'un ISO contenant le SP1 est recommandé, l'ISO finale n'en sera que plus léger. Pour ceux qui n'ont pas accès facilement à ces ISO, ils sont disponibles ici (attention, je vous invite grandement à vérifier les checksum MD5 ou SHA1 de ces images pour éviter toutes mauvaises surprises, pour ma part le MD5 de l'ISO Français x64: X17-59197.iso est conforme à ce qu'il doit être – 9211b4c6f8ca317a09e32e701faf2be1)

 – Télécharger dans le dossier X:\ISO_update\ le script magique qui va intégrer les mises à jour et protéger votre machine des BSoD, de la cirrhose et de la calvitie : https://imagepatcher.codeplex.com

 – Lancer une session Powershell en mode administrateur et entrer la commande suivante afin d'autoriser les scripts non-signés (à utiliser en connaissance de cause !) :

Set-ExecutionPolicy RemoteSigned

– Si cela ne fonctionne pas, utiliser la commande suivante :

Set-ExecutionPolicy Unrestricted

 – Une fois le Windows Automated Installation Kit installé, exécuter le script de mise à jour (la procédure peut durer plusieurs dizaines de minutes selon le nombre d'images à mettre à jour) :

cd X:\ISO_update
.\imagepatcher.ps1 -dbg:no -imagefile:X:\ISO_update\Win7\sources\install.wim -patchimages:"3"

ImagePatcher

Paramètres du script :

  • dbg [yes/no] : mode verbeux
  • imagefile [path] : chemin vers le fichier .wim
  • patchimages [all/1,2,3,4…] : détermine quelle(s) image(s) mettre à jour dans le fichier .wim (éditer le fichier [1].xml contenu dans le fichier install.wim pour déterminer le numéro de chaque image, ici 1=Home Basic ; 2=Home Premium ; 3=Professional ; 4=Ultimate)

 – La procédure terminée, il ne reste plus qu'à créer un ISO bootable (plus d'infos sur les paramètres de oscdimg) :

cd C:\Program Files\Windows AIK\Tools\amd64\
.\oscdimg.exe -u2 -m -h -oc -g -bX:\ISO_update\Win7\boot\etfsboot.com X:\ISO_update\Win7 X:\win7_updated.iso

– Interdire de nouveau les scripts non-signés :

Set-ExecutionPolicy Restricted 

Bilan : l'image obtenue pèse quelques 3,3 Gio, je note cependant qu'une vingtaine de mises à jour supplémentaires sont quand même nécessaires après l'installation de OS, sans compter celles concernant .NET ou Silverlight. Toujours est-il que ce script permet d'avoir une image de Windows 7 à peu près à jour qui permettra d'économiser un temps précieux lors du déploiement des postes de travail.

Bonus : Pour ceux qui rechignent à utiliser la ligne de commande (ce que je peux comprendre, malgré tout), je suis tombé sur gDISM, un outil écrit en Java qui permet d'utiliser les possibilités de la commande dism de manière intuitive. Il ne permet pas l'intégration automatique des mises à jour mais par exemple, l'ajout de pilotes (pour ceux qui ont la chance d'avoir un parc informatique homogène…), l'activation de diverses fonctionnalités ainsi que tout un tas d'outils bien utiles à la bidouille des ISO Windows.

gDISM

Sources :

Mozilla Sync

Mise à jour 06/12/2011 : Suite à la mise en ligne d’une version modifiée de ce tutoriel n’utilisant pas le serveur Apache, je précise que si le tutoriel suivant est parfaitement fonctionnel, je préfère pour ma part ne pas l’utiliser pour les raisons décrites dans l’article sus-nommé. C’est vous qui voyez, y’en a qui ont essayé…

Suite au précédent article qui décrivait l’installation du serveur Sync minimal (et au fait qu’il n’était plus maintenu au profit de la version complète qui a été réécrite en Python), j’aborde ici l’installation du serveur Sync complet derrière un serveur Apache avec utilisation d’une base données MySQL.

 

Pré-requis :

  • Un serveur GNU/Linux (ici Debian Squeeze i386)
  • Serveur Web (ici Apache 2) avec support HTTPS
  • Base de données MySQL
  • Un navigateur Mozilla Firefox/IceWeasel PC/Mobile

Conventions :

  • prompt : # commande : exécuter la commande sous le compte root ou précédée de la commande « sudo »
  • prompt : $ commande : exécuter la commande sous le compte utilisateur

 

1. Installation

– Installer les dépendances :

# apt-get install python-dev mercurial python-virtualenv mysql-server build-essential libmysqlclient-dev libapache2-mod-wsgi

– Créer la base de données sync :

# mysql -u root -p
mysql> create database sync;
mysql> grant all on sync.* to sync identified by 'my_password';
mysql> flush privileges;
mysql> exit;

– Aller dans /var/www et télécharger la dernière version du serveur :

# cd /var/www
# hg clone https://hg.mozilla.org/services/server-full

– Renommer le dossier /var/www/server-full en /var/www/sync :

# mv /var/www/server-full /var/www/sync

– Se placer dans le dossier /var/www/sync et compiler le serveur :

# cd sync
# make build

– Installer Mysql-Python

# bin/easy_install Mysql-Python

Dans sa version actuelle, le serveur Sync embarque son propre serveur Web mais celui-ci n’est pas conçu pour supporter une forte charge (ce qui n’est pas très pénalisant dans notre cas) mais surtout ne semble pas posséder de mode chiffré. Nous allons donc faire fonctionner le serveur Sync derrière un serveur Apache en mode SSL via le mode WSGI. A noter que NGINX et Lighttpd sont aussi supportés (voir la doc Mozilla).

– Le mode WSGI ayant été installé avec les dépendances, il ne reste plus qu’à l’activer si nécessaire :

# a2enmod wsgi

– Créer un group sync et ajouter l’utilisateur sync à ce groupe :

# groupadd sync
# usermod -G sync sync

– Configurer le fichier /var/www/sync/etc/sync.conf pour Apache et MySQL (directives [storage] sqluri et [auth] sqluri), Apache 2 (directive [auth] fallback_node) et SMTP (directive [smtp] sender) :

# nano /var/www/sync/etc/sync.conf
[global]
clean_shutdown = false

[captcha]
use = false
public_key = 6Le8OLwSAAAAAK-wkjNPBtHD41v5OmoNFANIa1JL
private_key = 6Le8OLwSAAAAAEKoqfc-DmoF4HNswD7RNdGwxRij
use_ssl = false

[storage]
backend = syncstorage.storage.sql.SQLStorage
sqluri =  mysql://sync:my_password@localhost/sync
standard_collections = false
use_quota = true
quota_size = 5120
pool_size = 100
pool_recycle = 3600
reset_on_return = true
display_config = true
create_tables = true

[auth]
backend = services.auth.sql.SQLAuth
sqluri = mysql://sync:my_password@localhost/sync
pool_size = 100
pool_recycle = 3600
create_tables = true
fallback_node = https://my_server.net/

[smtp]
host = localhost
port = 25
sender = my_account@email.net

[cef]
use = true
file = syslog
vendor = mozilla
version = 0
device_version = 1.3
product = weave

– Configurer le Virtualhost Apache :

# nano /etc/apache2/sites-available/sync
ServerAdmin my_account@email.net
ServerName my_server.net
DocumentRoot /var/www/sync

      Order deny,allow
      Allow from all
      Options -Indexes

WSGIProcessGroup sync
WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25
WSGIPassAuthorization On
WSGIScriptAlias / /var/www/sync/sync.wsgi

ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

– Activer le Virtualhost et recharger la configuration d’Apache :

# a2ensite sync
# service apache2 reload

 

2. Ajout d’un Firefox PC / Mobile

2.1. Firefox PC

– Ouvrir les Options/Paramètres de Firefox, allez dans l’onglet Sync et cliquer sur le bouton Configurer Firefox Sync

– Choisir Créer un nouveau compte

– Configurer les options de synchronisation (bouton en bas à gauche) et valider (Attention à ne pas écraser vos marque-pages par mégarde !) :

Options de configuration Sync

– Renseigner les champs suivants :

Compte : my_account@email.net
Mot de passe : my_password
serveur (Utiliser un serveur personnalisé…) : https://my_server.net/

Détails du compte

Pensez à noter la clé de synchronisation après avoir validé les paramètres de connexion, elle sera demandée pour se connecter au compte depuis un autre Firefox.

2.2. Firefox Mobile

Une fois le compte créer et les données stockées sur le serveur, la configuration de Firefox Mobile se fait la manière suivante.

– Aller dans les paramètres, activer Sync et appuyer sur le bouton Connecter :

Paramètres Firefox Mobile
– Appuyer sur le lien Je n’ai pas accès à mon ordinateur pour l’instant… :

Connexion Firefox Mobile Sync – Renseigner les champs suivants :

Compte : my_account@email.net
Mot de passe : my_password
Serveur (Utiliser un serveur personnalisé…) : https://my_server.net/
Clé de synchronisation : bd54sb5e1fd64gv76vs5gv16qse1vsd5

Infos-Connexion-Firefox-Mobile-Sync 2

– La synchronisation est maintenant activée :

Firefox Mobile Sync Activé

 

Sources :