kernel panic چیست؟

کرنل پنیک یک خرابی سیستم یا خرابی کرنل است که سیستم را از ادامه عملکرد عادی خود باز می‌دارد. خرابی زمانی رخ می‌دهد که هسته با یک خطای غیرقابل جبران یا شرایطی مواجه گردد که قادر به مدیریت آن نیست. کرنل پنیک با سیستم عامل‌های مبتنی بر یونیکس مانند لینوکس، BSD و macOS مرتبط است. این خطا مشابه خطای صفحه آبی مرگ (BSOD) در سیستم عامل ویندوز است.
 


این مطلب توضیح می‌دهد که کرنل پنیک چیست و دلایل احتمالی بروز آن را فهرست نموده و به کاربران کمک می‌کند این نوع خطا را عیب‌یابی کنند.


کرنل پنیک (kernel panic) چیست؟

کرنل پنیک نوعی خطای بوت در سیستم‌های مبتنی بر یونیکس است که از بازیابی سریع سیستم عامل جلوگیری می‌کند. این حالت زمانی اتفاق می‌افتد که یک خطای مهلک مانع از بارگیری صحیح کرنل شده که بوت سیستم از کار را از کار می‌اندازد.

تصویر زیر نمونه ای از کرنل پنیک در لینوکس است:

نمونه کرنل پنیک در سیستم عامل لینوکس

کرنل پنیک به عنوان یک اقدام ایمنی برای جلوگیری از آسیب سخت افزاری یا نرم افزاری پس از یک خطای بزرگ سیستم هم عمل می‌‎کند تا از مشکلات بیشتر در نرم‌افزار، سخت‌افزار و حافظه جلوگیری کرده و کرنل دامپ را روی دیسک می‌نویسد، که تکنسین‌ها می‌توانند با دیباگ آن مشکل را تشخیص دهند.

در طول یک کرنل پنیک ، سیستم عامل پیام‌های مختلفی را روی صفحه نمایش چاپ می‌کند. پیام‌ها ممکن است شامل اطلاعاتی در مورد نوع خطا، ماژول کدی که هنگام وقوع خطا اجرا می‌شود و درایوهای بارگیری شده باشد.

معمولا در صورت کرنل پنیک نیازی به اقدام کاربر نیست و با ریبوت به صورت دستی مشکل حل می‌شود، یا سیستم عامل به طور خودکار راه‌اندازی مجدد می‌شود.


مقایسه کرنل پنیک (kernel panic) با از  سیستم کرش (system crash)

کرنل پنیک و سیستم کرش هر دو نشان دهنده حالت‌های غیرعادی یک سیستم هستند و هر دو ممکن است مشکلات شدیدی را برای کاربر ایجاد کنند. با این حال، این دو حالت به جنبه‌های مختلف خرابی سیستم اشاره می‌نمایند.

کرنل پنیک یک خطای سیستمی در سیستم‌های مبتنی بر یونیکس است که زمانی اتفاق می‌افتد که کرنل، جزء اصلی که مسئول مدیریت منابع سیستم است، با خطا مواجه شود و به‌طور غیرعادی خاتمه می‌یابد. در کرنل پنیک ، کرنل تمام فرآیندهای سیستم را متوقف کرده و یک پیام تشخیصی نمایش می‌دهد.

حالت کرنل پنیک اغلب با صدای panic  یا یک الگوی بصری متمایز همراه است تا توجه کاربر را به خود جلب کند. کرنل پنیک معمولا توسط خطاهای مهمی مانند خرابی سخت افزار، اشکالات شدید نرم افزار یا درایورهای دستگاه معیوب ایجاد می‌شود.

خرابی سیستم، که به نام سیستم کرش نیز شناخته می‌شود، زمانی اتفاق می‌افتد که هسته نرم‌افزار (یک برنامه یا سیستم‌عامل) را خاتمه می‌دهد که با خطایی مواجه می‌شود که مانع از عملکرد صحیح آن می‌شود. این خطا معمولا باعث می‌شود که کل سیستم پاسخ ندهد یا به طور ناگهانی خاموش شود.

سیستم کرش به دلیل اشکالات نرم افزاری، خرابی سخت افزار، درایورهای ناسازگار یا درگیری بین اجزای مختلف نرم افزار رخ می دهد.

تصویر زیر خطای BSOD در ویندوز را نشان می‌دهد که شبیه به کرنل پنیک در سیستم‌های مبتنی بر یونیکس است:

خطای BSOD در ویندوز

دلیل کرنل پنیک چیست؟

سناریوها و عوامل متعددی وجود دارد که باعث کرنل پنیک می‌شود. مهمترین دلایل kernel panic در زیر ذکر شده است:

  • کرنل پشتیبانی نمی‌شود و یا به درستی نصب نشده است.
  • وصله‌های (patch) اخیر مشکلاتی دارند.
  • سیستم عامل در دسترسی یا نوشتن به حافظه ناموفق است.
  • اشکالات مختلف نرم افزاری
  • بدافزار سیستم را آلوده کرده است.
  • یک فایل initramfs خراب (در هنگام راه‌اندازی در حافظه بارگذاری می‌شود)، یا به درستی برای نسخه کرنل معین ایجاد نشده باشد.
  • به روز رسانی‌های سیستم یا وصله‌هایی که حاوی اشکال هستند.
  • خرابی RAM یا CPU یا نصب نادرست آنها
  • آسیب دیدن هارد دیسک یا خرابی داده‌ها.
  • یک فایل سیستمی معیوب یا خراب، مانند پارتیشن‌های از دست رفته.
  • سخت افزار پشتیبانی نشده
  • درایورهای دستگاه ناسازگار
خرید سرور مجازی لینوکس یک ماشین مجازی کامل است که امکان دسترسی SSH طبق آموزش را به آن خواهید داشت.
خرید سرور مجازی لینوکس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.

نحوه عیب یابی کرنل پنیک

پس از کرنل پنیک ، سیستم به طور خودکار راه اندازی مجدد می‌شود یا نیاز به راه اندازی مجدد دستی توسط کاربر دارد. پس از راه اندازی مجدد، عیب یابی خرابی و بررسی علت کرنل پنیک ضروری است.

بررسی معمولا شامل بررسی لاگ سیستم، بررسی اجزای سخت‌افزار و اجرای عیب‌یابی(diagnostics) است. Kernel Panic یک فایل گزارش با اطلاعاتی ایجاد می‌کند که به رمزگشایی آنچه باعث خرابی شده است کمک می‌کند. بیشتر سیستم‌عامل‌ها از کاربر می‌خواهند که فایل گزارش را برای توسعه‌دهنده سیستم‌عامل ارسال کند، که می‌تواند به آنها در جلوگیری از خطاهای کرنل پنیک در نسخه‌های بعدی کمک کند.

خطای کرنل پنیک جدا شده به این معنی نیست که مشکلی در سخت افزار یا نرم افزار وجود دارد. با این حال، اگر سیستم اغلب در حالت کرنل پنیک  قرار می گیرد، ردیابی ریشه مشکل توصیه می‌شود.

مراحل زیر را برای عیب یابی علل مختلف کرنل پنیک دنبال کنید.

چگونه مشکلات سخت افزاری را که باعث کرنل پنیک می‌شود برطرف کنیم؛ مراحل زیر به تعیین اینکه آیا یک خطای سخت افزاری باعث کرنل پنیک شده کمک می‌کند:

  1. بررسی کنید که RAM به درستی نصب شده است، به ویژه اگر به تازگی RAM دستگاه را ارتقا داده‌اید بررسی نمائید که RAM محکم در شکاف قرار گرفته باشد. 
  2. دستگاه های جانبی را از برق بکشید. هر دستگاه جانبی متصل به سیستم می‌تواند مشکلی ایجاد کند که منجر به کرنل پنیک شود. سعی کنید دستگاه های جانبی را یکی یکی از برق بکشید تا مشخص شود که آیا یکی از آنها باعث ایجاد مشکل شده است یا خیر.
  3. خطاهای دیسک را بررسی کنید. هر سیستم عامل دارای یک نرم افزار داخلی چک و تعمیر دیسک است که به تشخیص اینکه آیا هارد دیسک معیوب است کمک می‌کند.

نحوه رفع مشکلات نرم افزاری که باعث کرنل پنیک می شود

مراحل زیر به عیب یابی کرنل پنیک در صورت بروز مشکلات نرم افزاری کمک می کند:

  • نرم افزار قدیمی را به روز کنید. اطمینان حاصل کنید که همه نرم افزارها به روز هستند و هر برنامه‌ای را که درست قبل از شروع کرنل پنیک نصب شده است غیرفعال کنید.
  • راه اندازی On-Boot را بررسی کنید. کدام برنامه‌ها برای راه‌اندازی در بوت تنظیم شده‌اند. هر نرم افزاری که به تازگی اضافه شده را غیرفعال نموده و چک کنید که آیا مشکل ادامه دارد یا خیر.
  • به روز رسانی‌های سیستم را بررسی کنید. آخرین به روز رسانی های سیستم عامل و درایورهای دستگاه خود را دانلود کنید. اگر از نسخه بتای ناپایدار سیستم عامل استفاده می‌کنید، ممکن است دلیل کرنل پنیک باشد.
  • از دیسک نجات استفاده کنید. اگر تغییرات زیادی در سیستم ایجاد کرده‌اید، از System Restore یا اسنپ شات استفاده کنید تا تغییرات را به نقطه‌ای قبل از کرنل پنیک برگردانید. 
  • Crash Log را بررسی کنید. فایل های لاگ لینوکس بینش مفیدی در مورد خطاهای سیستم ارائه می‌دهند. گزارش‌ها و هر چیزی که ممکن است باعث ایجاد خطا در هسته شود را بررسی کنید.
  • برنامه‌های افزودنی شخص ثالث را حذف کنید. اگر افزونه‌های کرنل شخص ثالثی را نصب کرده‌اید، سعی کنید آن‌ها را حذف نموده تا شناسایی کنید که آیا باعث ایجاد مشکل شده‌اند یا خیر.
  • فضای دیسک را آزاد کنید. فضای خالی دیسک برای اطمینان از عملکرد روان برنامه‌ها و فرآیندها ضروری است. اگر فضای دیسک خالی در سیستم وجود ندارد، سعی کنید به صورت دستی فایل‌های قدیمی و نرم افزارهای استفاده نشده را حذف کنید تا احتمال کرنل پنیک در آینده به حداقل برسد.
  • راه‌اندازی در حالت ایمن (Safe Mode). تمام سیستم‌های مبتنی بر یونیکس دارای  Safe Mode هستند. اگر سیستم همچنان در کرنل پنیک است، سعی کنید در حالت ایمن راه‌اندازی کنید تا فرصت عیب‌یابی مشکل را داشته باشید.
  • سیستم عامل را دوباره نصب کنید. اگر هیچ یک از مراحل بالا کمک نکرد، سیستم عامل را دوباره نصب کنید تا مطمئن شوید که هیچ اشکال نرم افزاری یا بدافزاری تداخلی ایجاد نمی‌کند و باعث کرنل پنیک می شود. با این حال، قبل از نصب مجدد، مطمئن شوید که از اطلاعات خود نسخه پشتیبان تهیه کنید.

 

در این مطلب توضیح دادیم که کرنل پنیک چیست، چگونه آن را عیب یابی کنیم و علل احتمالی خطا را توضیح دهیم. در حالی که کرنل پنیک می‌تواند ناامید کننده و وحشتناک باشد، با درک صحیح و عیب یابی، می‌توانید به طور موثر به آن رسیدگی و یک محیط محاسباتی پایدار و قابل اعتماد را حفظ کنید.