מתוך אובונטו
מחיצות, עיגון ומה שבניהם
כללי
לכל פריט חומרה במחשב (ובכלל) יש שם משלו, מעין תעודת זהות (serial number) הנקבעת ע"י היצרן וזאת בכדי לאפשר את שימושו, באמצעות מער' ההפעלה, ע"י המשתמש בפועל.
דיסק קשיח, במובן זה, אינו שונה מכל רכיב אחר אלא שבמרוצת הזמן נולד הצורך בחלוקה למחיצות ומשזה תפס תאוצה בשימוש רחב נולד הצורך בחלוקת המשנה הלוא הם מחיצות לוגיות.
בהשוואה למער' חלונות, במער' הפעלה חופשיות יכולת השליטה על חלוקת המחיצות זמינה הרבה יותר ובהדרכה קצרה יכול המשתמש להינות מיכולת שימוש ותפקוד מקסימלית לפי רצונו ודרישותיו הוא.
במאמרי הקודם,
הכנות טרום התקנה, סקרנו את סוגי המחיצות, מער' הקבצים הדומיננטיות ובדרישות מינימליות להקמת מער' הפעלה בסיסית. כעת נסקור את משמעות הפרמוט, חלוקה למחיצות ועיגון.
אלוקציה
הדיסק הקשיח הינו אמצעי אחסון מגנטי המחולק ל Tracks (מסילות) ול – sectors (מגזרים) ובשל כך יכול המשתמש, לפי רצונו, לערוך חלוקה חדשה (ושונה אם ירצה) בכל פעם בין כמות מסילות וכמויות מגזרים בכל מסילה כך שיענה על דרישותיו. להקצאה שכזו ניתן לקרוא "פרמוט" או "חלוקה למחיצות" או "אלוקציה".
לכל חלק מסך האלוקציה יינתן שם משלו, ע"י מער' ההפעלה עצמה (הגם שניתן להעניק לו שם משלנו במסגרת התיוג – Label עליה לא אסקור במאמר זה) ובכך נוכל לייחד את החלק מהשאר, לעגן אותו כאוות נפשנו ולהעניק לו פרמטרים כאילו היה רכיב נפרד במער' כך שניתן יהיה לשלוט על תפקודו המלא
(גם במשמעות הרס, מחיקה ושאר מריעין בישין).
הקצאה - כיצד
ניתן לפרמט באמצעות שלל תוכנות כגון gparted או דרך הטרמינל. כלום לא יוכל להעניק הדרכה מלבד התנסות (וטעייה) בפועל של המשתמש ורק אזכיר את הדברים הבאים:
-
דיסק קשיח אחד ניתן לחלוקה של עד 4 מחיצות ראשיות.
-
מחיצה לוגית הינה מחיצה ראשית הניתנת לחלוקה פנימית (וירטואלית) של מחיצות רבות הרבה יותר.
-
ניתן להשאיר מחיצה ללא מער' קבצים (FS) אך זו תישאר ללא יכול עבודה של ממש.
-
דיגלון ותיוג הינם פעולות שנועדו לעקוף את הגדרות ברירית המחדל בביוס (BIOS), במער' ההפעלה ו\או את החומרה (לדוג': Jumper) – עליהם לא אסקור במאמר זה.
עיגון
על אף קיומן של שלל תוכניות בעלות ממשק גרפי נוח לביצוע עיגון בחרתי לסקור את האפשרות הידנית מהטעם כי תלות בתוכנה חיצונית לתפעול נושא בעל חשיבות כה רבה משאיר את המשתמש ללא יכולת שליטה וככזה, בעת תקלה, יהיה קושי רב בזיהוי וביכולת ההתגברות עליה.
עיגון ידני יעניק למשתמש את הידע ואת השליטה על הרכיב המדובר ודרכו על מער' ההפעלה בכל עת.
תחילת תנועה
הן במידה וקיימות מחיצות קודמות כגון אלו של ווינדוס והן במידה וערכנו הקצאה כאוות נפשנו אנו צריכים לדעת מה מזוהה ע"י מער' ההפעלה בטרם ניגש לביצוע העיגון.
ככלל, אם לינוקס בנויה בקבצים הרי שלכל רכיב במחשב בהכרח יהיה קובץ המגדיר אותו לצורך שימוש בו במער' ההפעלה, קבצי הרכיבים (Devices) יהיו תחת ספריית השורש (dev/) ורכיבים העונים להגדרה של שטח אחסון יהיו בתוך הגדרות הדיסק (dev/disk/), ניתן יהיה להציג את המידע בכמה דרכים בהתאם לצורך ולהלן כמה מהם:
-
פקודת mount – תציג את את כלל הרכיבי האחסון המעוגנים בלבד כגון HD, Partitions, USB ורכיבים שעוגנו באמצעות כלי שלישי. כ"כ תוצגנה מיקומי העגינה ופרמטרים לעגינה כגון הרשאות וכיו"ב.
-
פקודת fdisk -l – ניתנת לשימוש בהרשאת על (sudo), תציג (ברשימה) שלל פרמטרים חיוניים כגון סדר הרכיבים, דיגלונים, מער' קבצים, סקטורים ומגזרים שהוקצו לרכיב ושאר פרמטרים מעניינים.
-
פקודת ls /dev/disk – תציג 3 אפשרויות, שיש להוסיף לפקודה, למיון המידע לפי מפרמטרים שניתן יהיה להשתמש בהם לצורך עיגון בזיהוי ובכך יאפשרו חוסן מפני אי אילו שהן תקלות עתידיות או לרכיבים ספציפיים וייחודיים (דוג' להוספת פרמטר לפקודה: ls /dev/disk/by-uuid).
-
פקודת blkid – תציג את הרכיבים עם מאפיינים פיזיים חיוניים כגון שמות וסדר הרכיבים.
סדר קריאה וסדר הצגה
בלינוקס, דיסק קשיח מזוהה כ - hda או sda (השוני אינו רלוונטי) והיותו ראשון בזיהוי תינתן לו הספרה אפס (0) שכן אפס הוא ערך לכלל הרכיב כאילו היה מחיצה שלמה. מכאן, שכל רכיב קיים או שנוסיף בהמשך יקבל את האות או הספרה לפי מועד יצירת החיבור ואשר יזוהה בהתאמה כ – hdb או sdb וכן הלאה באותיות.
לעומת זאת, מחיצות לא יקבלו את הספרה אפס אך יש הבדל בין סדר הצגתן לבין סדר קריאתן, היות העניין מבלבל אתן כמה דוגמאות:
hd0,0 – הינו רכיב אחסון ראשון ומחיצה ראשונה שבו אך הצגתו תהא hda1 או sda1.
hd1,0 – הינו רכיב אחסון שני ומחיצה ראשונה שבו אך הצגתו תהא hdb1 או sdb1.
hd2,4 – הינו רכיב אחסון שלישי ומחיצה חמישית (לוגית) שבו אך הצגתו תהא hdc5 או sdc5.
לאחר שהשגנו את המידע הדרוש לעיגון, לפי כל פקודה שבחרנו, ניגש לעריכת הקובץ האחראי על העיגון הקבוע והוא ה - fstab המצוי תחת ספריית המערכים etc , את הקובץ ניתן לערוך בהרשאת על (sudo) בלבד ולהלן הפקודה:
sudo gedit /etc/fstab (ניתן כמובן להשתמש בכל עורך טקסט שחפצה נפשכם).
לאחר שהעלינו את הקובץ ניתן לראות בו את שלל הכתיבה שבוצעה בזמן ההתקנה הראשונה, כ"כ ניתן לראות את אופן התכתיב לצורך העיגון הקבוע ולקבל מושג כללי על המידע הדרוש לעיגון שכזה.
זכור: כל שינוי בקובץ יגרום לשינויים בתפקוד הרכיבים המעוגנים ויש לנקוט במשנה זהירות ובהערכות מוקדמת.
הערה: קיים קובץ נוסף בשם mtab הקשור לנושא אך לא נדרשת עריכתו לצורך העיגון הקבוע.
נקודת עגינה
עיגון רכיב חייב להיות לספריה כדי שמער' ההפעלה תוכל לקרוא ולהשתמש במידע. אם נרצה שהרכיב המעוגן יהיה בשימוש כלל מערכתי אזי נמצא בספריית השורש (Root) שתי ספריות משנה ואלו הם:
-
media – כל רכיב שיעוגן בתוכה יופיע בתפריטי המערכת תחת "מיקומים" (places) ועל שולחן העבודה.
-
mnt – כל רכיב שיעוגן בתוכה לא יופיע בתפריטי המערכת ולא על שולחן העבודה.
בכדי לעגן באופן קבוע יש להכין תת ספריה בתוך אחת מספריות המשנה לעיל בדרך של הרשאת על כך:
sudo mkdir /media/xxx (כאשר "xxx” הינו שם תת הספריה שבחרת)
או
sudo mkdir /mnt/xxx (בשינויים המתחייבים).
אזהרה: אין למחוק או לפרמט ספריית משנה בזמן שרכיב מעוגן שכן בדרך זו נשמיד את המידע שברכיב.
התכתיב – Syntax
בקובץ ה - fstab ניתן לראות את התכתיב לפי סדר הקריאה לפקודה (ולפי הגיון בריא) והם:
<device> <mount point> <file system> <options> <dump> <pass>
בכל הנוגע ל device, mount point, file system – יש להכין מידע אודותם מראש כך:
-
device – בהתאם לפקודה שבחרנו, הדרך הפשוטה הינה sudo fdisk -l.
-
mount point – יש להכין מראש נקודת עגינה כאמור לעיל.
-
File system – מער' הקבצים אותה בחרנו עת ההקצה (ntfs, vfat, ext וכו'..).
במידה ומתעוררות בעיות של זיהוי הנוגע ל FS אזי ניתן לקבוע פרמטר auto ובכך לבחון את העיגון מחדש.
המלצה: בכדי שהרכיב יוכל להעגן גם במער' חלונות בדרך טבעית מומלץ לפרמט לו FS מסוג vfat או ntfs.
האפשרויות – Options
כללי:
ro – קריאה בלבד (read only).
rw – קריאה וכתיבה (read + write).
exec – הרצה, הוצאה לפועל (execution).
auto – תבוצע עגינה אוטומטית בעת עלית המערכת.
noauto – לא תבוצע עגינה אוטומטית בעת עלית המערכת (ובכל פעם נצטרך לפקוד דרך הטרמינל).
user – בעת עליית המערכת העיגון יהיה בבעלות המשתמש שיצר את נקודת העיגון (זה שנכנס למער').
users – בעת עליית המערכת העיגון יהיה בבעלות כל המשתמשים שבקבוצת ה users.
nouser – בעת עליית המערכת העיגון יהיה בבעלות משתמש על (root) בלבד.
uid - בכדי לקבוע הרשאה בלעדית למשתמש (לדוג': uid=amos או uid=1000).
gid – בכדי לקבוע הרשאה בלעדית לקבוצת משתמשים (לדוג': gid=homepc או gid=100).
defaults – ברירת מחדל המעניקה את האפשרויות - rw, auto, nouser, exec,
למער' קבצים לינוקסאיות (ext) יש אפשרויות נוספות כאשר אנו מבחינים בין זמן גישה לזמן שינוי:
atime – מבצע הקלטה של זמן הגישה האחרון שנעשה לקובץ.
noatime – לא מבצע הקלטה של זמן גישה כאמור.
relatime – מבצע עדכון לזמן הגישה לקובץ במידה שהוא קודם לזמן השינוי בקובץ.
ייחוד ntfs ן - vfat
היו מי שטענו כי אחד החסרונות של FS מסוג vfat) fat32,16) הינו היעדר אפשרות לקביעת הרשאות למשתמשים שונים - האומנם?
ובכן, ישנה דרך, אם כי לא מושלמת, באמצעות הוספת פרמטרים מסוג: dmask, fmask ו - umask וכן ערכים אוקטליים בהתאם (מתאים ל vfat + ntfs) כדלקמן:
umask - הרשאה ספציפית לרכיב המעוגן לכל משתמש שנכנס למערכת.
dmask - הרשאה ספציפית ברכיב המעוגן לפי ספריה וכל מה שבתוכה למשתמש שנכנס למערכת.
fmask - הרשאה ספציפית ברכיב המעוגן בקובץ למשתמש שנכנס למערכת.
הערכים:
0 - אין הרשאה לכלום
1 - הרשאת הרצה בלבד - execute - x
2 - הרשאת כתיבה בלבד - write - w
3 - הרשאת קריאה והרצה בלבד - write + execute - wx
4 - הרשאת קריאה בלבד - read - r
5 - הרשאת קריאה והרצה בלבד - read + execute - rx
6 - הרשאת קריאה וכתיבה - read + write - rw
7 - הרשאת קריאה + כתיבה + הרצה - read + write + execute - rwx
המיקום של הערך אף הוא חיוני, משמאל לימין, שכן הוא מתייחס לאחד משלושת המורשים:
owner, group, other
על מנהל המערכת לפתוח קבוצה ייחודית למשתמשים, לשייך כל משתמש לקבוצה ובשורת העיגון (בקובץ ה fstab) להגדיר את הפרמטים לעיל ביחס לכל משתמש
לוגמא:
gid=1001,dmask=027,fmask=137 אשר יעניק למשתמש שהחליף משתמש אחר על אותו מחשב את ההרשאה להיכנס לספריה המעוגנת, להריץ קובץ קיים וליצור קובץ
חדש שיהיה רק בבעלותו גם אם יתחלפו המשתמשים בהמשך.
לחילופין, ניתן להעניק לכל משתמש באשר הוא יכולת רק על קבצים שבבעלותו בתוך הרכיב המעוגן, לדוגמא:
umask=700
- נושא זה רחב הרבה יותר מאשר יריעה זו יכולה להכיל ולכן אסתפק בדוגמאות לעיל.
* ישנם אפשרויות נוספות המתאימות למערכים (raid) ולעיגוני רשת (samba, nfs, _netdev) כגון async, sync, dev, nodev,suid, nosuid שאינם בסקירה זו.
השלכה – dump
בעת עליית המער' הרי שהקובץ נקרא ובהתאמה מעוגנים הרכיבים, מנגנון זה קובע ביחס לאותו רכיב לבצע גיבוי למער' הקבצים שבו.
המספרים נעים בין אפס לתשע (0-9) כאשר אפס הינו גיבוי רק למער' הקבצים (FS) ואילו תשע מגבה את כל הרכיב כולל ספריות וקבצים ובהמשך ניתן גם לשחזר דרכה את המידע.
הקובץ מפעיל תוכנה חיצונית לצורך ביצוע הגיבוי ויש צורך בהכנות קודמות שאינן בסקירה זו.
מערכת זו מתאימה לשרתים ובעלי משאבים של חומרה, זמן וכח אדם מיומן ולכן מומלץ להשאיר פרמטר זה על אפס (0) ביחס לכל הרכיבים שכן קיימות תוכנות אחרות לביצוע גיבויים פרטניים במקביל.
בדיקה למער' הקבצים – pass (לשעבר: fsck)
בעת עליית המער' הרי שהקובץ נקרא ובהתאמה נערכת בדיקת תקינות לרכיבים הנקראים לעגינה, מנגנון זה קורא לתוכנה חיצונית הבודקת תקינות (מתמטית) למער' הקבצים (FS) בלבד.
המספרים קובעים את סדר הבדיקה בלבד כאשר אפס (0) מודיע שלא לבצע בדיקה, אחד (1) הוא הרכיב הראשון בו תבוצע הבדיקה, - מומלץ בחום רב ליחס אותו למחיצת השורש (root) -, ואילו הספרה שתיים (2) היא לכל שאר הרכיבים לפי סדר בו הם מופיעים בקובץ.
התכנה ניתנת לקינפוג לצורך שינוי זמנים או בכלל אך אין סקירה זו לא תעסוק בה ומומלץ להשאיר את תכונותיה כברירת מחדל.
פקודת ביצוע
לאחר עריכה ושמירה של קובץ ה - fstab יש להקליד במסוף את הפקודה:
sudo mount -a
אשר תעגן את כלל הרכיבים.
פעולה אחרת תהיה עליה מחדש של המערכת לצורך בדיקת העיגון האוטומטי.
סוף סיום סיומת
ישנם ברשת מאות דוגמאות לעריכת קובץ ה - fstab אך, לעניות דעתי, הטוב שבהם נמצא אצלך במערכת.