לפני שאנחנו מתחילים, אם מישהם מהקוראים לא מזהים את הרפרנס שבשם הפוסט, הם מוזמנים לקרוא כאן.
סיפורנו מתחיל בהתראה שקיבלתי בפייסבוק. מישהו תייג אותי בקומנט על פוסט אז נכנסתי לראות במה מדובר. מסתבר שמישהי מחפשת עזרה עבור קרוב משפחה, בחילוץ קבצים מדיסקטים של מקינטוש ישן. הואיל ויש לי גם מקינטוש ישן וגם ציוד ייעודי לקריאת דיסקטים בכל הפורמטים, שמחתי לנסות לעזור.
כותבת הפוסט יצרה איתי קשר וחיברה אותי עם חמה. קבענו שנדבר בשבת בבוקר. בשישי בערב כבר הכנתי Setup עם Macintosh LC 475 ווידאתי שאני יכול לקרוא דיסקטים ולכתוב אותם:
על הדרך, גיליתי שדיסקט שנוצר על מק ישן (שנות ה-80׳ ותחילת ה-90׳) ניתן לקריאה, אך לא לכתיבה, גם על מק מודרני. זה דורש, עם זאת, כונן דיסקטים חיצוני בחיבור USB:
שבת בבוקר הגיע, ו-מ׳ ו-י׳, זוג חמוד בגיל של הוריי, הגיעו אלי לדירה עם הדיסקט המדובר. י׳ היא מלחינה ויש על הדיסקט המדובר יצירה חשובה שאין לה עותקים נוספים. היו דיסקטים נוספים שנקראו בהצלחה ורק זה לא. הזוג זכר שייתכן שחלק מהעבודה נעשה על מחשב מקינטוש באוניברסיטה ולכן זו היתה הנחת העבודה ומשם התחלנו.
לאור מה שלמדתי ערב קודם, ניסיתי לקרוא את הדיסקט על המק שלי, אך הוא לא זוהה כלל. זה אמר לי שאין לי גם מה לנסות על המק הישן ושמדובר במשהו אחר לחלוטין. הגיע הזמן לעבור אל התותחים הכבדים:
שני המכשירים שבתמונה - Kryoflux ו-Greaseweazle - הם כלי אירכוב (Archiving) של דיסקטים ישנים. אלו הם לוחות אלקטרוניים קטנים (נמצאים בתוך הקופסאות שבתמונה) שיודעים להתחבר ישירות אל הכונן, ללא מחשב, לשלוט ישירות על הכונן ולקרוא את כל המידע שיש על הדיסקט. מעבר לתמיכה המובנית שיש להם בפורמטים שונים של כתיבת מידע, שהיו בשימוש בדורות שונים וע״י יצרנים שונים (רשימה מפורטת, למי שמתעניין, נמצאת כאן) ומאפשרת להם לחלץ את הקבצים כמות שהם, שני המכשירים האלו יודעים גם לקרוא את השטף המגנטי הגולמי - Raw Magnetic Flux - מהמדיה, ללא שום התערבות ו/או תרגום.
את השטף הזה אפשר לכתוב אח״כ לדיסקט אחר ולקבל העתק מושלם של הדיסק המקורי, כולל אמצעי הגנה שונים שאינם פיזים (כמו חור בדיסקט, למשל). בנוסף, אפשר לבצע המרה לפורמטים אחרים, ניתוח מעמיק יותר של המידע ועוד.
בחרתי להשתמש בעליון - Greaseweazle - כי הוא נוח יותר לעבודה עם Flux. הוא מייצר קובץ אחד עם סיומת scp שאותו אפשר לטעון אח״כ לכלי ניתוח שונים.
הכלי קרא 82 טראקים כמעט ללא בעיה. למעשה, רק סקטור אחד מתוך 2880 היה לא תקין - הישג לא רע לדיסקט בן 30!
הדבר הראשון שעשיתי היה לטעון את ה-Raw Flux לתוך כלי בשם HxCFloppyEmulator. זהו כלי לניתוח Disk Images, חילוץ קבצים, פיענוח פורמטים וצפייה במידע הגולמי.
האופציה התחתונה - Track Analyzer - פותחת כלי שמראה בצורה ויזואלית את המידע על ה-Image. זה יכול להיות הצגה של השטף המגנטי (פחות מעניין במקרה שלנו) או הצגה שלו בהתאם לאחד מהפורמטים הנפוצים (יותר מעניין במקרה שלנו).
בין אם הדיסקט היה של מקינטוש או של PC, טכנולוגיית הקידוד שלו היא MFM ולכן זה היה הניסיון הראשון שלי:
תראו איזה יופי! אפשר לראות בצורה ברורה ויפה כיצד המידע מאורגן על הדיסקט. יש לנו 18 סקטורים בכל טראק, מה שמתאים בול לפורמט של דיסקט 1.44Mb סטנדרטי. למעלה מימין אפשר אפילו להבחין בסקטור הפגום היחיד - פס אדום באמצע הסקטור הירוק.
אופציה נוספת מהתפריט - Disk Browser - טענה שלא מדובר בדיסקט תקין ולכן אין מה להציג:
בנקודת זמן זו הבנתי שאין מה לעכב יותר את הזוג החמוד, שישב לידי משתאה. התנצלתי על כך שלא הצלחתי לחלץ עדיין את המידע אבל ניחמתי אותם בכך שלכל הפחות יש לנו עכשיו גיבוי מדוייק של הדיסקט. הבטחתי להם שאמשיך לעבוד על זה. הזדעזעתי כשהם שאלו אותי ״כמה אנחנו חייבים לך״ וכמעט זרקתי אותם מהדירה, אז מ׳ הבטיח לי שאם הוא ייתקל במחשב ישן, הוא יעדכן אותי :-)
אחרי שהם הלכו, המשכתי לבד. מכיון שניתוח הדיסקט הראה מבנה תקין, אך לא הודגם פורמט סטנדרטי, השלב הבא היה להסתכל ישירות על המידע שחולץ מהדיסקט. הפעם, זה כבר לא היה בפורמט של Raw Flux אלא בפורמט של MFM - ז״א מידע כאילו נקראו הסקטורים מהדיסקט באופן תקין.
כבר במבט ראשון ניתן היה לראות שיש פה בעיה:
הסקטור הראשון בכל דיסקט נקרא Boot Sector. הוא מכיל נתונים בסיסיים על אופן ארגון הנתונים על הדיסק (הפרישה הפיזית שלהם) וחתיכת קוד קטנה. אבל כאן, לא רק הסקטור הראשון מחוק, אלא השניים הראשונים (גודל סקטור הוא 512 בתים, שהם 0x200 בבסיס 16). ז״א שגם הסקטור הראשון של רשימת הקבצים (Directory Listing) מחוק, אז אנחנו לא יכולים לדעת אילו קבצים היו על הדיסקט, מה היה גודלם והיכן על הדיסקט הם נמצאים...
ביצעתי הערכת מצב והגעתי למסקנה שיהיה סביר להניח שכל הקבצים נכתבו פעם אחת, ולכן רוב הסיכויים הם שכל הקבצים נמצאים על הדיסק כיחידה רציפה (Contiguous) אחת. זה אולי נראה לכם טריוויאלי אבל מערכות הקבצים תומכות במקרים בהם קובץ נמצא בכמה מקומות, למשל כאשר היו כמה בלוקים קטנים פנויים במקום בלוק אחד גדול, והקובץ חולק על-פניהם.
התחלתי לעבור ידנית על 2880 הסקטורים, כשאני מחפש תופעות ויזואליות שתוכלנה לתת לי רמזים כלשהם באשר למבנה הקבצים. למרבה המזל, זו הסתברה כמשימה פשוטה למדי: כל קובץ של התוכנה בה נוצרו הקבצים - Finale - התחיל במחרוזת טקסט שציינה את שם התוכנה ומספר הגרסא שלה:
כל המקומות בהם הופיעה המחרוזת הזו גם היו בכתובות (Offsets) שהן כפולה של 0x200 - ז״א תחילת סקטור - רמז חזק תומך בכך שזו אכן תחילתו של הקובץ. בנוסף, כבר אפשר לראות שהתוכנה היא משנת 1987, כך שייתכן שהדיסקט בכלל בן 35!
עברתי על כל ה-Image וחיפשתי את כל המופעים של המחרוזת הזו. בסה״כ מצאתי כ-13 כאלו:
לקראת מלאכת השחזור, הורדתי עותק Trial של התוכנה והתקנתי אותו על המחשב שלי. קיוויתי למצוא רמזים נוספים למבנה הקובץ, אך הגרסא הנוכחית היא כבר מס׳ 27 והקבצים נשמרים בפורמט שונה לחלוטין. עם זאת, קיוויתי שאוכל לנסות לפתוח קבצים ישנים, כדי לוודא שהצלחתי לשחזר משהו רלבנטי.
חיפוש בפורום של משתמשי התוכנה נתן לי את התשובה:
כל מה שצריך לעשות הוא לתת לקבצים את הסיומת mus.
עברתי ידנית על קובץ ה-Image וחילצתי את הקבצים:
והגענו לרגע האמת: האם אצליח לפתוח את אחד הקבצים? Drum roll.....
זה עבד!!!
אני לא יודע מי היה יותר מאושר - י׳, שקיבלה בחזרה את הקבצים האבודים שלה, או אני, שאשכרה הצלחתי לשחזר אותם מדיסקט בן 35...
זה הזמן לתת את כל הקרדיט לאלדד גלקר מחברת ״צ׳יף הצלת נתונים״, אצלו עבדתי בתחילת שנות ה-90 וממנו למדתי את כל מה שאני יודע על שחזור מידע ❤️❤️❤️.
אני מקווה שנהניתם מהקריאה כמו שאני נהניתי מהשחזור ומהכתיבה.
תודה שקראתם!
Comments