2.3 מערכת הקבצים הרצאה
הרצאה על מערכות קבצים בלינוקס ופקודת mount¶
הקדמה¶
לינוקס, כמו כל מערכת הפעלה מודרנית, מבוססת על מערכת קבצים (File System). המערכת הזו אחראית לניהול, ארגון והגישה לקבצים ולתיקיות, שמאפשרים למשתמשים ולתוכנות לבצע פעולות כמו שמירה, קריאה, עדכון ומחיקה של נתונים. כשמדובר בלינוקס, מערכת הקבצים היא אחת מאבני היסוד של המערכת, ומבנה התיקיות והקבצים חשוב להבין היטב כדי לפתח ולהבין איך המערכת פועלת.
במהלך ההרצאה הזו נלמד על מערכת הקבצים בלינוקס, כיצד בודקים, מנהלים ומחברים (mount) מערכות קבצים, כמו גם סקירה מעמיקה על תיקיות וקבצים חשובים במערכת שמומלץ להכיר.
1. מהי מערכת קבצים?¶
מערכת קבצים היא הדרך שבה נתונים נשמרים, מאורגנים ומנוהלים על מדיה כמו דיסק קשיח, SSD או כל אמצעי אחסון אחר. היא אחראית על ארגון הנתונים בצורה שמאפשרת שמירה של קבצים והגישה אליהם בקלות וביעילות.
במערכת קבצים בלינוקס, כל רכיב במערכת, כולל קבצים, תיקיות, התקני אחסון ועוד, מיוצגים כקבצים במערכת הקבצים.
בזמן שהמערכת פועלת, מערכת הקבצים מנוהלת על ידי קרנל הלינוקס, שמספק ממשק בין תוכניות לבין אמצעי האחסון הפיזיים.
2. מבנה מערכת הקבצים בלינוקס¶
במערכת לינוקס, כל דבר הוא קובץ. זה אומר שמאגרי זיכרון, מכשירים, תיקיות או אפילו קישורים לסקריפטים — כולם נתפסים כקבצים.
המערכת משתמשת במבנה היררכי שבו שורש (root) המערכת נמצא ב-/ (סלש), וכל שאר התיקיות והקבצים מסודרים מתחתיו.
סקירה על מבנה התיקיות בלינוקס:¶
-
הנתיב / (root) - תיקיית השורש היא הבסיס של מערכת הקבצים. כל שאר הקבצים והתיקיות במערכת נמצאים תחת תיקיית השורש.
-
הנתיב /bin - תיקייה המכילה קבצים בינאריים, כלומר, תוכניות ופקודות חיוניות שמדריכות את המערכת לפעול (כמו
ls,cp,mv,cat). -
הנתיב /boot - תיקייה המכילה את כל קבצי ההפעלה שדרושים על מנת לאתחל את מערכת ההפעלה, כולל קרנל הלינוקס.
-
הנתיב /dev - תיקיית המכשירים. בלינוקס, כל מכשיר מחובר נתפס כקובץ. כל מכשיר במערכת (כמו דיסקים, מסך, מדפסת וכו') מיוצג כאן.
-
הנתיב /etc - תיקיית קונפיגורציה. כל קובץ המנהל את הגדרות המערכת (כמו קובץ
passwdלניהול משתמשים, קובץapt/sources.listלמאגרים וכו') נמצא כאן. -
הנתיב /home - תיקיית הבית של המשתמשים. כל משתמש במערכת מקבל תיקיית בית משלו, שהיא המקום שבו נשמרים כל הקבצים האישיים שלו.
-
הנתיב /lib - תיקיית ספריות. מכילה ספריות משותפות (Shared Libraries) שמיועדות לתמוך בקבצים הבינאריים שנמצאים ב-/bin וב-/sbin.
-
הנתיב /media - תיקיית התקנים ניידים. כאן נשמרים התקנים חיצוניים כמו USB, דסקים קשיחים חיצוניים, או דימויים של CD/DVD.
-
הנתיב /mnt - תיקיית מיקומים זמניים (mount points). זהו המקום שבו יכולים המנהלים למקם מערכות קבצים שמחוברות זמנית למערכת (לדוגמה, דיסק קשיח חיצוני).
-
הנתיב /opt - תיקייה בה מתקינים תוכנות נוספות (Optional Software). חבילות או תוכנות מותקנות כאן בנפרד מהתוכנות הבסיסיות של המערכת.
-
הנתיב /proc - תיקיית מערך נתונים דינמיים. כאן נשמרים נתוני הליבה של המערכת, כמו פרטי תהליכים, קונפיגורציות מערכת ועוד. כל קובץ ב-/proc הוא למעשה ייצוג בזמן אמת של רכיב מערכת.
-
הנתיב /root - תיקיית הבית של משתמש ה-root. זהו המשתמש עם הרשאות ניהול מלאות במערכת.
-
הנתיב /run - תיקיית זיכרון (Runtime Data). כאן נשמרים קבצים שהמערכת יוצרת בזמן ריצה, כמו PID של תהליכים פעילים.
-
הנתיב /sbin - תיקיית תוכניות ניהול המערכת. כאן נמצאות תוכניות שמיועדות לניהול המערכת (כמו
ifconfig,fdisk,reboot). -
הנתיב /srv - תיקייה בה נשמרים קבצים שמשרתים שירותים שונים במערכת (כמו אתרי אינטרנט).
-
הנתיב /sys - תיקיית נתונים דינמיים של המערכת. כאן נמצא מידע על רכיבי החומרה של המערכת, חיבורי המכשירים שלה, ועוד.
-
הנתיב /tmp - תיקיית קבצים זמניים. כאן נשמרים קבצים שמיועדים לשימוש זמני, כגון קבצים שנתמכים במהלך פעולתה של תוכנה.
-
הנתיב /usr - תיקיית יישומים ושירותים. כאן נמצאות החבילות המותקנות על המערכת, כולל כל החבילות הנדרשות לפעולתו התקינה של המחשב.
-
הנתיב /var - תיקיית קבצים משתנים. כאן נשמרים לוגים, קבצים נתונים שנוצרים בזמן ריצה (כמו קבצי דואר), נתונים שנרשמים מדי פעם ועוד.
עברו על כל הנתיבים המצויינים וסיירו בהם!
3. קבצים ותיקיות מעניינים ומיוחדים בלינוקס¶
בלינוקס, ישנם קבצים ותיקיות עם משמעות מיוחדת. כמה מהם:
-
הקובץ /dev/null - קובץ מיוחד שמטפל בהעברת פלט שמיועד להישכח. לדוגמה, ניתן להפנות פלט של תוכניות ל-
/dev/nullעל מנת להתעלם ממנו. -
הקובץ /dev/zero - קובץ מיוחד שמחזיר רצפים אינסופיים של אפסים. מתאים לשימוש כשצריך למלא קובץ באפסים.
-
הקובץ /etc/fstab - קובץ חשוב שמכיל את המידע על המערכות קבצים שיחוברו למערכת בעת אתחול.
-
הקובץ /proc/cpuinfo - קובץ זה מכיל מידע על המעבד של המחשב, כגון מספר הליבות, סוג המעבד, גרסה ועוד.
-
הקובץ /proc/meminfo - קובץ המפרט את מידע הזיכרון של המערכת, כולל כמות זיכרון פנוי, בשימוש, ועוד.
-
הקובץ /proc/uptime - קובץ המראה את הזמן שחלף מאז אתחול המערכת.
-
הקובץ __/home//. (קבצי קונפיגורציה)* - קבצים כמו
.bashrc,.profile,.vimrcואחרים הם קבצי קונפיגורציה אישיים עבור כל משתמש.
עברו על כל הקבצים המצויינים וקראו אותם!
4. שימוש בפקודת mount בלינוקס¶
במערכת לינוקס, הפקודה mount אחראית על חיבור של התקנים חיצוניים, כמו דיסקים קשיחים, כונני USB, או מערכות קבצים אחרות, אל מערכת הקבצים המקומית של המחשב. מערכת הקבצים של לינוקס בנויה בצורה של היררכיה, כאשר כל קובץ ותיקיה שייכים לתיקיות שורש (root) והן מחוברות דרך נקודות חיבור (mount points).
מה זה mount?¶
הפקודה mount מאפשרת לחבר התקן או מערכת קבצים אל מקום במערכת הקבצים הקיימת, כך שבאפשרותך לגשת לקבצים שנמצאים על ההתקן כמו קבצים רגילים במערכת. כל התקן במערכת הלינוקס (כמו כונן קשיח, כונן USB, או התקנים אחרים) מקבל מיקום במערכת הקבצים באמצעות חיבור (mount) לנקודת חיבור.
מה זה "Mounting Points"?¶
נקודת חיבור (Mount Point) היא תיקייה במערכת הקבצים שבה יהיו קבצי ההתקן החדש. לדוגמה, אם אתה מחבר דיסק חדש, כל הקבצים שעל הדיסק יהיו זמינים בתוך תיקיית mount point שתבחר. נקודת חיבור כזו יכולה להיות תיקייה כמו /mnt/usb או /media/usb.
הסינטקס של פקודת mount¶
הסינטקס הבסיסי של הפקודה הוא:
-
הdevice - ההתקן או מערכת הקבצים שאתה רוצה לחבר. לדוגמה,
/dev/sdb1או/dev/sda1.
כדי לראות את כל ההתקנים הזמנים לך במחשב הקלידו את הפקודהlsblk -
הmount_point - מיקום בתיקיית מערכת הקבצים שבו אתה רוצה למפות את ההתקן. בדרך כלל מדובר בתיקיות כמו
/mnt,/media, או תיקיות אחרות שמתאימות לפי הצורך.
כאן תוכלו לבחור כל תקייה שתרצו.
דוגמה לחיבור התקן:¶
נניח שיש לך דיסק נוסף במערכת, ואתה רוצה לחבר אותו. תוכל להשתמש בפקודה:
הפקודה הזו מחברת את ההתקן /dev/sdb1 לנקודת חיבור /mnt/usb. כל הקבצים בדיסק יהיו זמינים בתוך תיקיית /mnt/usb.
חיבור אוטומטי בעת אתחול:¶
כדי להבטיח שההתקן יחובר אוטומטית בכל פעם שהמחשב עולה, יש להוסיף את ההגדרה לקובץ /etc/fstab. קובץ זה מכיל את כל המידע על התקנים שיחוברו אוטומטית בעת אתחול המערכת.
הנה דוגמה להוספת הגדרה לקובץ /etc/fstab:
המשמעות של כל שדה:
/dev/sdb1- ההתקן שברצונך לחבר./mnt/usb- נקודת החיבור שבה ההתקן ייכנס למערכת הקבצים.ext4- סוג מערכת הקבצים של ההתקן.defaults- הגדרות ברירות המחדל לחיבור ההתקן.0ו-2- נוגעים למנגנוני הגיבוי והבדיקות של המערכת, ומצביעים על ההתקן והסדר שבו יתבצעו בדיקות המערכת.
איך לראות אילו התקנים מחוברים?¶
כדי לראות אילו התקנים מחוברים כרגע למערכת, תוכל להשתמש בפקודת mount או בפקודת df כדי להציג את כל מערכות הקבצים שכרגע מחוברות.
או
הפקודה df -h תראה לך את כל מערכות הקבצים המחוברות, את גודל כל התקן, השימוש בדיסק, והמרחב הפנוי.
סוגי התקנים שיכולים להתחבר בלינוקס¶
במערכת לינוקס, התקנים יכולים להגיע ממקורות שונים, כל אחד עם סוג מערכת קבצים שונה. הנה כמה דוגמאות לסוגי התקנים שניתן לחבר:
-
כוננים קשיחים פנימיים (HDD/SSD):
- לדוגמה:
/dev/sda1,/dev/sdb1. - לרוב מדובר בכוננים קשיחים במחשב.
-
כונני USB:
-
לדוגמה:
/dev/sdc1,/dev/sdd1. - התקנים חיצוניים שמחוברים דרך יציאת USB.
-
כרטיסי זיכרון (SD cards):
-
לדוגמה:
/dev/mmcblk0p1. - כרטיסי זיכרון חיצוניים מחוברים ליציאות SD או MMC.
-
מערכות קבצים רשתיות (NFS, CIFS):
-
לדוגמה: חיבור למערכת קבצים שממוקמת על מחשב אחר דרך רשת, כמו NFS או CIFS.
-
מערכות קבצים וירטואליות:
-
לדוגמה:
/proc,/sys, או/dev, שמייצגות מידע דינמי על מערכת ההפעלה.
- לדוגמה:
סוגי מערכות קבצים בלינוקס:¶
ללינוקס יש תמיכה במגוון רחב של מערכות קבצים, והן תלויות בסוג ההתקן ובשימוש המיועד. הנה כמה סוגים עיקריים:
- מערכת הקבצים ext4: מערכת הקבצים הנפוצה ביותר בלינוקס. היא מהירה, יציבה, ותומכת בקבצים גדולים ובנפחים גדולים.
- מערכת הקבצים ntfs: מערכת קבצים שמיועדת בעיקר לשימוש במערכות Windows. אם יש צורך לגשת למחשב Windows, ניתן להשתמש ב-NTFS.
- מערכת הקבצים vfat (FAT32): מערכת קבצים שיכולה לעבוד גם במערכות Windows וגם בלינוקס. היא מוגבלת בגודל הקובץ.
- מערכת הקבצים exFAT: מערכת קבצים שמיועדת לאחסון קבצים גדולים, נפוצה בכונני USB וכרטיסי זיכרון.
פירוק חיבור התקן¶
כדי לפרק התקן (להפסיק את החיבור אליו), השתמש בפקודה umount:
פקודה זו תפרק את החיבור בין ההתקן לבין מערכת הקבצים. אם ההתקן נמצא בשימוש (כגון אם אתה נמצא בתיקיית ההתקן), ייתכן שתצטרך לצאת מהתיקייה לפני שתוכל לבצע את הפירוק.