Aller au contenu principal
Sujet: Combiner des ?drv*.sfs (Lu 1072 fois) sujet précédent - sujet suivant
0 Membres et 1 Invitédans ce sujet

Combiner des ?drv*.sfs

Bonjour à toutes et à tous.

Et en cette fin de semaine, bonne Fête des Pères à tous les papas ! :)

Voici un script qui combine les archives système ?drv*.sfs (sauf le zdrv) en l'archive fdrv*.sfs, si on souhaite libérer le adrv*.sfs
pour transformer son GROS pupsave en adrv*.sfs.

Je veux remercier jplt d'avoir soulevé le problème relativement au BionicPup de peebee.  Ce script est conçu pour le BionicPup, mais devrait pouvoir s'utiliser pour tout Puppy présentant la même situation.

Veuillez prendre la peine de lire les commentaires offerts dans le script avant de l'utiliser, y compris les notes en bas du script. Merci.

J'ai testé sur un BionicPup n'ayant que le fdrv*.sfs, après utilisation du combineur ci-joint. Tout va sur des roulettes, sauf... vous devrez éditer le fichier defaultbrowser à /usr/local/bin comme suit :
#!/bin/sh
exec /usr/local/lib/light/light "$@"
# light "$@"
pour appeler le navigateur U_Light directement.

Alors voilà. Je crois que tout y est. Ce script est aussi publié en anglais à
http://www.murga-linux.com/puppy/viewtopic.php?p=996146&sort=lastpost#996146

Je crois avoir bien testé, mais ce serait gentil de me rapporter tout pépin.

Note finale : ce script est seulement destiné aux utilisateurs qui voudraient transformer un GROS pupsave en adrv*.sfs, en tant que solution de rechange à la remastérisation habituelle.

À la bonne vôtre !
#!/bin/bash
# combine-drvs.sh
#
# Save this script under / Enregistrer ce script sous
# /opt/local/bin OR/OU /root/my-applications/bin
# and make executable. / et rendre exécutable.
###
# Goal : reduce the number of ?drv*.sfs archives to one
# in a Puppy that has a full complement of them. /
#
# Objectif : réduire le nombre d'archives ?drv*.sfs à une
# dans un Puppy | Toutou qui les a toutes.
###
# Usage -- Important : utiliser ce script d'un autre Puppy | Toutou que BionicPup.
# ........ Ouvrir une console dans le répertoire de BionicPup et lancer ce script.
# ........ Quand le script est terminé, redémarrer BionicPup. /
#
# Usage -- Important : run this script from another Pup than the BionicPup. <=-
# ........ Open a console in BionicPup's directory and run this script.
# ........ When done, restart BionicPup.
###
# -=> Please read the notes at bottom. / Veuillez lire les notes au bas de ce script. <=-
####
# © Christian L'Écuyer (alias musher0), Gatineau (Qc), Canada, 2018-06-16. GPL3.
# GPL3 licence in English: https://opensource.org/licenses/GPL-3.0
##########
#    Ce programme est libre : vous pouvez le redistribuer ou modifier selon les termes de la
#  Licence Publique Générale GNU publiée par la Free Software Foundation (v. 3 ou toute
#  version ultérieure choisie par vous).
#        Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE
#  GARANTIE, ni explicite ni implicite, y compris des garanties de commercialisation ou
#  d'adaptation à un but spécifique. Pour plus de détails, veuillez vous reporter au
#  texte de cette licence à https://opensource.org/licenses/GPL-3.0 pour le texte officiel, à
#  http://www.linux-france.org/article/these/gpl.html pour une traduction et à
#  https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU pour une explication en français.
################
####

for archive in `ls -1 ?drv* | grep -v zdrv`;do
    unsquashfs -d "${archive:0:4}" "$archive"
    wait
    mv -f $archive $archive.bckp
    wait
done

cd fdrv
for combine in adrv ydrv;do
    rsync -avzm ../$combine/* .
    wait
done

cd ..
mksquashfs fdrv fdrv_upupbb_18.05.sfs -noappend -all-root -b 1048576 -comp xz -Xdict-size 100%
wait

for ReP in adrv fdrv ydrv;do
    rm -rdf $ReP/*
    rmdir --ignore-fail-on-non-empty $ReP
done
exit

### Notes ###
EN -- Back-ups of the ?srv*.sfs archives are made: do not erase them.
This script has been tested. But should something go wrong, in console, type
    mv -f ?drv_upupbb_18.05.sfs.bckp ?drv_upupbb_18.05.sfs
(Replace the ? with the letters a, f and y.)

FR -- Des sauvegardes des archives ?srv*.sfs sont faites : ne les effacez pas.
Ce script a été testé. Si quelque chose n'allait pas, en console, taper
    mv -f ?drv_upupbb_18.05.sfs.bckp ?drv_upupbb_18.05.sfs
(Remplacer le ? par les lettres a, f et y.)
##################


musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : Combiner des ?drv*.sfs

Répondre #1
Rebonjour !

Juste une petite réserve à propos du script ci-dessus.

Si vous l'utilisez pour un autre Toutou que le BionicPup, il faudra remplacer le nom du fdrv*.sfs sur la ligne « mksquashfs », 3e paramètre, par le nom du frdv*.sfs du Puppy | Toutou en question.

Comme cela doit se faire sous console, d'un autre Puppy,  je ne peux pas offrir de « niveau d'abstraction », comme dirait BarryK, de généralisation, dans ce script. Désolé. Si vous n'avez pas de mémoire, comme on dit, griffonnez le nom sur un bout de papier au besoin.

À+
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : Combiner des ?drv*.sfs

Répondre #2
Bonjour musher0,

je viens de me rendre compte que l'utilisation du script cassait quelque chose au niveau de l'impression : avec le adrive généré on ne peut plus imprimer !
Est-ce que ce problème est rencontré par d'autres ?
Je suis sur la xenial 32 bits.
Il y a un premier message d'erreur dans cups : Arrêté "Can't create temporary file" ; ce message provient du fait que le dossier tmp n'est pas toujours présent dans /var/spool/cups, mais parfois il est présent et on a tout de même ce message !
Quand on réussi à résoudre le premier message on a inévitablement un nouveau message : Arrêté "Filter failed".
En regardant dans le fichier d'erreurs de cups on se rend compte que l'erreur vient de :

Started filter /usr/lib/cups/filter/bannertopdf (PID 16898)
Error opening banner file: Permission denied
Error: could not read banner file
Le fichier bannertopdf est bien présent avec les droits corrects : il y a d'autres fichiers filter dans ce dossier qui sont parfaitement gérés mais pas celui-ci !
Personne n'a remarqué ce problème ?
Philippe


Re : Combiner des ?drv*.sfs

Répondre #3
Humm...

Cela se peut,  mais vu que « j'imprime » toujours à un pdf ( pour le peu de fois que j'ai eu besoin d'imprimer un texte),  je n'ai jamais
eu le problème.

Je vais cependant faire un diff des fichiers dans les fichiers de départ et d'arrivée. S'il manque un fichier ou si un fichier nécessaire a été écrabouillé au cours de l'opération de combinaison, on va le voir.  

Tu as probablement raison, mais l'impression c'est plutôt le rayon de mon compatriote Puppyiste scrn-machin de la ville shakespearienne de l'Ontario.

(Je me comprends, t'en fais pas ! J'ai une mémoire marrante, qui fonctionne par le contexte plutôt que par l'info apprise par coeur.  Je vis avec, comme on dit. Tout ça pour dire que je reviendrai avec les vraies infos un peu plus tard.

Façon aussi de te dire que mon expérience des imprimantes sous PuppyLinux est on ne peut plus limitée.

Pour l'instant, il y a l'écran externe qui fait joujou avec moi :  je m'en sers, il se ferme;  je me sers de l'écran du portable, il revient !
Et puis va donc essayer de comprendre la ligne Exec dans /root/.config/autostart/lxrandr*.desktop...

L'elfe des écrans doit bien rigoler -- moi pas !!!)

À+
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : Combiner des ?drv*.sfs

Répondre #4
Depuis hier je teste mes pupsave : tout fonctionne bien... avec adrive rien a faire. Je vais tester pour un pdf.
Merci,
Philippe

Re : Combiner des ?drv*.sfs

Répondre #5
Le fichier pdf est créé... mais vide !
Erreur "filter failed".

Par contre je viens de me rendre compte que je me trompe peut-être de script !
Le script que j'ai utilisé est celui nommé adrive.sh : ce n'est le même que celui ici, même si le résultat est similaire.
Philippe

 
Simple Audio Video Embedder