קובץ fstab (טבלת מערכת קבצים) הוא קובץ הגדרות שמשמש להגדרת האופן שבו מחיצת דיסק, מערכת קבצים ושיתוף קבצים במכונה הווירטואלית של Linux נשמרים אחרי הפעלה מחדש של המערכת.
במאמר הזה מפורטים כמה תנאים שבהם הגדרה שגויה של fstab עלולה לגרום לבעיה בהפעלה, ומוצעות עצות לפתרון הבעיה.
למידע על סיבות אחרות לכשלים בהפעלה, ועל דרכים לזהות את הסיבה באופן אוטומטי, אפשר לעיין במאמר בנושא פתרון בעיות בהפעלה של מכונות Linux ב-Compute Engine.
ריכזנו כאן כמה מהבעיות הנפוצות שקשורות להגדרה שגויה של fstab:
- שגיאת תחביר בקובץ ההגדרות
fstab - מזהה ייחודי אוניברסלי (UUID) שגוי
- יש רשומה של מכשיר לא מחובר או לא זמין
- אפשרויות הרכבה שהוצאו משימוש כמו
nobarrierעבור סוג מערכת הקבצים xfs בתמונות של SUSE או RHEL.
לפני שמתחילים
- אם רוצים לרשום ביומן את הפלט של היציאה הטורית ב-Cloud Logging, כדאי לקרוא על Cloud Logging.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת Google Cloud לשירותים ולממשקי ה-API, לא צריך להגדיר אימות.
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
אם יש בעיות בהפעלה, Google ממליצה מאוד לבדוק את יומני ההפעלה בקונסולה הטורית של ה-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, צריך להפעיל את הגישה ליציאה הטורית של ה-VM.
אפשרות 1: שימוש בקונסולה הטורית כדי להתחבר ל-VM במצב חירום
מתחברים לקונסולה הטורית של ה-VM מ Google Cloud המסוף.

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

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

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

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

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