Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/05/2013, à 19:20

hansa

[résolu] Problème pour trouver les erreurs dans un script

Bonjour à tous

J'ai un problème avec un script et je ne comprends pas ce qui cloche. C'est mon 1er script bien que j'utilise les ligne de commande depuis plusieurs années.

Le but est de modifier /etc/fstab sur le PC d'un ami. La grande distance et les essais infructueux d'une prise de main à distance me pousse à tenter le script suivant :

# montage partition
mkdir /media/hdd
mount /dev/sda5 /media/hdd

# creation fstab
cp /media/hdd/etc/fstab /media/hdd/etc/fstab.bak # sauvegarde fstab originale

echo -e "# /etc/fstab: static file system information.\n#\n# Use 'blkid' to print the universally unique identifier for a\n# device; this may be used with UUID= as a more robust way to name devices\n# that works even if disks are added and removed. See fstab(5).\n#\n# <file system> <mount point>   <type>  <options>       <dump>  <pass>\nproc            /proc           proc    defaults        0       0\n/dev/sda5	/	ext3	errors=remount-ro,user_xattr	0	1\n/dev/sda7	/home	ext3	defaults,user_xattr	0	2\n/dev/sda6	none	swap    sw	0	0\n\n/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0	0\n/dev/fd0	/media/floppy0  auto    rw,user,noauto	0       0\n\n/dev/sda1	/mnt/ntfs	ntfs	defaults	0	0" > /media/hdd/etc/fstab

# demontage de la partition
sudo umount -n /media/hdd
sudo rmdir /media/hdd

/media/hdd est créer et /dev/sda5 y est bien monté. Pour le reste, rien n'y fait. J'ai testé ligne par ligne dans un terminal et tout marche.
A noter, j'ai fait les tests en virtualisant le PC et en exécutant le script sur un LiveCD.

Toutes les idées et remarques seront les bienvenue.

Par avance MERCI

Hansa

Dernière modification par hansa (Le 02/06/2013, à 10:54)


Tout le monde disait que c'était imossible. Un jour, il est arrivé quelqu'un qui ne le savait pas et qui a réussit.

Hors ligne

#2 Le 23/05/2013, à 19:54

Compte anonymisé

Re : [résolu] Problème pour trouver les erreurs dans un script

Salut

Déjà évite d'utiliser sudo dans un script. Exécutes-le plutôt en root.

@+

#3 Le 23/05/2013, à 20:13

hansa

Re : [résolu] Problème pour trouver les erreurs dans un script

Effectivement.

Malheureusement, ça ne change rien sad


Tout le monde disait que c'était imossible. Un jour, il est arrivé quelqu'un qui ne le savait pas et qui a réussit.

Hors ligne

#4 Le 24/05/2013, à 09:29

vajpaille

Re : [résolu] Problème pour trouver les erreurs dans un script

Bonjour,

hansa a écrit :
# montage partition
mkdir /media/hdd
mount /dev/sda5 /media/hdd

# creation fstab
cp /media/hdd/etc/fstab /media/hdd/etc/fstab.bak # sauvegarde fstab originale

echo -e "# /etc/fstab: static file system information.\n#\n# Use 'blkid' to print the universally unique identifier for a\n# device; this may be used with UUID= as a more robust way to name devices\n# that works even if disks are added and removed. See fstab(5).\n#\n# <file system> <mount point>   <type>  <options>       <dump>  <pass>\nproc            /proc           proc    defaults        0       0\n/dev/sda5	/	ext3	errors=remount-ro,user_xattr	0	1\n/dev/sda7	/home	ext3	defaults,user_xattr	0	2\n/dev/sda6	none	swap    sw	0	0\n\n/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0	0\n/dev/fd0	/media/floppy0  auto    rw,user,noauto	0       0\n\n/dev/sda1	/mnt/ntfs	ntfs	defaults	0	0" > /media/hdd/etc/fstab

# demontage de la partition
sudo umount -n /media/hdd
sudo rmdir /media/hdd

Ce script est-il complet ou as tu juste collé ce qui te pose problème ?
Si il est dans son intégralité je vois deux choses, le #!/bin/bash au début est manquant, et un contrôle des droits (est-il exécutable ?).


Bonne journée.


GNU/Linux : Ubuntu, CentOS, Red Hat
BSD : OpenBSD, GhostBSD, PC-BSD

Hors ligne

#5 Le 24/05/2013, à 09:38

Josepe36

Re : [résolu] Problème pour trouver les erreurs dans un script

Bonjour

Qu'est ce qui ne marche pas exactement ?
La création du nouveau fstab ?
Le montage des nouvelles régles de montages ?
A premiére vue le script me parait correct, l'execution aussi vu que tu expliques que sda5 est bien monté.
Ne manquerait il pas simplement un mount -a afin de monter les nouvelles régles de montages à la fin du script?


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#6 Le 24/05/2013, à 17:44

hansa

Re : [résolu] Problème pour trouver les erreurs dans un script

Bonjour,

Vajpaille,
Il s'agit du script complet. Ce script étant mon 1er, je ne suis pas encore habitué à tout. Le #!/bin/bash au début d'accord c'est un oublie. Je n'y ai pas pensé du tout, bien que je l'ai lu dans la litérature. Concernant le contrôle des droits, c'est une très bonne question. A vrai dire je pensais gérer les derniers détails une fois que ce script marchera. Maintenant rien ne m'empêche de m'y penché maintenant.

Josepe36,
Ce qui ne marche pas, c'est tout après le montage de la partition. Pour le mount -a en fin de programme, vu que le script est pensé pour être exécuté depuis un LiveCD, je ne vois pas l'intérêt puisqu'il y aura redémarrage pour repartir sur la distribution installée. C'est vrai, je ne l'ai pas signalé.

Merci à vous deux.

Hansa


Tout le monde disait que c'était imossible. Un jour, il est arrivé quelqu'un qui ne le savait pas et qui a réussit.

Hors ligne

#7 Le 25/05/2013, à 13:36

Josepe36

Re : [résolu] Problème pour trouver les erreurs dans un script

Bonjour

dis moi si j'ai pas bien compris ton objectif, ce que tu souhaites faire c'est un fstab personalisé sur le live cd ?
En gros a partir du live cd avoir tes point de montage actif comme c'est le cas a partir d'un systéme installé ?

A partir du live cd ça ne marchera pas, le live cd n'utilisant pas le fstab dans le processus de montage, c'est Casper qui s'en charge.
Afin de contourner celà je pense qu'il serait mieux de créer un script avec tes régles de montage dans /etc/rc2.d/
par exemple un script portant le nom S99special_mount afin d'être sûr que ce soit le dernier executer par le runlevel 2.
Je sais certain diront que tout ce qui est dans ce répertoire sont des alternatives a créer, mais bon dans ce cas celà me semble correcte de créer un script directement, du moins pour les tests aprés tu pourras peaufiner.


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#8 Le 25/05/2013, à 18:57

hansa

Re : [résolu] Problème pour trouver les erreurs dans un script

Bonjour Jospe36

C'est vrai que je n'ai pas expliqué pourquoi je faisais ce script ni le problème de départ.

Un ami à un PC dont Linux ne démarre plus. A priori, et pour une raison inconnue, il y a un problème sur les UUID des disques. L'idée est de modifier le fstab du PC via un LiveCD. Vu la distance, je ne peux pas avoir directement accès à la machine et nos essais de bureau à distance n'ont pas marché, d'ou le script.

Ce que je veux faire :

1- Monter la partition ou se trouve le fstab du PC. Ici /media/hdd
2- Faire une sauvegarde du fstab actuel.
3- Créer un nouveau fstab
4- Démonter la partition.

J'y ai pensé depuis, je vais rajouter un reboot. Autre chose à laquelle j'ai pensé, il faudrait que le script se lance en un double-clic, mais ça, on verra que le script sera opérationnel.

J'espère avoir été clair ce coup ici wink

Merci

Hansa


Tout le monde disait que c'était imossible. Un jour, il est arrivé quelqu'un qui ne le savait pas et qui a réussit.

Hors ligne

#9 Le 02/06/2013, à 10:54

hansa

Re : [résolu] Problème pour trouver les erreurs dans un script

C'est bon, ça marche.

il manquait

chmod +x script.sh

Merci vajpaille de m'avoir mis sur la voie
Merci à jeanjd63 pour ses corrections

#!/bin/bash
chmod +x script.sh
mkdir /media/hdd #création du point de montage
mount /dev/sda5 /media/hdd # montage de la partition
cp /media/hdd/etc/fstab /media/hdd/etc/fstab.bak # sauvegarde fstab originale
echo -e "# /etc/fstab: static file system information.\n#\n# Use 'blkid' to print the universally unique identifier for a\n# device; this may be used with UUID= as a more robust way to name devices\n# that works even if disks are added and removed. See fstab(5).\n#\n# <file system> <mount point>   <type>  <options>       <dump>  <pass>\nproc            /proc           proc    defaults        0       0\n/dev/sda5	/	ext3	errors=remount-ro,user_xattr	0	1\n/dev/sda7	/home	ext3	defaults,user_xattr	0	2\n/dev/sda6	none	swap    sw	0	0\n\n/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0	0\n/dev/fd0	/media/floppy0  auto    rw,user,noauto	0       0\n\n/dev/sda1	/mnt/ntfs	ntfs	defaults	0	0" > /media/hdd/etc/fstab #création du nouveau fstab
umount -n /media/hdd # demontage de la partition
rmdir /media/hdd #suppression du point de montage

Hansa


Tout le monde disait que c'était imossible. Un jour, il est arrivé quelqu'un qui ne le savait pas et qui a réussit.

Hors ligne