Comment / Pourquoi cat écrit-il une image ISO de démarrage sur un appareil

15

J'ai récemment découvert que je peux créer une clé USB amorçable à partir d'un fichier ISO en utilisant simplement cat(ou dd).

Je ne trouve aucune information sur la façon dont cela fonctionne. Pourquoi serait:

cat my.iso > /dev/sdb && sync

prendre ce fichier et écrire tous les fichiers qu'il contient, au format de démarrage, sur un appareil?

Tapis
la source
Je n'ai jamais pensé à utiliser catà la place de la ddcréation d'USB en direct
Rob
3
C'était dans les instructions pour "Tails", l'image Tor en direct. J'ai fait une petite recherche sur Google (avant de demander ici) et il semble que dd était ce que les gens utilisaient pour ce genre de chose, mais le chat semble être l'outil préféré maintenant. Je suppose que c'est plus facile car vous n'avez pas à vous soucier de spécifier des paramètres nommés pour les détails d'entrée / sortie.

Réponses:

14

Un fichier ISO est une image complète et formatée du système de fichiers. Tout catou ddfait est faire un peu pour bit copie de cette image du système de fichiers à vos médias cibles.

Il n'y a pas de magie dans les coulisses. La préparation du système de fichiers ISO a été effectuée au préalable (souvent par un outil spécialisé). Il catsuffit d'écrire cette collection d'octets. Il n'interprète pas du .isotout, ni ne comprend qu'il essaie de créer un support amovible amorçable.
Il nécessite une prise en charge appropriée du noyau et du pilote de périphérique pour faire fonctionner le writes sur ce support. Un peu de «magie» continue, car les supports optiques inscriptibles ne fonctionnent pas exactement de la même manière que les disques durs conventionnels. Mais cette magie n'implique pas d'interpréter le contenu du fichier ISO.

Vous pouvez monter le .isofichier directement sans le graver en utilisant un montage en boucle (si une telle chose est disponible sur votre système d'exploitation). De même, vous pouvez créer un fichier qui contient par exemple un ext4système de fichiers, et vous pouvez le catfaire sur une partition.

Tapis
la source
1
et assurez-vous simplement que les données ont bien été écrites sur votre partition (au lieu d'être simplement mises en mémoire tampon)
yuyichao
La synchronisation @yuyichao devrait couvrir cela, non? Edit: Je viens de réaliser que j'ai répondu à un commentaire de 6 ans
Manchineel
5

Cela fonctionne car l'image iso a été traitée avec isohybrid, ce qui installe un chargeur de démarrage syslinux normal dans l'image iso. Cela est possible car l'iso9660 n'utilise pas normalement les premiers secteurs de l'image, donc un chargeur de démarrage du disque dur plus ou moins normal peut y être placé. Lorsqu'il est gravé sur un disque optique, il est ignoré et le BIOS démarre le disque en utilisant la méthode de démarrage conventionnelle el torito cdrom. Lorsque l'image est placée sur un lecteur flash, le secteur de démarrage syslinux est chargé.

psusi
la source