• # use qwant ?

    Posté par  . Évalué à -2.

  • # Cela dépend du hardware

    Posté par  . Évalué à 1.

    Le disque d'entré et de sortie peuvent avoir des secteur de taille différentes (ancien 512 bytes et disque récent 4*1024 bytes) donc j'utilise plutôt les options ibs et obs que bs (si obs est un fichier j'utilise 4K généralement car c'est la taille d'un cache page ram). D'autre part il peuvent avoir du cache RAM dans le contrôleur (si le chiffre est connu c'est bien de spécifié cette taille en iobs)

    D'autre part le nombre de secteurs physique disponible est souvent indiqué sur l'étiquettes du DD (mais attention les disque dur ne sont plus équipé d'un nombre puissance de 2 nombre de secteur depuis longtemps) cela me donne l'argument count.
    Et voila mes 2cts sur dd

  • # cp

    Posté par  . Évalué à 3.

    La plupart du temps, je ne m’embête pas, j’utilise cp.

    ex :
    cp /dev/disk_usb image_disque.img

    Est-ce que je gagne ou perd 2 minutes, je n’en sais rien.

    • [^] # Re: cp

      Posté par  . Évalué à 2.

      cp pour cloner un disque entier de 500Go? MBR compris?

      • [^] # Re: cp

        Posté par  . Évalué à 1.

        Oui, tu fait un cp /dev/sda /dev/sdb (à adapter à tes besoins). Pour moi dd n’a d’utilité que pour les bandes magnétiques qui ont quasiment disparue.

        • [^] # Re: cp

          Posté par  . Évalué à 10.

          dd (Disk Dub) a quand même plusieurs utilités. Sa fonction principale (et originelle) sert bien à dupliquer des disques, mais il propose bien plus d'options que le simple bs.

          Si spécifier la taille d'un bloc paraît inutile, c'est justement parce que cela fait double emploi avec la couche « périphérique bloc » du système d'exploitation, qui est censée lisser tout cela et nous permettre d'y accéder comme à un flux ordinaire. Par contre, quand on utilisait des raw devices, il était nécessaire de faire des accès atomiques de la taille d'un secteur et, par conséquent, alignés sur eux (pas question de copier deux demi-secteurs consécutifs, par exemple). Et là, il est quasiment impossible de manipuler sérieusement un volume sans recourir à ce genre d'outils.

          En outre, dd propose ibs et obs qui permettent de spécifier une taille de bloc différente en entrée et en sortie. Utile pour le genre de périphérique, ou pour balancer des données à travers des sockets qui exigent des trames de taille fixe.

          Dernier point mais non des moindres : il existe l'option noerror qui permet de continuer le traitement même en cas d'erreurs de lecture qui, sur un disque, correspondraient à des secteurs défectueux. C'est quand même un gros avantage sur cp qui, par ailleurs, n'est pas fait pour être interrompu. dd a le bon goût d'indiquer où il en est quand on le stoppe prématurément.

          Du coup, il vaut mieux ne pas spécifier comme taille de bloc celle du volume entier car, à la moindre erreur, c'est justement le reste « du volume entier » qui est passé ou rempli avec des zéros. En ce sens, il est plus intéressant de choisir comme taille de bloc celle d'un secteur ou d'un bloc du système de fichier (généralement 4096 octets) et ensuite de la multiplier par un certain facteur pour profiter de la RAM disponible et limiter les appels système, mais en restant raisonnable pour les raisons évoquées. Un bloc de la taille d'une piste est généralement un bon compromis.

          • [^] # Re: cp

            Posté par  . Évalué à 2.

            Je me doutais que quelqu’un me répondrait pour m’apprendre quelque-chose, merci à toi.

            Je retiens surtout que dd peut continuer en cas d’erreur.

            Merci.

        • [^] # Re: cp

          Posté par  . Évalué à 3.

          Outre la reponse d'obsidian, dd permets aussi de pas se prendre la tete pour creer un fichier de taille fixe, ca ma servi (entres autres) pour etendre un fs (le /var en l'occurrence) que j'avais sous dimensionne sans avoir a bidouiller des partoches ni demonter quoi que ce soit.

          • [^] # Re: cp

            Posté par  . Évalué à 2.

            Tu pourrais détailler ta méthode ?

            • [^] # Re: cp

              Posté par  . Évalué à 3.

              dd permets de creer des fichiers, par exemple a partir de /dev/zero dont la taille est precisee par les options count et bs.
              Il suffit ensuite d'utiliser mkfs en utilisant le fichier ainsi cree et de le monter comme on monte une iso ou une partition.
              J'avais sature mon /var avec un proxy pour apt, du coup j'avais stoppe le proxy, deplace les donnees dans mon faux fs et ajoute une ligne dans le fstab (on peut aussi le monter a la mano temporairement bien sur). Naturellement, la partition qui contiens le fichier doit etre deja montee, et il vaut mieux que le fichier soit pas dans la partirion que tu veut "etendre". C'est de la bricole, mais ca marche.
              On peut aussi utiliser ca pour ajouter arrificiellement des inodes, ou utiliser des tailles de secteurs differentes pour un dossier precis, enfin, tout ve qu'on peut faire avec des partitions quoi. Dans ces usages, dd sert surtout a avoir un fichier de taille fixe, on pourrait surement utiliser d'autres commandes a la place.

              • [^] # Re: cp

                Posté par  . Évalué à 3.

                Dans ces usages, dd sert surtout a avoir un fichier de taille fixe, on pourrait surement utiliser d'autres commandes a la place.

                Moi, j’utilise truncate dans ce cas là. C’est plutôt rapide :

                $ time truncate -s 5000000000 test.img
                
                real    0m0,003s
                user    0m0,000s
                sys     0m0,000s
                $ ls -lh
                total 28K
                -rw-r--r-- 1 capello capello 4,7G juil.  2 23:07 test.img
                $
                • [^] # Re: cp

                  Posté par  . Évalué à 2.

                  pas a ecrire ;)
                  blague a part, je ne connais pas vraiment truncate, ca ne me viens pas a l'esprit. J'essaierai d'y penser a l'avenir.

  • # stat

    Posté par  . Évalué à 6. Dernière modification le 27/06/17 à 12:38.

    stat permet de savoir la taille d'un bloc de ton fichier (dans la section IO Block).

    Avec un fichier de 1k:
    bash$ dd if=/dev/zero of=prout bs=$((1024 * 1)) count=1
    1+0 records in
    1+0 records out
    1024 bytes (1.0 kB, 1.0 KiB) copied, 0.000188972 s, 5.4 MB/s
    bash$ stat -c "%o" prout
    4096

    Avec un fichier de 4k:
    dd if=/dev/zero of=prout bs=$((1024 * 4)) count=1
    1+0 records in
    1+0 records out
    4096 bytes (4.1 kB, 4.0 KiB) copied, 0.000185359 s, 22.1 MB/s
    bash$ stat -c "%o" prout
    4096

    Avec un fichier de 8k:
    bash$ dd if=/dev/zero of=prout bs=$((1024 * 8)) count=1
    1+0 records in
    1+0 records out
    8192 bytes (8.2 kB, 8.0 KiB) copied, 0.000213151 s, 38.4 MB/s
    bash$ stat -c "%o" prout
    4096

    Du coup, tu n'as plus qu'à le faire sur un fichier de ton FS source et un autre sur ton FS destination et spécifier à dd les tailles des blocs en lecture et écriture (avec ibs / obs).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.