Aller au contenu principal
Sujet résolu
Ce sujet a été marqué résolu et ne nécessite aucune autre attention.
Sujet: nbd : ou comment lire un DVD quand on n'a pas de lecteur dans son PC (Lu 1626 fois) sujet précédent - sujet suivant

nbd : ou comment lire un DVD quand on n'a pas de lecteur dans son PC

Bonjour,

Comme beaucoup aujourd'hui, j'ai un PC sans lecteur de DVD. Et un vieux PC qui a un lecteur et une connexion réseau.
Pour lire le DVD sur le PC, j'ai cherché des solutions. L'une d'elles est de monter le DVD sur le vieux PC, partager le point de montage en NFS (ou en SMB), et lire depuis le PC récent avec VLC.
Malheureusement, ça ne marche que sur de rares DVDs, à cause apparamment du cryptage.

J'ai cherché, et trouvé l'utilitaire nbd :
https://forum.ubuntu-fr.org/viewtopic.php?id=427354
Ce tuto date de 2010.

La solution est séduisante. Mais ça ne marche pas sur ma config.
Sur le vieux PC, j'ai une Leap 15.1, et sur le récent une 15.2.
Sur le vieux PC, le lecteur de DVD est en /dev/sr0
Le paquetage s'appelle tout simplement "nbd". Il contient le client et le serveur.
Il est en version 3.16.2 de 2018.


Quand j'essaie la commande "nbd-server 2000 /dev/sr0", j'obtiens :

(process:3094): GLib-CRITICAL **: g_array_append_vals: assertion 'array' failed

** (process:3094): WARNING **: Could not parse config file: Invalid directory specified: Not a directory

** (process:3094): WARNING **: Specifying an export on the command line no longer uses the oldstyle protocol.


J'ai cherché, mais n'ai pas trouvé d'explications claires sur ce "oldstyle protocol"

Quelqu'un a-t-il réussi à faire marcher nbd ?

Ce serait intéressant, car il est sensé pouvoir partager, non seulement des lecteurs de DVD, mais aussi des disques.

Merci pour votre aide.

Cordialement.

Wallace


Re : nbd : ou comment lire un DVD quand on n'a pas de lecteur dans son PC

Répondre #1
hello

tout d'abord je ne connais pas nbd et je n'ai jamais essayé ni smb ni nfs.
est ce que tu as essayé avec le script évoqué dans le tuto?
par exemple
sudo chmod a+x nom_du_script_
sudo sh nom_du_script

peux tu renvoyer les messages d'erreurs obtenus?

il est aussi possible que ça ne fonctionne pas toujours car tu n'as pas les paquets de décryptage tels que libdvdcss2 (les as tu installés ainsi que les codecs du dépôt packman?)

a+

Re : nbd : ou comment lire un DVD quand on n'a pas de lecteur dans son PC

Répondre #2
Bonsoir,

Merci pour la réponse.

Pour le coté décryptage, j'utilise VLC. Afin de savoir s'il est vraiment équipé pour les DVDs, je me suis fait prêter un lecteur de DVD portable avec câble USB et je l'ai branché sur le PC récent :
Résultat : il sait lire tous les DVDs. Donc pas de souci de ce côté-là.

Pour le script, la commande "nbd-server 2000 /dev/sr0" était tapée sur le PC ancien.

Pour respecter le tuto, j'ai tapé, depuis le PC récent :
ssh 192.168.x.x "nbd-server 2000 /dev/sr0"

J'obtiens :

(process:2769): GLib-CRITICAL **: g_array_append_vals: assertion 'array' failed

** (process:2769): WARNING **: Could not parse config file: Invalid directory specified: Not a directory

** (process:2769): WARNING **: Specifying an export on the command line no longer uses the oldstyle protocol.

A part le numéro de processus, c'est le même message d'erreur.

Ce qui est bizarre, c'est que la syntaxe respecte la manpage de nbd-server. Et pourtant, l'erreur parle de "oldstyle protocol".

Le paquetage n'est pas vieux, il date de 2018. On peut supposer que ça marchait il y a 3 ans.

Quelqu'un aurait une explication de ces messages d'erreur ?
Avez-vous réussi à faire fonctionner nbd-server et nbd-client ?

Merci d'avance.

Wallace


Re : nbd : ou comment lire un DVD quand on n'a pas de lecteur dans son PC

Répondre #3
Bonjour,

Tu peux faire une iso du dvd pour la lire directement via vlc.
Personnellement c'est ce que je faisais pour les dvd quand je partais en vacance et que je ne voulais pas embarquer les dvd physiques.


J'avais un script pour faire ça et qui marchait sur les dvd testés, je ne sais pas si ça marche encore sur les tout tout récent mais ça passait encore l'année dernière sur les dvd que je voulais voir ( achetés légalement )

Re : nbd : ou comment lire un DVD quand on n'a pas de lecteur dans son PC

Répondre #4
Hello,

Citation de: man 5 nbd-server
oldstyle
    Optional; boolean

    In versions of nbd-server between 2.9.17 and 3.9.1, when this option was set to true, nbd-server would export all exports on a separate port with the old (pre-2.9.17) handshake protocol. In that case, the 'port' option for individual exports was mandatory.

    Since version 3.10 of nbd-server, however, this option is no longer supported, and any attempt to use it will result in nbd-server exiting with an appropriate error message.

https://www.systutorials.com/docs/linux/man/5-nbd-server/
https://bbs.archlinux.org/viewtopic.php?id=121956


à plus,
oh!rocks

Re : nbd : ou comment lire un DVD quand on n'a pas de lecteur dans son PC

Répondre #5
OK. Merci.
Je vais donc essayer de configurer le fichier /etc/nbd-server/config
A+
Wallace

Re : nbd : ou comment lire un DVD quand on n'a pas de lecteur dans son PC

Répondre #6
Bonjour,
Voici un exmplaire de /etc/nbd-server/config qui permet le partage:

[generic]
        # The [generic] section is required, even if nothing is specified
        # there.
        # When either of these options are specified, nbd-server drops
        # privileges to the given user and group after opening ports, but
        # _before_ opening files.
    #    user = nbd
    #    group = nbd
        allowlist = true
        # Since version 2.9.17, nbd-server will do exports on a name
        # basis (the used name is the name of the section in which the
        # export is specified). This however required an incompatible
        # protocol change. To enable backwards-compatible port-based
        # exports, uncomment the following line:
        # oldstyle = true
[export1]
        exportname = /dev/sr0
        # The following line will be ignored unless the
        # "oldstyle = true" line in the generic section above is
        # enabled.
        # port = 12345
        # authfile = /export/nbd/export1-authfile
        # timeout = 30
        # filesize = 10000000
        # readonly = false
        #  multifile = false
        # copyonwrite = false
        # prerun = dd if=/dev/zero of=%s bs=1k count=500
        # postrun = rm -f %s
[otherexport]
        exportname = /export/nbd/experiment
        # The other options are all optional, except this one in case
        # the oldstyle option is used in [generic]:
        # port = 12346
[export2]
        exportname = /dev/fd0
[export3]
        exportname = /dev/sr1


Petites explications :
/dev/sr0 est lecteur de CD-ROM interne
/dev/fd0 le lecteur de disquette (je vous parle d'un périphérique que les moins de 20 ans ne peuvent pas connaître !)
/dev/sr1 : lecteur de DVD en USB


       
Vous pouvez constater qu'il y a un "#" devant les lignes
    #    user = nbd
    #    group = nbd
  
Toutes commendes qui suivent sont tapées en su.
Une fois le fichier /etc/nbd-server/config écrit, nous lançons le serveur avec:

nbd-server -C /etc/nbd-server/config

Pour vérifier que les export sont lancés, c'est simple : taper :
nbd-client -l localhost

Cela donne :
Negotiation: ..
export1
otherexport
export2
export3

A priori, les 3 lecteurs seront accessibles.

Depuis le PC client, si nous tapons
nbd-client -l ip.du.ser.veur

Cela donne :
Negotiation: ..
export1
otherexport
export2
export3

Jusqu'ici, tout va bien.

Ensuite :
Insérer un DVD non marqué "systeme anti-copie" dans le lecteur sr0 du serveur.

Sur le client, taper :
nbd-client ip.du.ser.veur /dev/nbd1 -name export1

Cela donne :
Negotiation: ..size = 3189MB
bs=1024, sz=3344822272 bytes

Au final, sur le PC client, ouvrir VLC, au Menu Média, et choisir "Ouvrir un disque"
A la ligne "Disc device, taper : /dev/nbd1
Miracle : la lecture du DVD se lance !

Mais si j'essaie avec un DVD "système anti-copie", VLC arrive juste à lancer le menu principal, et n'affiche plus rien après un premier choix.
Alors que le DVD est lisible localement sur le client et le serveur.

Des fois que ce soit dû au réseau, vu que deux switchs s'intercalent entre client et serveur, j'ai testé en faisant tout sur un seul PC: il est à la fois serveur et client, via localhost. Résultat : pareil !

Il doit y avoir encore un bogue dans nbd qui fait qu'il n'établit pas de connexion totalement transparente entre le client et le serveur.

Nota :
Sur le PC client, pour déconnecter /dev/nbd1, il faut taper :
nbd-client -d /dev/nbd1

Disques de données:
Si vous mettez un CD ou un DVD de données dans le lecteur du serveur, ce disque devient accessible sur le PC client en "montant" /dev/nbd1 comme un CD.
Taper (si vous voulez y accéder dans le dossier /cdrom):
mount -t iso9660 /dev/nbd1 /cdrom
Et ça, ça marche !

Conclusion:
Il y a un intérêt à nbd : il est quand même capable d'accéder à des DVDs non protégés, et surtout à des CDs ou DVDs de données ! Cela peut toujours dépanner !

Je n'ai pas testé d'autres périphériques.

Si vous avez des idées pour la lecture de DVDs protégés, je suis preneur. Peut-être un paramètre à ajuster dans /etc/nbd-server/config ?

A+

Wallace.