IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Accès au disques durs


Sujet :

API standards et tierces Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Accès au disques durs
    Bonjour à tous.

    Je suis développeur JAVA depuis très peu de temps. Et pour un projet que l'on m'a confié je doit effectuer du clonage de disque dur dans le but de produire des copies à distribuer.
    Je travaille sous Linux (Ubuntu 14.04) et je désire savoir s'il existe une librairie ou une API pour accéder directement au disques durs.
    J'entends par là lire et écrire directement les blocs ou sur les secteurs du disques.

    Si quelqu’un connaît un moyen et pouvait le faire partager.

    Merci.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    tu peux toujours utiliser la commande "dd" (voir http://ydisanto.developpez.com/tutor.../runtime-exec/)

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Pour lire/écrire un disque dur, le plus simple est d'utiliser le package java.io (FileInputStream, FileOutputStream, File, etc...)
    Maintenant, si tu dois écrire sur un secteur particulier... via JNI ce sera possible mais directement, je ne sais pas trop
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut
    Et pourquoi passer par Java, en bash ça doit se faire plus simplement, non ?
    Si la réponse vous convient, un petit ça encourage.
    Avant tout nouveau post, pensez à : la FAQ, Google et la fonction Recherche
    Si vous devez poster, pensez à: Ecrire en français, la balise [CODE] (#) et surtout

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    +1 cloner un disque sous linux, c'est aussi simple que de tapper

    dd if=/dev/sda of=/dev/sdd

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Sauf que si vous voulez faire un programme portable et indépendant de la plateforme, java est une bien meilleure solution...
    Le fait de travailler sous Ubuntu ne veut pas dire que ça tournera sur un Unix
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Sauf que si vous voulez faire un programme portable et indépendant de la plateforme, java est une bien meilleure solution...
    ... l'idée ici était de faire un code en java en utilisant Runtime.exec() avec dd dedans. Effectivement DD n'existe que sous Unix et pas windows, donc le programme va tourner sans fonctionner sur windows par exemple.

    Après coder en pure java, sans librairie speciale (.dll ou .so) pour recopier des disques dur bit a bit... ben je voudrais voir ta solution portable
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Dans la question initiale, il y a :
    "je doit effectuer du clonage de disque dur dans le but de produire des copies à distribuer."

    Moi ce que j'y vois, c'est :
    - je supprime la cible
    - je lis tous les fichiers sources et je les copie dans la cible

    et ça, en java, c'est faisable

    (il va de soit que "source" et "cible" sont sur la même machine)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Désolé, mais ça ce n'est pas du clonage. C'est juste un backup. Et puis dans la question initiale, il n'a jamais été précisé qu'il y avait des fichiers sur ces disques.


    (Et oui, si vous posez la question, ça existe des partitions sans fichiers, comme pour oracle database )

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Désolé, mais ça ce n'est pas du clonage. C'est juste un backup. Et puis dans la question initiale, il n'a jamais été précisé qu'il y avait des fichiers sur ces disques.

    (Et oui, si vous posez la question, ça existe des partitions sans fichiers, comme pour oracle database )
    Bah, d'après wikipedia
    En informatique et plus particulièrement dans les langages de programmation orientés objets le clonage est l'opération de copie d'une instance d'objet afin de créer une nouvelle instance qui contienne les mêmes informations.
    ...
    La différence entre un backup sur disque et le clonage d'un répertoire sur disque est plus que discutable...
    Et si le répertoire est vide, pas de soucis, on n'a rien à faire
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    bah justement, en java tu va avoir du mal à conserver toutes les dates associées aux fichiers, toutes les ACLs, les hardlinks, ....

  12. #12
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Bah, d'après wikipedia
    Clonage d'un objet (une classe quoi) et disque dur ? Y'a un truc qui m'échappe un peu la...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Clonage d'un objet (une classe quoi) et disque dur ? Y'a un truc qui m'échappe un peu la...
    On joue sur les mots... un objet, c'est abstrait, un disque dur est un objet aussi... on n'est pas forcément dans le cadre d'un langage objet

    Pour l'argument de tchize_, effectivement, on modifie ces informations, c'est moyen...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut
    Bonjour,
    Je me permets d'intervenir dans cette discussion qui semble dériver.
    En effet, vous confondez copie de fichier, et copie binaire de secteur physiques d'un disque dur.
    Les deux n'ont rien à voir. Toute la technologie de l'API java.io s'appuie sur la gestion de fichiers du système hôte, qui d'ailleurs lui-même ne sait pas faire de clônage, du moins pour les plateforme de type Windows. Sous linux le système de fichier étant radicalement différent, les choses sont plus simple mais ne peuvent se situées qu'au niveau du système hôte.
    Comme Java est multi-plateforme, il ne sait pas comment on gère les fichiers, et ce, quel que soit l'OS. C'est à travers des appels aux librairies du système hôte faits par la machine virtuelle Java que l'API java.io travaille. Donc, il n'y a aucun moyen de faire de la copie binaire en java pure. Il devient naturellement nécessaire d'exploiter jni/jna et de solliciter les librairies hôte, ce qui brise le principe multi-plateforme.
    Bref, tout ça pour dire que Java, dans votre cas, ne peut que vous permettre de réaliser une interface graphique de pilotage d'outils bas-niveau, qui eux permettent l'accès via le driver hôte du contrôleur de disque à la copie de secteur, pas de fichier, j'insiste bien.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

Discussions similaires

  1. Acces au disque dur delicat
    Par thorium90 dans le forum Composants
    Réponses: 4
    Dernier message: 28/08/2008, 14h44
  2. [Kubuntu 8.04] Accés aux disques durs
    Par skandhal dans le forum Ubuntu
    Réponses: 3
    Dernier message: 03/07/2008, 14h52
  3. Accès au disque dur : fichiers de conf., dépôt de fichiers
    Par 84mickael dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 08/04/2008, 14h40
  4. [Thread] Accès multiples disque dur
    Par Djakisback dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 21/05/2006, 13h46
  5. [Applet]avoir l'accès au disque dur local
    Par ehmppowa dans le forum Applets
    Réponses: 2
    Dernier message: 10/01/2006, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo