שיעור 06: מערכת הקבצים (APFS)¶
חלק ב': מדריך העברה למרצה
1. מהפיכת APFS (The APFS Revolution)¶
1. Objective¶
הסטודנטים יבינו את הארכיטקטורה של APFS, בדגש על היתרונות של מכולות (Containers) ושיתוף מקום פנוי, וכיצד היא מחליפה את שיטות ה-Partitioning הישנות תוך מתן מענה למקרי קצה ולתקלות נפוצות.
2. Discussion (Script)¶
- זיכרון העבר (Partitions מול APFS):
- בעבר חילקנו דיסק קשיח למחיצות קשיחות (HFS+ ואפילו MFS ההיסטורית מלפני 40 שנה).
- הוקצה מקום מוגדר מראש לכל מחיצה. טעות בהערכה דרשה גיבוי, מחיקה והתחלה מחדש.
- המהפכה של APFS (2017):
- החלפת מחיצות קשיחות ב-Containers (מכולות).
- המכולה: בריכה ענקית של מקום אחסון שמנהלת את השטח לכל מה שבתוכה.
- ה-Volumes (כרכים): יחידות האחסון שבתוך המכולה. הם גדלים ומתכווצים דינמית.
- כל הכרכים באותה מכולה חולקים בדיוק את אותו המקום הפנוי.
- הקסם של Copy-on-Write (CoW) ו-Clones:
- איך המערכת מונעת שחיתות נתונים (Data Corruption)? שינויים נכתבים תמיד לבלוקים חדשים, ורק אז מעדכנים את המצביע.
- שכפול קובץ עצום לוקח שבריר שנייה ולא תופס מקום נוסף! זהו ה-Clone. מקום חדש נתפס רק כאשר העותק משתנה.
3. Demonstration¶
- מסוף הפקודות (Terminal):
- פתחו Terminal והקלידו
diskutil list. - הצביעו על ה-Container הראשי (למשל
disk3). - הראו את הכרכים תחתיו (System, Data, Preboot, Recovery, VM).
- הדגישו: כל הכרכים חולקים את אותו המקום הפנוי של ה-Container.
- כלי העזר לכוננים (Disk Utility):
- הציגו יצירת Volume חדש בלחיצת כפתור (+).
- הראו כיצד ניתן להגדיר לו Quota או Reserve כדי למנוע מצב שכרך אחד גוזל את כל המקום.
4. Instructor Deep-Dive¶
העמקה למדריך: מקרי קצה ו-fsck_apfs
- קריסות ו-fsck_apfs:
- לאחר קריסה, המערכת מריצה
fsck_apfsברקע, מה שיכול להיראות כתקיעה על לוגו התפוח. - שגיאות מול אזהרות: אזהרות (Warnings) יכולות להיות שוליות, אך שגיאות (Errors) המציינות מספר Inode דורשות תיקון.
- Failure to unmount: שגיאה נפוצה מאוד ב-Disk Utility בעת בדיקת כונן חי. הפתרון: לאתחל למצב Recovery ולהריץ First Aid משם, היכן שכונן ה-Data אינו בפעולה.
2. הפרדת המערכת (SSV)¶
1. Objective¶
הסטודנטים ילמדו על הפרדת מחיצת המערכת ממחיצת המידע ב-macOS, מנגנון ה-SSV (Signed System Volume), פתרון בעיות כוננים יתומים ותפקידם של ה-Firmlinks.
2. Discussion (Script)¶
- ההיסטוריה (Macintosh HD):
- פעם, קבצי מערכת ומשתמש חיו יחד. וירוסים או טעות משתמש יכלו להשחית קבצים קריטיים.
- השינוי (Catalina / Big Sur ואילך):
- פיצול המערכת ל-System Volume (מערכת) ו-Data Volume (מידע).
- System Volume: נעול הרמטית (Read-Only) וחתום קריפטוגרפית (SSV). אף אחד לא יכול לשנות בו בייט.
- Firmlinks (חורי תולעת):
- כדי לשמור על חוויית משתמש אחידה, Firmlinks תופרים את שתי המחיצות יחד.
- ה-Finder מציג אותן ככונן יחיד (Macintosh HD).
3. Demonstration¶
- הצגת מחיצות ב-Terminal:
- הריצו
mount. הראו את שורת ה-System (/) שהיאread-only, ואת/System/Volumes/Dataהפתוחה לכתיבה. - הדגמת חסימת כתיבה:
- הריצו
sudo touch /System/test.txtוהראו את הודעת השגיאה "Read-only file system". - חשיפת ה-Firmlinks:
- הריצו
cat /usr/share/firmlinksלהצגת "התפרים" שמחברים את המערכת.
4. Instructor Deep-Dive¶
העמקה למדריך: Secure Boot ו-Orphaned Volumes
- Boot מתוך Snapshot:
- המערכת למעשה מבצעת אימות קריפטוגרפי בזמן הדלקה ועולה מתוך תמונת מצב (Snapshot) קשיחה.
- Edge Case - Orphaned Data Volume:
- תופעה שבה נוצר נתק בין ה-System ל-Data (לעיתים לאחר שחזור שגוי). המשתמש רואה כונן בשם
Macintosh HD - Dataשתופס מקום אך אינו מחובר. הפתרון לרוב דורש גיבוי, מחיקת קבוצת הכרכים (Volume Group) ב-Recovery, והתקנה נקייה.
3. מרחבי מערכת הקבצים (File System Domains)¶
1. Objective¶
הסטודנטים יבינו את החלוקה הווירטואלית של מערכת הקבצים למרחבים (User, Local, Network, System) וילמדו כיצד לאבחן תקלות הרשאות בסביבה מרובת משתמשים.
2. Discussion (Script)¶
- למה צריך מרחבים?
- דמיינו בניין: המשרד האישי (User), הלובי המשותף (Local), וחדר השרתים הנעול (System).
- ארבעת המרחבים:
- User Domain (
~): המרחב האישי שלכם. יש לכם שליטה מלאה בו ללא סיסמת אדמין. - Local Domain (
/Libraryאו/Applications): משותף לכל המשתמשים ב-Mac. דורש סיסמת אדמין לשינויים. - Network Domain: משאבי רשת בארגון.
- System Domain (
/System): נעול הרמטית. אין כניסה. - תרחיש ארגוני קלאסי (Edge Case):
- משתמש התקין פונט, אך חבר שעשה Login לאותו Mac לא רואה אותו. למה?
- כי הפונט הותקן ב-User Domain (
~/Library/Fonts). כדי שיהיה זמין לכולם, יש להעבירו ל-Local Domain (/Library/Fonts).
3. Demonstration¶
- ניווט מהיר בטרמינל:
- הראו כיצד
cd ~מחזיר אתכם לתיקיית הבית, וכיצד היא שונה מהתיקייה הכללית (cd /Library).
4. Instructor Deep-Dive¶
העמקה למדריך: קדימויות קריאה
- תוכנות תמיד יחפשו קודם ב-User Domain, ולאחר מכן ב-Local Domain, מה שמאפשר למשתמש בודד לדרוס הגדרה גלובלית עם קובץ מקומי משלו מבלי לפגוע באחרים.
4. מנוע החיפוש Spotlight¶
1. Objective¶
הסטודנטים יכירו את מנגנון הקיטלוג (Indexing) של Spotlight, ילמדו כיצד לפתור בעיות דיווח נפח שגוי (System Data), ויבינו את ההשפעה של תהליכי רקע מתקדמים כמו Live Text.
2. Discussion (Script)¶
- ה-Spotlight כליבת המערכת:
- מנוע חיפוש שמניע הכל - מקבצים ב-Finder, דרך המיילים ועד לתצוגת שטח האחסון ("About This Mac").
- איך זה עובד?
- אינו סורק בזמן אמת, אלא מבוסס על אינדקס סמוי (
.Spotlight-V100). - תהליכי עזר (
mdworkerבעזרת פלאגינים הנקראיםmdimporter) קוראים קבצים ברקע ומוסיפים אותם לקטלוג. - כשהדברים משתבשים:
- אם ה-System Data תופס כביכול טרה-בייט, או שקבצים ידועים לא נמצאים בחיפוש, האינדקס כנראה מושחת. הפתרון הוא לאלץ את המערכת לבנות אותו מחדש.
3. Demonstration¶
- זיהוי תהליכים (Activity Monitor):
- חפשו תהליכי
md(mds,mdworker) כדי להראות את המנוע בפעולה. - מחיקת אינדקס מה-GUI:
- דרך System Settings > Spotlight > Search Privacy, הדגימו כיצד הוספה והסרה של כונן מוחקת את האינדקס הישן.
- הפקודה
sudo mdutil -E /: - הציגו את פקודת הטרמינל שעושה בדיוק אותו הדבר.
4. Instructor Deep-Dive¶
העמקה למדריך: Sequoia ו-Runaway Indexing
- Live Text ואנליזת תמונות:
- בגרסאות עדכניות, Spotlight מריץ תהליכים כמו
photoanalysisdלפענוח טקסט מתמונות (OCR). - Runaway Indexing:
- תהליך זה דורש עיבוד רב (מופנה לליבות ה-Efficiency במעבדי Apple Silicon). עשוי לקחת ימים לאחר עדכון גדול. הפתרון הטוב ביותר: לתת לזה לרוץ ללא הפרעה, אלא אם מזהים קובץ ספציפי שתוקע את המערכת (ניתן לבידוד ב-Safe Mode).
5. תיבול ארגוני (Enterprise Seasoning)¶
1. Objective¶
הסטודנטים יבינו כיצד ארכיטקטורות ה-SSV וה-APFS משנות את חוקי המשחק עבור כלי אבטחה (Antivirus, DLP) וניהול ארגוני (MDM).
2. Discussion (Script)¶
- התנגשות בין כלים ישנים למערכת חדשה:
- בעבר, אנטי-וירוס היה סורק את כל קבצי המערכת באופן רציף. כיום, הודות ל-SSV הנעול והחתום, אין בזה צורך! זהו אזור מוגן וסריקה שלו היא בזבוז משאבים (I/O).
- מלכודות ה-Firmlinks:
- כלי תוכנה מיושנים שמנסים לסרוק את כל הכוננים עלולים להיכנס ללולאה (Loop) אינסופית בגלל ה-Firmlinks, מה שעלול לגרום ל-Kernel Panics.
- הפתרון במחלקת ה-IT:
- חובה להחריג (Exclude) את תיקיות הליבה של ה-System מתוכנות האבטחה (On-Access Scans).
- בעת כתיבת סקריפטי הפצה, יש להשתמש בנתיבים מבוססי Firmlinks מאושרים (כמו
/usr/local/במקום ה-/usr/bin/הנעול).
3. Demonstration¶
- אימות סטטוס ההגנה של SSV:
- הריצו בטרמינל:
csrutil authenticated-root status. - הראו שהסטטוס הוא
enabled, הוכחה לאיש ה-IT שהכונן חתום ואין שום צורך לסרוק אותו נגד וירוסים המשנים קבצי ליבה.
4. Instructor Deep-Dive¶
העמקה למדריך: עדכוני סוכנים (Agents)
- כלי DLP ו-AV מודרניים המעודכנים ל-Tahoe/Sequoia יודעים לזהות Firmlinks ולהימנע מהם. חשוב תמיד להדגיש בפני טכנאים בארגון לשמור על גרסאות סוכני האבטחה מעודכנות, שכן תקלות רבות (כמו "המק קורס") נובעות מסוכן ישן שמתנגש עם חוקי ה-SSV הנוקשים של Apple.