logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 23-05-2013 18:50:06

Hansa
Membre
Distrib. : Buster
Noyau : Linux 4.19.0-8-amd64
(G)UI : xfce
Inscription : 27-06-2009

[résolu] Script capricieux

Bonjour à tous,

Un peu par la force des choses, j'en suis venu à faire un script pour dépanner un ami. Ne pouvant ni me déplacer (800km) ni prendre la main (on a essayé), j'ai tenté un script pour modifier son /etc/fstab (pour résoudre ce problème : http://debian-facile.org/viewtopic.php?id=6702)

J'ai virtualisé le PC pour testé mon script (c'est mon 1er) préférant planter une VM qu'un vrai PC, et j'ai exécuté le script via un LiveCD pour être le plus proche de la réalité.
Ça ne marche pas et je ne vois pas pourquoi.


# montage partition racine
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 racine
umount -n /media/hdd
rmdir /media/hdd
 



/media/hhd est créé.
/dev/sda5 est monté dans /media/hdd. Le reste, rien du tout.

J'ai testé ligne par ligne dans une console et ça marche...

Si quelqu'un a une idée ou une suggestion, elle sera la bienvenue.

Par avance MERCI.

Hansa

Dernière modification par Hansa (02-06-2013 09:48:39)


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 23-05-2013 19:13:43

Dohri
Membre
Lieu : /home/dohri/canapé
Distrib. : Sid
Noyau : 3.10.1 amd64
Inscription : 19-12-2010
Site Web

Re : [résolu] Script capricieux

Le meilleur moyen de voir les erreurs est de lancer ton script de cette façon:

# bash -x tonScript



ça va t'afficher ligne par ligne ce qui se passe wink

astuce du jour: pour raccourcir ta commande cp tu peux faire comme ceci:

cp /media/hdd/etc/fstab{,.back}


le résultat est le même mais tu es sûr de ne pas faire d'erreur dans la destination et en plus ça va plus vite wink


Asus Zenbook ux32vd > Sid   |   eeepc 1215 > Sid + gnome  |   eeepc 1015 > Squeeze + gnome   |   sony vaio > Squeeze CLI   |   serveur home made > debian squeeze CLI

Hors ligne

#3 23-05-2013 20:06:54

Hansa
Membre
Distrib. : Buster
Noyau : Linux 4.19.0-8-amd64
(G)UI : xfce
Inscription : 27-06-2009

Re : [résolu] Script capricieux

Merci Dohri pour ces astuces.

J'ai essayer l'astuce du jour, sympa ! Je l'ai intégré à mon code du coup.

Côté erreur, j'ai essayé bash -x monScript

Voilà ce qui en sort :


+ mkdir $'/media/hdd\r'
+ mount /dev/sda5 $'/media/hdd\r'
+ cp /media/hdd/etc/fstab /media/hdd/etc/fstab.back
cp: cannot stat `/media/hdd/etc/fstab': No such file or directory
+ 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'
: No such file or directory /media/hdd/etc/fstab
+ umount -n /media/hdd $' /media/hdd\r': device is busy.d (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
+ rmdir $'/media/hdd\r' rmdir: failed to remove `/media/hdd\r': Device or resource busy
 



Si j'ai bien compris ce que ça veut dire, ce que je suspectais est vérifié.

mkdir /media/hdd : OK
mount /dev/sda5 /media/hdd : OK
Le reste, Pas OK

Merci encore à toi.

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

#4 23-05-2013 21:02:34

Dohri
Membre
Lieu : /home/dohri/canapé
Distrib. : Sid
Noyau : 3.10.1 amd64
Inscription : 19-12-2010
Site Web

Re : [résolu] Script capricieux

Yapadkoi smile

Reste maintenant à voir pourquoi il ne trouve pas ton fichier fstab wink
tiens nous au courant.

Asus Zenbook ux32vd > Sid   |   eeepc 1215 > Sid + gnome  |   eeepc 1015 > Squeeze + gnome   |   sony vaio > Squeeze CLI   |   serveur home made > debian squeeze CLI

Hors ligne

#5 24-05-2013 18:43:28

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu] Script capricieux

bonjour,

J'ai l'impression que sda5 n'est tout simplement pas la partition racine…

Hors ligne

#6 24-05-2013 18:56:27

Dohri
Membre
Lieu : /home/dohri/canapé
Distrib. : Sid
Noyau : 3.10.1 amd64
Inscription : 19-12-2010
Site Web

Re : [résolu] Script capricieux

c'est même quasiment sûr, mais faut pas tout dire le plus drôle est bien de chercher/trouver tout seul dans ce genre de cas big_smile

Asus Zenbook ux32vd > Sid   |   eeepc 1215 > Sid + gnome  |   eeepc 1015 > Squeeze + gnome   |   sony vaio > Squeeze CLI   |   serveur home made > debian squeeze CLI

Hors ligne

#7 27-05-2013 18:09:18

Hansa
Membre
Distrib. : Buster
Noyau : Linux 4.19.0-8-amd64
(G)UI : xfce
Inscription : 27-06-2009

Re : [résolu] Script capricieux

/dev/sda5 est bien la partition ou se trouve fstab (celui que je veux remplacer). C'est une des premières choses que j'ai vérifié wink

Par contre il y a un truc que je ne comprends pas. J'ai commenté les lignes de manière à m'arrêter juste après le montage. La commande dir /media me renvois la réponse hdd\r et non hdd comme je m'y attendais. Du reste c'est aussi le retour que j'ai avec bash -x mais je n'y avais pas prêter attention.

Je me demande si ce n'est pas la cause de mon blocage. J'ai d'ailleurs essayé de mettre hdd\r à la place de hdd dans la suite du script, mais sans résultat.

Voilà pour les nouvelles !

Merci à vous.

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

#8 02-06-2013 09:48:06

Hansa
Membre
Distrib. : Buster
Noyau : Linux 4.19.0-8-amd64
(G)UI : xfce
Inscription : 27-06-2009

Re : [résolu] Script capricieux

J'ai gratté, j'ai cherché, j'ai trouvé...

Il manquait

chmod +x script.sh

script.sh étant mon script

J'ai maintenant un script qui marche.

#!/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{,.back} # 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



Merci à Dohri et enicar

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

Pied de page des forums