RaphAstronome

lundi, 21 juillet 2008

VirtualBox VDI vers disque réel

ATTENTION : les manips indiqués ici peuvent être dangereuses car elles vont supprimer toutes les données présents sur le disque dur de destination, faites très attention à ce que vous faites ! De plus il peut y avoir une incompatibilité au niveau de la géométrie du disque, dans la pratique cela n'arrive qu'au matériel très ancien mais il peut toujours y avoir une surprise avec un disque dur particulier. Avec cette méthode vous ne pourrez pas (ou mal) installer certains systèmes d'exploitation en raison de leur structure et notamment des drivers. C'est probablement le cas de Windows. Ceci à fonctionné dans mon cas mais je décline toute responsabilité quand aux dommages éventuellement causée par cette méthode. Une connaissance des systèmes Linux, et notamment les commandes systèmes, est requis pour effectuer l'opération.

Je viens d'utiliser cette méthode avec succès sur le PC de mon grand père dont le disque dur à du être changé. Son ordinateur étant un peu ancien son lecteur de CD ne marche plus très bien et impossible d'installer Ubuntu depuis le CD. Impossible aussi de booter sur une clé USB mais seulement sur un Linux minimal, étrangement le CD de DSL fonctionne mieux. L'idée est donc d'installer Ubuntu sur une image VirtualBox (donc virtualisé sur mon PC) puis de mettre cette image disque sur le nouveau disque dur.

Préparation de l'image

  • Commencez par créer une machine virtuelle avec VirtualBox, entrez le nom, le type de système (Linux par exemple) et la quantité de RAM (256 Mo par exemple).
  • Dans la page "Disque dur virtuel" choisissez de créer un nouveau disque et c'est là que ce trouve l'astuce : choisissez "Image à taille fixe".
  • Mettez un nom à l'image et sélectionnez une taille qui est à la fois suffisante pour le système à installer et qui peut tenir avec un peu de marge sur la clé qui va servir au transfert (pour Ubuntu j'ai mis 3.62 Go). Si vous pouvez mettez plus d'espace ça évitera de devoir déménager le /usr . Remarquez que les partitions FAT32, fournies à l'origine sur la plupart des clés USB et disque externe, ne permettent pas les fichiers de plus de 4 Go.
  • Démarrez la machine virtuelle. On vous demande si vous voulez booter sur un CD. Acceptez et mettez le CD (ou l'image CD) du système à installer.
  • Installez le système. Pour le partitionnement faites simple et mettez juste "/". Puis éteignez la machine virtuelle lorsque c'est fini et qu'il vous demande d'enlever le CD pour rebooter.

Infos générales à propos des fichiers image disque vdi
Dans VirtualBox les images disque ont pour extension ".vdi". Dans le cas d'une image taille fixe le format est plutôt simple puisque à partir le l'octet 0x3C00 c'est le contenu du disque dur on va donc pouvoir le copier sur le disque de destination avec une simple commande "dd" correctement paramétré.

  • Pour l'instant on récupère simplement le fichier vdi correspondant à notre disque virtuel pour le mettre sur notre clé. Sur le systèmes Linux il se trouve dans "~/.VirtualBox/VDI/".

Sur le PC de destination.

  • Bootez sur un Linux minimal, les Linux en mode texte distribuées sur disquettes devrait suffire. Ce qui faut juste vérifier c'est la possibilité de monter la clé USB et la commande "dd".
  • Mettez la clé USB où ce trouve le vdi, montez la.

La copie sur le PC de destination.
ATTENTION : je rappelle que ceci supprimera toutes les données du disque de destination. Faites attention à ne pas commettre une erreur. Si vous ne savez pas exactement ce que vous faites il est encore temps d'abandonner.

  • On copie donc en ignorant les 15360 (= 512 x 30) premiers octets
dd if=votre_fichier_vdi of=disque_dur_de_destination bs=512 skip=30

Le disque_dur_de_destination étant le périphérique disque dur, souvent /dev/hda ou /dev/sda. Ce n'est pas une partition de ce disque ( /dev/hda1 par exemple ) ni un point de montage. Je vous conseille de bien vérifier ce que vous faites car /dev/sda peut très bien être votre clé USB ou /dev/hda le lecteur CD.

Remarquez qu'il ne doit pas forcément avoir de partitions dessus, de toutes façon le Master boot record est remplacé.

Il faut également vous attendre à ce que l'opération dure longtemps, ça peut durer plusieurs heures si le port USB est en USB 1 ou que le fichier vdi est grand.

Après l'opération vous vous retrouvez avec un grand disque avec une toute petite partition. Vous pouvez créer de nouvelles partitions pour le swap, /usr et /home. Le déplacement des données sur ces partitions sera indiqué dans un prochain billet car celui si commence déjà a être long, de plus ce déplacement n'a rien a voir avec le déplacement d'un vdi sur un disque.

mercredi, 7 mai 2008

Vitesse de hachage de fichiers

Non non, je ne mange pas de la purée de fichier tous les matins ! Le hachage des fichiers permet d'avoir une empreinte permettant de vérifier l'intégrité du fichier, par exemple pour vérifier si un téléchargement c'est bien passé. Il est aussi très utilisé pour éviter de mettre les mots de passe en clair quelque part.

Pour les mots de passe le problème de vitesse ne ce pose pas trop car les codes sont très courts (de 8 à 32 octets en général) mais pour les fichiers la vitesse peut être un critère si on gère de gros volumes ou que l'on est sur un serveur mutualisé. Il existe différentes méthodes pour hasher un fichier ici on teste :

  • La somme (sum), dans la pratique vivement déconseillé
  • Le crc (cksum), un peu mieux mais pas top
  • md5 (md5sum)
  • divers algorithmes sha (sha1 sur 160 bits, et les versions 224, 256 et 512 bits), le sha512 est le plus sûr de tous ceux qui sont testés

Les tests ont été faits sur un iso de la distribution Linux Debian qui fait 158,9 Mo. Les temps d'accès au disque ne comptent pas, on suppose qu'il est toujours en mémoire cache. Pour un disque dur moyen (50 Mo/s) il faudrait ajouter a peu près 3,2s.

Les tests mesurent le temps d'exécution réel des commandes Linux indiquées. Pour plus de précision on teste 5 fois et on extrait la valeur médiane :

sum       : 0,563s
cksum     : 0,703s
md5sum    : 0,524s
sha1sum   : 0,892s
sha224sum : 1,577s
sha256sum : 1,572s
sha512sum : 1,085s

vitesse ckecksum

On remarque que c'est le md5sum qui est le plus rapide, encore plus que le "sum" et "cksum". Pour les SHA on évitera les versions 224 et 256 bits, trop lentes et utilisera les versions 160bits ou 512bits.

mercredi, 26 décembre 2007

Alcool et SSH : pas bon

informaticien bouré

page 4 de 4 -