לינוקס הוא מערכת הפעלה עוצמתית ואמינה, אך אפילו משתמשים מנוסים נתקלים בבעיות בלתי צפויות. בין אם מדובר בקובץ שנמחק, סיסמת root שנשכחה, או מערכת איטית, היכולת לטפל בבעיות בצורה יעילה היא מרכיב מרכזי להפוך למומחה אמיתי בלינוקס.
מדריך זה מציג תרחישי פתרון בעיות בלינוקס בעולם האמיתי יחד עם פתרונות שלב אחר שלב, שהם נפוצים בקרב מנהלי מערכות, מפתחים ומשתמשים יומיומיים בלינוקס.
תרחיש 1: נמחק לך קובץ חשוב בטעות
לך נמחק בטעות קובץ חשוב באמצעות פקודת rm, ועכשיו יש לך צורך לשחזר אותו. להבדיל מ-ווינדוס ו-מקוס, ב-לינוקס אין "סל פח" מובנה עבור קבצים שנמחקו מהטרמינל.
האפשרויות שלך לשחזור תלויות במערכת הקבצים המשמשת.
למערכות קבצים EXT3/EXT4
השתמש ב-extundelete, שהוא כלי קוד פתוח המיועד לשחזור קבצים שנמחקו ממערכות קבצים ext3 ו-ext4 בלינוקס.
sudo apt install extundelete # Debian-based sudo yum install extundelete # RHEL-based
לפני שתנסה לשחזר, נתק את המחיצה כדי למנוע כתיבות נוספות שעלולות לדרוס נתונים שנמחקו:
sudo umount /dev/sdX
לאחר מכן, הריץ את הפקודה הבאה כדי לשחזר את הקובץ שנמחק וודא שאתה מחליף את /dev/sdX
במחיצה הממשית שבה נמחק הקובץ.
sudo extundelete /dev/sdX --restore-all
למערכות קבצים XFS, Btrfs, או NTFS
אם המערכת שלך משתמשת בXFS, Btrfs, או NTFS, הכלי testdisk הוא אפשרות טובה יותר.
sudo apt install testdisk # Debian-based sudo yum install testdisk # RHEL-based
הרץ את testdisk ועקוב אחרי ההנחיות האינטראקטיביות כדי לשחזר קבצים שנאבדו.
sudo testdisk
טיפים למניעת אובדן קבצים:
-
- השתמש ב-trash-cli: במקום
rm
, השתמש בtrash-cli
כדי לשלוח קבצים לפח שניתן לשחזור.
- השתמש ב-trash-cli: במקום
sudo apt install trash-cli trash-put myfile.txt
תסריט 2: שחזור סיסמת שורש שנשכחה
שכחת את סיסמת השורש שלך ואינך יכול לבצע משימות ניהוליות, מה שאומר שלא תוכל להתקין תוכנה, לשנות הגדרות מערכת או לגשת לקבצים קריטיים.
תוכל לאפס את סיסמת השורש על ידי אתחול למצב שחזור או על ידי שינוי אתחול GRUB.
באמצעות מצב שחזור (אובונטו/דביאן)
ראשית, הפעל את המערכת שלך מחדש והחזק את Shift
במהלך ההפעלה כדי לגשת לתפריט GRUB, ואז בחר "אפשרויות מתקדמות" → "מצב השחזור" ובחר "התחבר לשורת השורש".
כאן, תצטרך להריץ מחדש את מערכת הקבצים הראשית כניתנת לכתיבה ולאפס את הסיסמה של root.
mount -o remount,rw / passwd root
אתה צריך להפעיל מחדש את המערכת.
reboot
שימוש ב־rd.break (RHEL/CentOS/Fedora)
ראשית, הפעל מחדש את המערכת שלך, לחץ על e
בתפריט GRUB ומצא את השורה שמתחילה ב־linux
והוסף את rd.break
בסופה.
לאחר מכן, הרכוב את מערכת הקבצים הראשית ואפס את הסיסמה של הרוט.
mount -o remount,rw /sysroot chroot /sysroot passwd root
לבסוף, צא והפעיל מחדש את המערכת.
exit reboot
טיפים למניעה:
- צור משתמש sudo ללא סיסמה כדי למנוע נעילה מהגישה לroot.
- השתמש במפתחות SSH במקום בסיסמאות לאימות.
תרחיש 3: התקנת חבילה, אך היא לא פועלת
התקנת חבילה, אך זה אומר "פקודה לא נמצאה" כאשר אתה מנסה להריץ אותה, דבר שנובע בדרך כלל מהעובדה שהבינרי אינו ב־PATH של המערכת שלך, ההתקנה של החבילה אינה נכונה, או יש תלות חסרה.
הפתרון הוא, תצטרך תחילה לוודא שהחבילה מותקנת או לא.
dpkg -l | grep package-name # Debian-based rpm -qa | grep package-name # RHEL-based
אם היא חסרה, תצטרך להתקין אותה מחדש:
sudo apt install package-name sudo yum install package-name
בשלב הבא, בדוק אם הפקודה קיימת במערכת שלך PATH.
which package-name echo $PATH
אם הקובץ הבינארי נמצא במיקום לא סטנדרטי, הוסף אותו ל- PATH:
export PATH=$PATH:/usr/local/bin
טיפים למניעה:
- אתה צריך לאתחל את הטרמינל או להריץ
hash -r
לאחר התקנת חבילות חדשות. - השתמש במנהלי חבילות כמו Snap או Flatpak, שמתמודדים עם תלותים בצורה טובה יותר.
תרחיש 4: המערכת שלך מתמלאת בשטח פנוי על הדיסק
המערכת שלך מציגה שגיאה " אין מקום פנוי על ההתקן ", שמונעת עדכוני תוכנה, לוגים ופעולות רגילות.
הנה איך לשחזר שטח פנוי בדיסק ולשמור על פעולת המערכת שלך בצורה חלקה.
שלב 1: בדוק את שימוש הדיסק
הפתרון הוא, תראה תחילה כמה שטח משמש בכל מחיצה במערכת שלך באמצעות פקודת ה- df.
df -h
שלב 2: מצא ומחק קבצים גדולים
אחר כך, אתה יכול לאתר את הקבצים הגדולים ביותר שמצרכים מקום על ידי הרצת פקודת du, שתסרוק את המערכת שלך ותציג את רשימת עשרת הקבצים או התיקיות הגדולים ביותר. מחק קבצים בלתי נחוצים באמצעות rm
או העבר אותם לכונן חיצוני.
du -ah / | sort -rh | head -10
שלב 3: הסרת לוגים בלתי נחוצים
לוגים הם חיוניים לאיתור תקלות ולמעקב אחר פעילות המערכת, אך הם יכולים לגדול בקצב מהיר ולצרוך כמות משמעותית של שטח דיסק.
עם הזמן, לוגים ישנים עשויים לא להיות עוד נחוצים, ולכן הם מועמדים מושלמים לניקוי.
sudo journalctl --vacuum-time=2d # Deletes logs older than 2 days sudo apt autoclean # Removes outdated package files
שלב 4: הסרת גרעינים ישנים (אובונטו/דביאן)
כאשר אתה מעדכן את המערכת שלך, במיוחד ב-אובונטו או בהפצות מבוססות דביאן, גרסאות חדשות של ליבת ה-Linux נכנסות לתיקיית ההתקנה בדרך כלל.
עם זאת, הגרעינים הישנים לא נמחקים באופן אוטומטי ועם הזמן, גרעינים אלה ישנים יכולים להצטבר ולצרוך כמות משמעותית של שטח דיסק.
הסרתם היא דרך בטוחה ויעילה לשחרור שטח מבלי להשפיע על פונקציונליות המערכת שלך.
sudo apt autoremove --purge
טיפים למניעה:
- הגדרת סיבובי יומן: השתמש ב־logrotate כדי לנהל באופן אוטומטי את גודלי קבצי היומן ותקופות השמירה.
- מעקב אחר שימוש בדיסק: התקן כלים כמו ncdu כדי לעקוב אחרי שימוש בדיסק ולזהות יוצרי מקום.
- ניקויים קבועים: קבע לוודאי ניקויים מחזוריים כדי להסיר קבצים זמניים, מטמונים וחבילות שאינן בשימוש.
תרחיש 5: השרת שלך בתגובה לא מוצלחת
אתה מנהל שרת Linux ופתאום הוא מפסיק להגיב ואתה מנסה להתחבר באמצעות SSH, אך החיבור מוצלח או מסרב להתקיים. יתכן ותגלה כי השרת עדיין דלוק, אך אינו מגיב לשום פקודה.
מצב זה עשוי להיות תוצאה של בעיות שונות, כולל:
- שימוש גבוה במעבד או בזיכרון עקב תהליכים בריח.
- בקשות קריאה/כתיבה בדיסק, שבהן המערכת מוצפה בפעולות קריאה/כתיבה.
- התרסקויות קרנל או קריסות מערכת.
- כשלי רשת שמונעים גישה מרחוק.
כדי לשחזר שליטה, עקוב אחרי שלבי האיתור בעיות אלו.
שלב 1: גישה לשרת מקומית או דרך TTY
אם SSH אינו עובד, נסו לגשת לשרת ישירות או דרך סשן TTY:
- על מכונה פיזית, השתמשו בקונסולה המקומית.
- על מכונה וירטואלית, השתמשו בקונסולת ההיפרווייזור.
- עבור מערכות Linux, החליפו לסשן TTY נוסף באמצעות
Ctrl + Alt + F2
(אוF3
,F4
, וכו').
שלב 2: בדיקת עומס המערכת
לאחר התחברות, בדקו את עומס המערכת ושימוש במשאבים, שיציג את ממוצעי העומס של המערכת על 1, 5 ו-15 דקות. ערך עומס גבוה יותר ממספר ליבות המעבד מציין דרישה גבוהה.
uptime
בשלב הבא, השתמשו בtop או htop כדי למעקב אחר תהליכים בזמן אמת:
top Or htop
חפשו תהליכים שצורפים יתר על המידה בצריכת CPU או זיכרון.
שלב 3: זיהוי והשבתת תהליכים פורצי דרך
כדי לזהות את התהליכים המבזבזים את המשאבים הכי רבים, הריצו:
ps aux --sort=-%cpu | head
זה מציג את תהליכי הצריכה הגבוהה ביותר של CPU, שם תוכלו למצוא תהליך בעיה, ולהשבית אותו באמצעות:
kill -9 PID
החליפו את PID
במספר זיהוי התהליך של היישום הבעיה.
שלב 4: בדיקת יומני המערכת
אם המערכת עדיין תגיב, בדקו את הלוגים לשגיאות:
sudo tail -f /var/log/syslog Or sudo dmesg | tail
פקודות אלה מציגות הודעות מערכת ויומני קרנל עדכניים, שיכולות לסייע בזיהוי בעיות חומרה או תוכנה.
שלב 5: הפעלה מחדש בבטחה באמצעות SysRq
אם המערכת קפואה לחלוטין, השתמש בשילוב המקשים SysRq כדי לבצע הפעלה מחדש בבטחה:
echo b > /proc/sysrq-trigger
זה מפעיל הפעלה מחדש בטוחה, ומבטיח את שלמות הנתונים על ידי סנכרון דיסקים ופרוק מערכות קבצים.
סיכום
פתרון בעיות הוא מיומנות חיונית לכל משתמש לינוקס. בין אם זה לשחזר קבצים שנמחקו, לאפס סיסמאות או לתקן שגיאות מערכת, ידיעת הפקודות הנכונות יכולה לחסוך זמן ותסכול.
יש לך טיפים משלו לפתרון בעיות? שתף אותם בתגובות! בואו נבנה יחד קהילת לינוקס מועילה.