2 votes

Comment utiliser la commande `od` pour vérifier la suppression des données du disque dur ?

Je veux vérifier si un disque dur a été correctement mis à zéro. J'ai lu ceci, qui donne les instructions suivantes :

$ sudo od /dev/disk2 | head

ce qui renvoie pour son HDD :

0000000    000000  000000  000000  000000  000000  000000  000000  000000
*
234250000

J'ai lu ici que

head renvoie les dix premières lignes pour chaque nom de fichier fourni.

  1. Suis-je en droit de supposer que sans | head, od va afficher l'intégralité du contenu du disque dur sur le terminal ?

  2. Quand j'ai essayé, j'ai obtenu la même sortie : 1 série de sept chiffres 0 et 8 séries de six chiffres 0 et 1 *, sauf qu'après le * j'obtiens 7216060060000. Est-ce que tout jusqu'au * inclus constitue les dix "lignes" (bien que ce ne soit pas un fichier et qu'il ne devrait pas y avoir de lignes) ?

  3. Pourquoi seulement le premier nombre a sept chiffres ?

  4. Que signifie le * ? Est-ce que cela signifie que tout le reste peut être n'importe quoi (pas nécessairement des zéros), sont tous des zéros (c'est-à-dire que mon disque dur entier est composé de zéros), ou est-ce que tout le même motif précédent se répète (c'est-à-dire 1 série de sept chiffres 0 et 8 séries de six chiffres 0) ?

  5. Le manuel de od indique que la commande od va : "Écrire une représentation non ambiguë, octale par défaut, de FICHIER sur la sortie standard." Qu'est-ce qu'un "octal byte" ? Ceci suggère que c'est un terme non standard mais pourrait correspondre à 6 bits.

  6. Mon disque dur fait 500 Go avec des secteurs de 512 octets. Est-ce que ce 7216060060000 équivaut à cette capacité ?

    7216060060000 octal bytes * (6 bits ? / 1 octal byte ?) * (1 byte/8 bits) * (1 Go/1e9 bytes) = 5412.045045 Go

    ce qui ne correspond pas à la capacité de mon disque dur. Est-ce qu'il y a eu un problème ?

  7. Mon disque dur a-t-il été correctement mis à zéro ?

4voto

muru Points 180007
  1. Non. head coupera la sortie après 10 lignes par défaut. Comme il n'y avait que trois lignes au total dans la sortie, vous obtiendrez seulement trois lignes avec ou sans head.

  2. Quant aux lignes, pourquoi seuls les fichiers devraient-ils avoir des lignes? Voulez-vous que toute la sortie de la commande soit entassée sur une seule ligne?

  3. C'est un nombre octal montrant combien d'octets ont été lus depuis le début de l'entrée. Il peut comporter plusieurs chiffres si nécessaire.

  4. De man od:

    -v, --output-duplicates
          ne pas utiliser * pour marquer la suppression de ligne

    Ainsi, od essaie d'éviter d'imprimer des lignes dupliquées. * les marque.

  5. De la documentation originale de od (qui est plus claire):

    Chaque ligne de sortie comprend le décalage dans l'entrée, suivi de groupes de données du fichier. Par défaut, od imprime le décalage en octal, et chaque groupe de données du fichier est un entier court en C valant l'équivalent d'un nombre octal imprimé comme un seul nombre, Soit chaque bloc dans son ensemble est un nombre octal. Un short int en C est habituellement 2 octets. od prend deux octets de données, les traite comme un nombre et les imprime en base 8 comme un seul nombre, et se répète. Chaque ligne a 8 de tels blocs, donc nous avons 16 octets par ligne. Le décalage est également imprimé en base 8, et 20 en base 8 est 16 en base 10.

  6. Puisque le décalage est en base 8, conversion en base 10:

    $ echo $((8#7216060060000))
    500107862016
    $ echo $((8#7216060060000 / 1000 / 1000 / 1000))
    500

    $((N#X)) indique à bash de lire X comme un nombre en base N. Puisque bash affiche en base 10 par défaut, faire $((8#...)) convertit de l'octal en décimal.

  7. Oui.

0voto

Robert Dinse Points 19

Vous avez ici un tas de questions, ceci répond à la question #5, la sortie octale représente des données binaires trois bits par digit, chaque digit aura une valeur de 0 à 7, avec 0 = binaire 000, 1 = binaire 001, 2 = binaire 010, 3 = binaire 011, 4 = binaire 100, 5 = binaire 101, 6 = 110, et 7 = 111. L'octal était populaire avec les anciens systèmes informatiques mais l'hexadécimal qui utilise 0-f pour représenter les valeurs 0000 à 1111 dans chaque digit est plus compact et utilisé plus fréquemment aujourd'hui.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X