vendredi 28 mars 2008

Des logiciels libres pour les 40 000 nouveaux ordinateurs de la région wallonne ?

Je lis dans cet article du Soir de ce 28 mars 2008 que pour le marché des 40.000 nouveaux ordinateurs il est possible que des logiciels libres soient choisis au détriment des produits Microsoft. Bien entendu OpenOffice.org est pour moi un excellent choix pour de nombreuses raisons:
  • coût: OpenOffice.org coûte 0 EUR contre environ 600 EUR pour Microsoft Office
  • respect des standards: OpenOffice.org utilise des formats de fichiers standard tels que ODF. Microsoft Office utilise par contre des formats propriétaires qui sont illisibles
  • compatibilité: OpenOffice sait lire et écrire les format de fichiers standard, mais aussi les formats propriétaires Microsoft Office: .xls, .doc, .ppt.
  • pas de lien avec un fournisseur unique: Microsoft peut "brader" la version actuelle de Microsoft Office et vous la vendre 100 EUR au lieu de 600 EUR. Mais bien entendu, quand vous voudrez la nouvelle version d'ici trois ans, ce sera le prix plein...
  • disponible pour tous les systèmes d'exploitation. Microsoft Office n'existe que pour Windows et Mac OS X. Par contre OpenOffice.org existe pour: Debian, Ubuntu, Red Hat, Windows, Mac OS X, FreeBSD, PC-BSD, etc...
Cependant je peux lire dans l'article:
Le seul bémol c’est que l’on n’a pas aujourd’hui la certitude qu’OpenOffice sera parfaitement stable sur les ordinateurs d’Apple, note un proche du dossier. Or, l’appel d’offres prévoit que les écoles doivent pouvoir choisir librement entre des PC ou des Mac.
... soyons sérieux, il existe des versions d'OpenOffice.org 2.3.x pour Mac OS X...

Espérons que la région wallonne choisisse OpenOffice.org !

Oui mais, attendez... ce vendredi 28 mars 2008 une autre information se retrouve dans l'actualité: Microsoft aurait l'intention de s'implanter en région wallonne. Peut-être que si la région wallonne choisit de l'Open Source, l'implantation de Microsoft en en région wallonne ne se fera pas ?

jeudi 20 mars 2008

autorun.inf sur une clef USB

Voici la suite de mes aventures avec Debian Live sur ma clef USB...

Désormais j'arrive à booter sur la clef USB (à condition, bien entendu, que le BIOS supporte le démarrage à partir de la clef USB)
J'arrive également à ce que la partition DOCUMENTS soit montée automatiquement sous Windows.

Cependant, j'aimerais qu'une action soit exécutée automatiquement lorsque je branche la clef USB dans une machine Windows. J'ai donc créé sur la partition DOCUMENTS un fichier autorun.inf qui contient tout simplement:
[autorun]
icon=linux.ico
open=autorun.bat

Quand je branche la clef USB dans une machine Windows, je vois ceci dans explorer.exe:

... mais, le fichier autorun.inf ne s'exécute pas automatiquement !

Note: pour être complet, voici le contenu du fichier autorun.bat:
@echo Starting "debian_live.txt"...
@start debian_live.txt
@exit

Et le fichier debian_live.txt est un fichier texte expliquant qu'il faut redémarrer la machine en activant le boot sur clef USB.

vendredi 14 mars 2008

Mon script sizeofdeb

J'ai écrit un (petit) script qui vous donne l'espace occupé par le package Debian donné en paramètre.

Voici le script:
#!/bin/bash
#
# sizeofdeb.sh - version 0.0.2
# Pierre Bauduin (pierre@baudu.in)
# le 14 mars 2008
#
# This script finds out how much space in kB is taken by the package given as a parameter
#

# Let's print some information
printf "$0 - finds out how much space in kB is taken by a Debian package\n"

# With how many parameters were we called ?
if [ "$#" != 1 ]; then
printf "Usage: $0 \n"
exit 1
else
# Here is the package we are looking for
NAME_OF_THE_DEBIAN_PACKAGE=$1
RESULT_OF_GREP_STATUS=`grep-status -nsInstalled-size,Package -F Status ' installed' $STATUS \
| perl -p00l12 -e 's/\n/ /' \
| grep -i $NAME_OF_THE_DEBIAN_PACKAGE`
# Is the string empty ?
if [ "$RESULT_OF_GREP_STATUS" = "" ]; then
# The string is empty
printf "Could not find any package matching $NAME_OF_THE_DEBIAN_PACKAGE. This means it is not installed or you made a typo.\n"
else
# The string is not empty
printf "$RESULT_OF_GREP_STATUS\n"
fi
fi


Exemples d'utilisation:

[pbn@cobra] /home/pibe>sizeofdeb finger
sizeofdeb - finds out how much space in kB is taken by a Debian package
76 finger

[pbn@cobra] /home/pibe>sizeofdeb iceweasel
sizeofdeb - finds out how much space in kB is taken by a Debian package
836 iceweasel-l10n-fr
24408 iceweasel
780 iceweasel-l10n-nl

[pbn@cobra] /home/pibe>sizeofdeb toto
sizeofdeb - finds out how much space in kB is taken by a Debian package
Could not find any package matching toto. This means it is not installed or you made a typo.

[pbn@cobra] /home/pibe>sizeofdeb evolution
sizeofdeb - finds out how much space in kB is taken by a Debian package
7660 evolution-data-server-common
1088 evolution-data-server
462 evolution-webcal
2672 evolution-exchange
384 evolution-plugins
7748 evolution
73582 evolution-common

Cliquez ici pour télécharger ce script (faites clic-droit-> Enregistrer sous)

mercredi 12 mars 2008

Plus loin dans Debian Live sur une clef USB


Mon affaire de système Debian Live est presque parfaite. Hélas, il me reste le problème suivant: quand je connecte ma clef USB à une machine Windows, comme expliqué précémment: Au lieu de monter la deuxième partition et pas la première, Windows monte la première partition et pas la deuxième .

En fait, "by design", lorsqu'on introduit une clef USB, Windows monte seulement la première partition, et aucune autre !

La solution est de mettre la partition DEBIAN_LIVE en second et la partition DOCUMENTS en premier.

Comment faire ?

En fait, lh_build génère à la fois le MBR (512 premiers octets de /dev/hda) et la partition Debian Live (/dev/hda1).

La première solution est de déplacer la partition /dev/hda1 à la fin de la clef USB où elle deviendra /dev/hda2 à l'aide d'un outil opensource approprié tel que GNU Parted ou GParted ou QtParted. Ou à la limite un outil commercial approprié: PartitionMagic

Mais, ce n'est finalement pas si facile que cela:
  • GNU Parted ou GParted ou QtParted me disent tous: Error: The file system is bigger than its volume!
  • PartitionMagic ne voit même pas les partitions sur la clef USB (!?)
  • modifier directement la table de partition avec un éditeur hexadécimal me semble périlleux
Finalement j'ai trouvé la solution:
  • avec fdisk, voir combien de cylindres occupe /dev/sdb1
  • créer un /dev/sdb2 type 0x83 comportant le même nombre de cylindres tout à la fin de la clef USB
  • sauvegarder la table de partitions et quitter fdisk
  • transférer "en raw" toutes les données de la première vers la deuxième partition: time dd if=/dev/sdb1 of=/dev/sdb2
  • jeter la première partition
  • avec cfdisk recréer comme première partition /dev/sdb1 de type 0x0b (FAT32) qui prend tout l'espace jusqu'au début de /dev/sdb2
  • toujours dans cfdisk mettre le flag "bootable" sur /dev/sdb2
  • sauver et quitter cfdisk
  • créer la partition FAT32 DOCUMENTS sur /dev/sdb1 en faisant: mkfs.vfat -F 32 -n DOCUMENTS /dev/sdb1
Résultat des courses:
Name      Flags    Part Type     FS Type       [Label]        Size (MB)
----------------------------------------------------------------------
sdb1 Primary W95 FAT32 [DOCUMENTS] 1044,62
sdb2 Boot Primary Linux [DEBIAN_LIVE] 962,36

Voici ce que Windows voit:


Et voilà, désormais, j'arrive à faire les deux:
  • Quand je boote sur ma clef USB, j'arrive dans Debian Live
  • Quand je connecte ma clef USB à une machine Windows, j'arrive à monter la partition DOCUMENTS

vendredi 7 mars 2008

Debian Live: script pour monter automatiquement la partition Documents

Comme je vous l'ai expliqué dans plusieurs posts précédents, je m'intéresse à produire un système Debian Live sur clef USB de 2 GB.

Mon système Debian Live prend 800MB, il me reste donc 1200 MB pour mes données. Evidemment, le plus simple est de créer une partition de données appelée "DOCUMENTS" en effectuant:
time mkfs.vfat -F 32 -n DOCUMENTS /dev/sdb2.

Cette partition sera la deuxième sur la clef. J'aurai donc une table des partitions comme ceci:
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1 * 1 93 746991 83 Linux
/dev/sdb2 94 244 1212907+ b W95 FAT32

Avec ceci, quand je connecte ma clef USB à une machine Debian GNU/Linux, Ubuntu ou Mac OS X, ma partition DOCUMENTS est automatiquement montée et je peux y accèder en lecture/écriture. Hélas, trois fois hélas, quand je connecte ma clef USB à une machine Windows, comme expliqué précémment: Au lieu de monter la deuxième partition et pas la première, Windows monte la première partition et pas la deuxième .

Une solution est de mettre la partition DEBIAN_LIVE en second et la partition DOCUMENTS en premier. Oui mais, dans ce cas, lorsque je boote Debian Live sur ma clef, il faut arriver à monter automatiquement la partition DOCUMENTS, qu'elle soit première ou deuxième. Et ce n'est à priori pas si facile que ça car:
  • je ne connais pas à priori sur quel disque sera monté mon système Debian Live: /dev/sda, /dev/sdb, /dev/sdc, ...
  • même si je connais le disque, par exemple /dev/sdb, je ne sais pas à priori si la partition DOCUMENTS est première càd /dev/sdb1 ou deuxième càd /dev/sdb2: il serait élégant de ne pas produire deux versions du script qui monte la partition DOCUMENTS: une version pour le cas où DOCUMENTS est premier, une autre pour le cas où DOCUMENTS est second...
J'ai finalement produit un script monter-partition-documents.sh qui détecte automatiquement sur quelle partition se trouve DEBIAN_LIVE et sur quelle partition se trouve DOCUMENTS.
#!/bin/bash
#
# Monte la partition des documents (vfat) dans /home/user/Documents
# monter-partition-documents.sh
#
# Pierre Bauduin
# Le 7 mars 2008
#
# Ceci est une clef USB
#
# Une des partitions est le système Debian Live,
# l'autre partition est la partition Documents (formatée en FAT32)
#
# Il est possible que la partition Debian Live soit la première c'est à dire /dev/hdX1 ou /dev/sdX1
# dans ce cas la partition Documents est /dev/hdX2 ou /dev/sdX2
#
# ! Mais, comme Windows ne monte que la première partition qu'il trouve sur une clef USB,
# ! il est possible que sur la clef la partition Debian Live soit la deuxième c'est à dire /dev/hdX2 ou /dev/sdX2
# ! dans ce cas la partition Documents est /dev/hdX1 ou /dev/sdX1
#

# Le point de montage /live/image est-il sur la première partition de ma clef USB ?
if `mount | grep /live/image | awk '{print $1}' | grep -q 1`; then
# Oui
# Donc ma partition Documents est la deuxième et je la monte
PART=`mount | grep /live/image | awk '{print $1}' | sed 's/1/2/'`
[ -z "$PART" ] && exit 1
[ -d "$HOME/Documents" ] || mkdir $HOME/Documents
sudo mount $PART $HOME/Documents \
-t vfat \
-o rw,noexec,nosuid,nodev,noatime,uid=999,gid=6,umask=027,codepage=850
# Le point de montage /live/image est-il sur la deuxième partition de ma clef USB ?
elif `mount | grep /live/image | awk '{print $1}' | grep -q 2`; then
# Oui
# Donc ma partition Documents est la première et je la monte
PART=`mount | grep /live/image | awk '{print $1}' | sed 's/2/1/'`
[ -z "$PART" ] && exit 1
[ -d "$HOME/Documents" ] || mkdir $HOME/Documents
sudo mount $PART $HOME/Documents \
-t vfat \
-o rw,noexec,nosuid,nodev,noatime,uid=999,gid=6,umask=027,codepage=850
fi
Cliquez ici pour télécharger ce script à partir de mon site (faites clic-droit -> Enregistrer sous...)

dimanche 2 mars 2008

Debian Live: quelques liens utiles

Les packages les plus récents de Debian Live sont ici.

Le git repository de Debian Live c'est ici.

Les écrans de boot (splashscreens) pour Debian Live sont ici.


Vous trouverez plein d'autres liens Debian Live en allant ici.