Fstab (טבלת מערכת קבצים) הוא קובץ הגדרות שמשמש להגדרת אופן ההתקנה של מחיצת דיסק, מערכת קבצים ושיתוף קבצים במכונה וירטואלית של Linux, כך שהם יישמרו גם אחרי הפעלה מחדש של המערכת.
במסמך הזה מפורטים כמה תנאים שבהם הגדרה שגויה של fstab עלולה לגרום לבעיה באתחול, ומוצעים טיפים לפתרון בעיות כדי לתקן את הבעיה.
ריכזנו כאן כמה מהבעיות הנפוצות שקשורות להגדרות שגויות של fstab:
- שגיאת תחביר בקובץ ההגדרות
fstab - מזהה ייחודי אוניברסלי (UUID) שגוי
- קיימת רשומה למכשיר לא מצורף או לא זמין
- אפשרויות הרכבה שהוצאו משימוש כמו
nobarrierעבור סוג מערכת הקבצים xfs בתמונות של SUSE או RHEL.
לפני שמתחילים
- אם רוצים לרשום ביומן את הפלט של היציאה הטורית ב-Cloud Logging, כדאי לעיין במידע על Cloud Logging.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
זיהוי בעיות ב-fstab
אם יש בעיות באתחול, מומלץ מאוד לבדוק את יומני האתחול במסוף הטורי של מכונת ה-VM של Linux. המכונה הווירטואלית עוברת למצב חירום עם הודעת שגיאה שמרמזת שהבעיה היא ב-fstab.
[K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device. [[1;33mDEPEND[0m] Dependency failed for /distribution. [[1;33mDEPEND[0m] Dependency failed for Local File Systems. ... Welcome to emergency mode! After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode. Give root password for maintenance (or type Control-D to continue)
לפי הודעת השגיאה, יש כשל בתלות במערכת הקבצים /distribution. הכשל בתלות של נקודת טעינה של מערכת קבצים יהיה שונה בהתאם לשמות של מערכות הקבצים שבהן נעשה שימוש.
רזולוציה
כדי לפתור את השגיאה fstab במכונות וירטואליות של Linux שמתארחות ב- Google Cloud, אפשר להשתמש באפשרויות הבאות. אפשר לפתור את הבעיה מהר יותר באמצעות המסוף הטורי מאשר באמצעות השיטה הידנית.
כדי להשתמש בשיטות הבאות לפתרון הבעיה ב-fstab, צריך להפעיל גישה ליציאה טורית במכונה הווירטואלית.
אפשרות 1: שימוש במסוף הטורי כדי להתחבר ל-VM במצב חירום
מתחברים למסוף הטורי של ה-VM מ Google Cloud console.

במצב החירום הנוכחי, מזינים את סיסמת ה-Root כדי לגשת למכונה הווירטואלית.
פותחים את הקובץ
fstabבכלי לעריכת טקסט שבו אתם מעדיפים להשתמש. מבצעים את השינויים הנדרשים ושומרים את השינויים בקובץfstab. בדוגמה הבאה נעשה שימוש בעורךvi.vi /etc/fstab

בדוגמה הקודמת, המכשיר של
/distributionמנותק מה-VM. מוסיפים הערה לשורה שמפנה למערכת הקבצים או מסירים את הערך של fstab לנקודת הטעינה/distribution.פרטים נוספים על ההגדרה והתחביר של fstab זמינים ב-
man fstab.שומרים את הקובץ ויוצאים מהעורך. אם אתם משתמשים בעורך
vi, לוחצים עלESC+:wq!כדי לשמור ולצאת מהעורך.ממשיכים בתהליך האתחול על ידי הקלדת reboot בהנחיה.
אחרי שתפתרו את הבעיה, תהליך האתחול של המכונה הווירטואלית אמור להסתיים וההנחיה להתחבר תופיע במסוף הטורי.
מוודאים שאפשר להתחבר שוב למכונה הווירטואלית באמצעות SSH.
אפשרות 2 – שימוש במצב משתמש יחיד במסוף סדרתי
אפשר להשתמש באפשרות הזו אם לא הוגדרה סיסמת הבסיס.
דרישה מוקדמת: הפרמטר GRUB_TIMEOUT בקובץ ההגדרה של GRUB
צריך להיות מוגדר לערך שאינו אפס. בדרך כלל הקובץ הזה נמצא במיקום /etc/default/grub, אבל בחלק מההפצות הקודמות הוא עשוי להיות ממוקם בספרייה לא סטנדרטית.
נכנסים לדף VM instances במסוף Google Cloud . לדף VM instances
מתחברים למסוף הטורי של המכונה הווירטואלית מGoogle Cloud המסוף.

לוחצים על RESET (איפוס) למכונה וירטואלית מ-מסוף Google Cloud.

בחלון של מסוף הטורי, מפריעים לתהליך האתחול על ידי לחיצה על מקש החץ כדי להשהות במסך או בתפריט של GRUB.
ברשימת ליבות (kernels) במסך של טוען האתחול grub, בוחרים את הליבה ולוחצים על
eבמקלדת.
מוסיפים את הפרמטר
rd.breakבסוף שורת הליבה ולוחצים עלctrl+x. כך אפשר להפעיל את המכונה הווירטואלית במצב משתמש יחיד.
מפעילים את מערכת קבצי הבסיס במצב קריאה וכתיבה.
מנתחים את קובץ
fstab, מבצעים את השינויים הנדרשים ושומרים אותו. לפרטים נוספים על ההגדרה והתחביר, אפשר לעיין במאמר בנושאman fstab. משתמשים בכלי לעריכת טקסט שמועדף עליכם כדי לפתוח את הקובץfstab. בדוגמה שלמטה נעשה שימוש בעורך vi.vi /etc/fstab

בדוגמה הזו, המכשיר של
/distributionמנותק מהמכונה הווירטואלית, לכן צריך להוסיף הערה לשורה או להסיר את הערך fstab לנקודת הטעינה/distribution.שומרים את הקובץ ויוצאים מהעורך. אם אתם משתמשים בעורך vi, צריך להשתמש בצירוף המקשים
ESC+:wq!כדי לשמור ולצאת מ-fstab.ממשיכים בתהליך האתחול על ידי הקלדת
rebootבהנחיה.אחרי שתפתרו את הבעיה, תהליך האתחול של המכונה הווירטואלית יושלם ותופיע בקשה להתחברות במסוף הטורי.
מוודאים שאפשר להתחבר למכונה הווירטואלית באמצעות SSH.
אפשרות 3 – שחזור המכונה הווירטואלית
אפשר להשתמש באפשרות הזו אם סיסמת הבסיס לא מוגדרת או אם אי אפשר להשתמש במצב משתמש יחיד.
מידע נוסף זמין במאמר שחזור של מכונה וירטואלית שלא ניתן לגשת אליה.