Sauver un ancien Mac en série

Je parlais la semaine dernière d’un adaptateur USB vers série avec une prise Mini DIN 8, ce n’est pas sans raisons : ça permet dans certains cas de sauver (lentement) le contenu d’un Mac.

Je suis tombé sur le logiciel sur les forums de 68KMLA et le fonctionnement est basique : il faut relier le Mac à un ordinateur sous Linux ou macOS (je ne sais pas trop sous Windows) avec un câble série, lancer un programme sur le Mac et attendre. Il permet en fait de copier totalement le contenu d’un disque monté (disque dur, disquette, etc.) dans une image disque. Attention, c’est plutôt lent : il passe par la prise série modem des Mac, limitée dans pas mal de cas à 56K (~7 ko/s).

Le programme a surtout de l’intérêt pour faire une image d’une disquette directement depuis le Mac ou éventuellement pour sauver un Mac avec un disque dur de petite taille (quelques dizaines de Mo). Le débit du port série limite franchement et le programme ne servira vraiment que si vous n’avez pas d’autres solutions. Avec un vieux Mac, d’autres solutions plus rapides existent, même sans passer par une machine intermédiaire : un adaptateur LocalTalk vers Ethernet (on peut espérer ~200 Kb/s, 4x plus), une carte Ethernet (souvent 10 Mb/s, même si les Mac n’atteignent pas ça en pratique) ou le mode Target en SCSI de certains portables (ça suppose tout de même une machine avec du SCSI en face). Enfin, la solution présentée ici demande tout de même un lecteur de disquettes pour installer le logiciel sur le Mac.

Comment ça marche ?

D’abord, le côté matériel. Il faut relier le Mac à un appareil moderne avec un câble série. L’auteur utilise un truc très sale avec deux fils qui passent dans les ports série. Dans mon cas, j’ai utilisé un câble série Mini DIN 8 et un Keyspan USA-28XG. Vous pouvez aussi utiliser un Mini DIN 8 vers DE-9 sans soucis. Bien évidemment, il faut un port série sur l’ordinateur moderne, donc vous aurez besoin d’un adaptateur USB dans 99 % des cas. Sur le Mac, utilisez bien la prise série modem et pas celle qui sert pour les imprimantes.

Le câble série

Côté moderne : Il s’agit d’un simple script Python à lancer avec la commande python serialDiskReceiver.py. Ça fonctionne sous Linux ou macOS, la seule chose à faire est d’indiquer la référence de votre port série. A la 4e ligne, remplacez /dev/ttyS0 par la bonne valeur (/dev/cu.USA28X23P1.1 dans mon cas, mais ça dépend de votre adaptateur série). Une fois le programme lancé, ne fermez rien.

Côté Mac : Premièrement, copiez le programme serialDiskCopy sur le Mac. L’auteur propose une image d’une disquette avec un System 7 minimal pour démarrer. C’est la partie la plus compliquée : généralement, si vous devez récupérer les données, vous n’avez sûrement pas de lecteur de disquettes. Deuxièmement, lancez le programme.

Il va lister les disques montés (disquettes, partages réseau, etc.) et vous proposer de choisir.

Choix du disque

Ensuite, la taille des blocs. L’auteur recommande le choix 4 (65 536).

La taille des transferts

Enfin, pressez une touche et attendez. C’est évidemment assez lent (56 kb/s en théorie, un peu moins en pratique) et ça peut prendre quelques heures pour un simple disque dur de 40 Mo.

En cours


Terminé

A la fin, dans le dossier où se trouve le script Python, vous trouverez un fichier serialDiskCopy-data.bin. Il s’agit d’une image disque du contenu du disque dur. Sous macOS, j’ai dû renommer le fichier en .img pour le monter.

Sur l’appareil moderne

Le programme a le mérite de fonctionner correctement et de permettre de faire une image d’une disquette ou d’un disque dur facilement, même si c’est un peu lent et donc à réserver aux cas les plus difficiles.