Depuis la publication de l’article » Installation d’Ubuntu à partir d’une clé Live-usb sur un Eee PC « , je me suis rendu compte que plusieurs visiteurs n’arrivent tout simplement pas à créer leur clé live-usb. Je pense donc dans les jours à venir, créer un script automatisant cette tâche.
En bref l’utilisateur lance le script, insère sa clé usb, répond à deux ou trois questions, prend un bon café et attend que l’on fasse le travail à sa place !!
Voici les principaux aspects du script :
- Écriture du script en Bash.
- zenity sera utilisé pour afficher les boites de dialogues.
- Vérification automatique des dépendances.
- Le script affichera la liste des partitions disponibles en USB.
- Formatage automatique de la clé si nécessaire.
- Ajout d’un marqueur Boot à la clé.
- Fichier de log inclue pour l’administration du script.
- Mise à jours du script automatique.
Je commencerais le développement de l’application le 06/09/2008, si des personnes souhaitent participer au projet contactez moi à cette adresse : ubunblox@gmail.com
N’hésitez pas à proposer votre aide car je suis loin d’être un informaticien : J’apprends le Bash !!
Edit : Le script Eee-Live est maintenant disponible !!
ATTENTION !! C’est une version beta, elle est avant tout destinée au rapport de bug ainsi qu’a son amélioration !! Voici l’adresse de téléchargement :
Une fois le fichier Eee-Live.sh téléchargé, rendez celui-ci executable :
- chmod +x Eee-Live_0.2.sh
Pour lancer le script :
- sudo ./Eee-Live_0.2.sh
Si vous êtes témoin d’un dysfonctionnement, veuillez lancez le script dans un terminal à l’aide de cette commande :
- sudo bash -x Eee-Live_0.2.sh 2>Eee-Live_bug-report.txt
Cela aura pour effet d’inscrire toutes les actions du script dans un fichier texte, ce qui permet de mieux visualiser un bug. Il vous suffira ensuite de m’envoyer ce fichier par mail à cette adresse : ubunblox@gmail.com
1 septembre 2008 à 20:58
Je peux pas t’aider car j’ai pas assez de compétances, mais je te souahite bonne chance
2 septembre 2008 à 8:32
je trouve l’idee vraiment pas mal !
j’aimerai bien t’aider mais il me faudrait plus de details pour que je puisse etre sur d’avoir le level pour t’apporter quelque chose
2 septembre 2008 à 16:28
Je ne me suis pas encore penché véritablement sur le script. Mais je pense que la difficulté va être de détecter la clé usb de manière efficace sans faire appel à des commandes tordues … j’avais pensé à ce que le script fasse une premiere ananlyse des médias montés puis une deuxième lorsque l’utilisateur aura inseré la clé à utilisée. C’est encore flou comme procédé mais j’y regarderai de plus prêt dans les jours a venir. Concernant l’interface zenity aucun problème … Donc si vous avez des idées n’hézitez pas et merci pour vos encouragements !!
3 septembre 2008 à 8:47
oui ca peut etre une bonne idee comme demarche
au pire tu peux taper dans le dmesg aussi (mais j’avoue ca fait peut etre un peu tordu !)
zenity j’ai jamais utilise ca pourrait etre une bonne formation !
en tout cas si je peux t’aider n’hesite pas
3 septembre 2008 à 16:58
j’ai pensé à une commande du genre :
mount | tail -1 | grep -o « /dev/[a-z][a-z][a-z][0-9]«
Cela permet de connaitre le dernier périphèrique monté par l’utilisateur. c’est une idée qui m’ai venu, je verrais plus tard si je vais continuer dans ce sens…
Je vais tout d’abord écrire une beta du script sans interface graphique pour les tests, zenety viendra ensuite.
4 septembre 2008 à 9:25
oui ca peut etre une idee, j’opterai pour la correspondance avec le dmesg (les dernieres lignes doivent representer la connexion du dernier device)
mais ton idee est simple et efficace et c’est bien
4 septembre 2008 à 21:37
Voici un bout de code :
MOUNT=$(mount | tail -1 | grep -o « /dev/[a-z][a-z][a-z][0-9]« )
SYSLOG=$(cat /var/log/syslog | grep -o « s[a-z][a-z][0-9] » | tail -1)
DISK=$(echo « $MOUNT » | sed s/[0-9]//g )
if [ "$MOUNT" = "/dev/$SYSLOG" ] ; then
echo « Concordance validée. »
echo « Disque inseré : $DISK »
else
echo « Erreur de concordance »
exit 102;
fi
FDISK=$(fdisk -l | grep « Disk $DISK »)
if [ "$FDISK" = "" ] ; then
echo « Erreur FDISK »
exit 103;
else
echo « $FDISK »
echo » «
echo « Le média $DISK sera utlisé pour crée votre clé live-usb »
sleep 3
fi
Le script prend en compte les informations contenus dans mount,fdisk -l et le fichier syslog. Je compare les données entre mount et syslog si elles sont identiques une dernière verification et faite avec fdisk -l. Ce qui me permet aussi de récuperé facilement la taille du média inseré. Durant mes testes le média inséré à été reconnu à chaques fois ! Bien sûr si vous avez une autre idée …
4 septembre 2008 à 23:33
effectivement ca semble bien fonctionner !
5 septembre 2008 à 17:54
J’ai commencé pour de bon le devellopement du script. Après un premier test : il fonctionne !! La clé est fonctionnel et hardy a bien démarré sur mon Eee PC.
Je publie donc demain une version beta du script. Attention tout de même ce sera une beta, elle sera avant tout destiné au test. De plus aucune interface graphique ne sera prèsente …
Je recherche donc des volontaires pour tester le script ainsi que pour son dévellopement.
Pour plus d’information contactez moi à cette adresse : ubunblox@gmail.com
5 septembre 2008 à 18:02
Pour les plus curieux voici le fichier de log du script :
+ echo ‘#####’
+ echo ‘Veuillez à présent insérer votre clé usb’
+ sleep 3
+ echo -n ‘Appuyez sur la touche ‘\ » y ‘\ » de votre clavier une fois votre clé usb insérée : ‘
+ read y
+ ‘[' y '!=' y ']‘
+ echo ‘#####’
+ echo ‘Détection du média en cours…’
+ sleep 7
++ mount
++ tail -1
++ grep -o ‘/dev/[a-z][a-z][a-z][0-9]‘
+ MOUNT=/dev/sdg1
++ cat /var/log/syslog
++ grep -o ‘s[a-z][a-z][0-9]‘
++ tail -1
+ SYSLOG=sdg1
++ echo /dev/sdg1
++ sed ‘s/[0-9]//g’
+ DISK=/dev/sdg
+ ‘[' /dev/sdg1 = /dev/sdg1 ']‘
+ echo ‘Concordance validée.’
+ echo ‘Disque inseré : /dev/sdg’
++ fdisk -l
++ grep ‘Disk /dev/sdg’
+ FDISK=’Disk /dev/sdg: 2059 MB, 2059403264 bytes’
+ ‘[' 'Disk /dev/sdg: 2059 MB, 2059403264 bytes' = '' ']‘
+ echo ‘Disk /dev/sdg: 2059 MB, 2059403264 bytes’
+ echo ‘ ‘
+ echo ‘Le média /dev/sdg sera utlisé pour crée votre clé live-usb’
+ sleep 3
+ umount /dev/sdg1
+ echo ‘#####’
+ echo ‘ A prèsent votre média va être formater, ceci implique la déstruction totale des informations présentes sur celui-ci.’
+ echo -n ‘Appuyez sur la touche ‘\ » y ‘\ » de votre clavier pour continuer : ‘
+ read y
+ ‘[' y '!=' y ']‘
+ echo ‘#####’
+ echo ‘Formatage en cours…’
+ mkfs.vfat -F 16 -n live_eeepc /dev/sdg1
+ ERREUR
+ ‘[' 0 '!=' 0 ']‘
+ echo ‘Formatge réussi !!’
+ echo ‘#####’
+ echo ‘Création d’\ »un marqueur de boot.’
+ parted -s /dev/sdg set 1 boot on
+ ERREUR
+ ‘[' 0 '!=' 0 ']‘
+ echo ‘Opération réussie’
+ echo ‘#####’
+ echo ‘Verification de la connection internet.’
+ sleep 2
+ PING
+ ping google.com -c 3
+ ‘[' 0 '!=' 0 ']‘
+ echo ‘Téléchargement d’\ »isotostick.sh en cours…’
+ wget http://www.startx.ro/sugar/isotostick.sh
–2008-09-05 18:38:32– http://www.startx.ro/sugar/isotostick.sh
Résolution de http://www.startx.ro... 85.186.77.202
Connexion vers http://www.startx.ro|85.186.77.202|:80…connecté.
requête HTTP transmise, en attente de la réponse…200 OK
Longueur: 5941 (5,8K) [application/x-sh]
Saving to: `isotostick.sh.3′
0K ….. 100% 54,4K=0,1s
2008-09-05 18:38:33 (54,4 KB/s) – « isotostick.sh.3 » sauvegardé [5941/5941]
+ ERREUR
+ ‘[' 0 '!=' 0 ']‘
+ echo ‘Téléchargement réussi.’
+ sleep 2
+ chmod u+x isotostick.sh
+ ERREUR
+ ‘[' 0 '!=' 0 ']‘
+ echo ‘#####’
+ echo -n ‘Veuillez indiquez le repertoire ou est stocké l’\ »iso d’\ »ubuntu:’
+ read ISO
+ echo /home/pedro/hardy-desktop-i386.iso
+ ERREUR
+ ‘[' 0 '!=' 0 ']‘
+ echo ‘#####’
+ echo ‘Execution du script en cours ….’
+ sudo ./isotostick.sh /home/pedro/hardy-desktop-i386.iso /dev/sdg1
cp: ne peut créer le lien symbolique `/media/usbdev.lBcEFF/dists/stable’: Opération non permise
cp: ne peut créer le lien symbolique `/media/usbdev.lBcEFF/dists/unstable’: Opération non permise
+ ERREUR
+ ‘[' 0 '!=' 0 ']‘
+ echo ‘#####’
+ echo ‘Opération réussi votre clé live-usb est préte !!’
+ exit 0
6 septembre 2008 à 13:02
Le script est maintenant disponible à cette adresse :
http://ubunblox.free.fr/UbunBlox/Eee-Live/
ATTENTION !! C’est une version beta ne contenant aucune interface graphique, elle est avant tout destinée au rapport de bug ainsi qu’a son améliration !! Merci de laisser vos commentaires !!