وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

کارت شبکه بعد از آپدیت کرنل لینوکس ناپدید شده؛ چطور اتصال را برگردانیم؟

راهنمای تشخیص سخت‌افزار، ماژول و firmware کارت شبکه و بازیابی اتصال پس از ارتقای کرنل اوبونتو یا AlmaLinux.

انتشار:
توسط تیم فنی نت‌آرام
۷ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله کارت شبکه بعد از آپدیت کرنل لینوکس ناپدید شده؛ چطور اتصال را برگردانیم؟ در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
کرنل لینوکس را به‌روزرسانی کرده‌اید، سرور دوباره روشن شده اما کارت شبکه‌ای که قبلاً کار می‌کرد در فهرست رابط‌ها دیده نمی‌شود. ممکن است درایور مناسب برای کرنل جدید نصب یا بارگذاری نشده باشد، firmware لازم پیدا نشود یا نسخه جدید با سخت‌افزار سازگار نباشد. گاهی هم کارت وجود دارد اما نام آن تغییر کرده یا تنظیم شبکه روی رابط اشتباه مانده است.
این راهنما برای مدیر سرور اختصاصی ایران نوشته شده و روی بعضی سرورهای مجازی ایران نیز با توجه به نوع کارت مجازی کاربرد دارد. پیش از شروع، کنسول خارج از شبکه مثل iDRAC، iLO یا کنسول دیتاسنتر را در اختیار داشته باشید. تغییر درایور و راه‌اندازی مجدد می‌تواند ارتباط را قطع کند؛ اگر داده مهم دارید، وضعیت بکاپ و روش بازگشت را نیز روشن کنید.

۱. نسخه خراب و آخرین وضعیت سالم را ثبت کنید

در کنسول سرور اجرا کنید:
کد / دستورuname -r ip -br link ip -br address
فرمان اول نسخه کرنل در حال اجرا را نشان می‌دهد؛ ممکن است با جدیدترین بسته نصب‌شده فرق کند. دو فرمان بعدی رابط‌ها و نشانی‌ها را نشان می‌دهند. اگر کارت با نام دیگری وجود دارد، قبل از نصب مجدد درایور راهنمای تغییر نام رابط پس از انتقال را ببینید. اگر رابط وجود دارد ولی NO-CARRIER است، کابل یا شبکه مجازی و پورت مقابل نیز باید بررسی شوند.
اگر پس از آپدیت هیچ اتصال مدیریتی باقی نمانده و یک کرنل قبلی سالم روی سرور موجود است، در زمان نگهداری از منوی بوت و بخش Advanced options نسخه سالم را فقط برای بازیابی موقت انتخاب کنید. نام منو و امکان انتخاب در توزیع و تنظیم بوت متفاوت است. پس از بوت، uname -r و اتصال را دوباره ببینید و نسخه قدیم و جدید را یادداشت کنید. کارکردن نسخه قدیمی سرنخ سازگاری است، نه دلیل کافی برای حذف همیشگی کرنل جدید یا کنارگذاشتن به‌روزرسانی امنیتی.

۲. آیا خود سخت‌افزار PCI دیده می‌شود؟

اگر ابزار lspci نصب است، در کنسول اجرا کنید:
کد / دستورlspci -nnk
بخش مربوط به کارت Ethernet را با مدل و جایگاه سرور مقایسه کنید. شناسه فروشنده و دستگاه و عبارت‌های Kernel driver in use و Kernel modules کمک می‌کنند. فهرست Kernel modules ممکن است فقط نام درایورهای سازگار را نشان دهد و وجود آن لزوماً به معنی بارگذاری موفق نیست. اگر کارت در PCI اصلاً دیده نمی‌شود، اول وضعیت سخت‌افزار، رایزر، تنظیمات firmware و گزارش کنسول مدیریت را با سازنده بررسی کنید؛ نصب تصادفی یک ماژول کارت نامرئی را لزوماً برنمی‌گرداند.
برای پیام‌های کرنل بوت جاری:
کد / دستورsudo journalctl -k -b --no-pager | grep -Ei 'firmware|ethernet|module|driver|pci'
زمان و نام کارت را با رخداد تطبیق دهید. عباراتی مانند firmware ... not found یا خطای بارگذاری ماژول به شاخه‌های متفاوت اشاره می‌کنند. اگر لاگ بوت قبلی نگهداری شده است:
کد / دستورsudo journalctl -k -b -1 --no-pager | grep -Ei 'firmware|ethernet|module|driver|pci'
نبود لاگ بوت قبلی ممکن است به تنظیم نگهداری journal مربوط باشد. خروجی را پیش از اشتراک‌گذاری از نشانی‌ها و اطلاعات داخلی پاک کنید.

۳. نام درایور را از سخت‌افزار و سازنده تأیید کنید

فرض کنیم مدل کارت و مستندات نصب شما استفاده از درایور ixgbe را تأیید می‌کنند؛ این نام برای همه کارت‌ها درست نیست. برای دیدن اطلاعات ماژول همان کرنل در حال اجرا:
کد / دستورmodinfo ixgbe lsmod | grep '^ixgbe '
modinfo اطلاعات ماژول و گاهی فایل firmware مورد نیاز را نشان می‌دهد؛ lsmod ماژول‌های بارشده را فهرست می‌کند. اگر درایور به‌صورت built-in داخل کرنل ساخته شده باشد، ممکن است مثل یک ماژول جدا در lsmod دیده نشود. خروجی modinfo و پیام خطا را با روش بسته‌بندی همان توزیع تفسیر کنید؛ صرف نبود یک خط در lsmod دلیل نصب بسته ناشناس نیست.
اگر سیستم از ماژول شخص ثالث و DKMS استفاده می‌کند و ابزار نصب است، وضعیت ساخت را بخوانید:
کد / دستورdkms status
نسخه ماژول و نسخه کرنل را مقایسه کنید. یک ماژول ساخته‌شده برای کرنل قدیمی الزاماً برای کرنل جدید آماده نیست. اگر خطای امضا یا رد کلید دیده می‌شود، وضعیت Secure Boot را با ابزار موجود بررسی کنید:
کد / دستورmokutil --sb-state
در صورت نصب‌نبودن ابزار، از روش پشتیبانی‌شده همان سیستم استفاده کنید. برای ماژول شخص ثالث، بسته و امضای مورد اعتماد سازنده و روش تأیید کلید را بررسی کنید؛ خاموش‌کردن Secure Boot یا دریافت درایور از منبع ناشناس راه‌حل عمومی نیست.

۴. اگر بسته ماژول کرنل جدید ناقص است

روی اوبونتو، ابتدا بسته‌های نصب‌شده و نسخه کرنل مقصد را بررسی کنید:
کد / دستورdpkg -l 'linux-image-*' | grep '^ii' dpkg -l 'linux-modules-extra-*' | grep '^ii'
اگر نام درایور در این خانواده توزیع واقعاً در بسته linux-modules-extra نسخه جدید قرار می‌گیرد و آن بسته نصب نشده یا ناقص است، در شبکه قابل دسترس و پس از بررسی پیشنهاد APT می‌توانید نسخه دقیق کرنل جدید خود را نصب یا تعمیر کنید. مثال زیر فقط برای نسخه فرضی 6.8.0-52-generic است:
کد / دستورapt-cache policy linux-modules-extra-6.8.0-52-generic sudo apt install linux-modules-extra-6.8.0-52-generic
شماره را با نسخه ثبت‌شده و بسته سازگار سیستم جایگزین کنید. اگر مخزن نسخه مناسب ندارد، ابتدا منبع رسمی و نسخه اوبونتو را بررسی کنید؛ نصب بسته‌ای از کرنل یا توزیع دیگر می‌تواند مشکل را بیشتر کند. وقتی با کرنل قدیمی شبکه برگشته، می‌توانید بسته نسخه جدید را پیش از بوت آزمایشی آن دریافت کنید. اگر شبکه در هیچ نسخه‌ای در دسترس نیست، از رسانه یا مخزن داخلی مورد اعتماد و روش ارائه‌دهنده استفاده کنید.
در AlmaLinux یا خانواده RPM نام بسته و تفکیک ماژول‌ها متفاوت است. ابتدا نسخه‌های نصب‌شده را بخوانید:
کد / دستورrpm -q kernel-core kernel-modules kernel-modules-extra
شماره بسته‌ها را با uname -r و نسخه مشکل‌دار مقایسه کنید و فقط پس از تأیید اینکه درایور مورد نیاز واقعاً در کدام بسته است، با روش و مخزن همان نسخه آن را ترمیم کنید. یک نام بسته اوبونتو را برای AlmaLinux استفاده نکنید. درایور ممکن است داخل بسته دیگری یا به‌صورت built-in باشد.

۵. بارگذاری و خطاهای باقی‌مانده را کنترل کنید

اگر مدل سخت‌افزار، نسخه کرنل و نام ماژول تأیید شده، بسته درست نصب است و سیاست سیستم اجازه می‌دهد، در کنسول و زمان مناسب می‌توانید نمونه زیر را برای همان ماژول اجرا کنید:
کد / دستورsudo modprobe ixgbe ip -br link
فقط نام ماژول واقعی کارت خود را جایگزین کنید. اگر modprobe خطا داد، متن آن را همراه گزارش جدید هسته بخوانید؛ خطای نبود ماژول، firmware و رد امضا راه‌حل یکسان ندارند. اگر بارگذاری موفق بود ولی رابط هنوز نیست، اتصال سخت‌افزار و نام دستگاه را دوباره بررسی کنید. درایور بارشده نیاز به تنظیم صحیح IP و مسیر را از بین نمی‌برد. راهنمای modprobe رفتار ابزار را توضیح می‌دهد.
اگر رابط وجود دارد اما آدرس ندارد، تنظیم شبکه همان توزیع و نام فعلی را بررسی کنید. اگر firmware لازم طبق لاگ پیدا نمی‌شود، بسته firmware پشتیبانی‌شده برای همان کارت و نسخه سیستم را از منبع رسمی نصب یا تعمیر کنید. بازنویسی همه فایل‌های /lib/firmware یا بارگذاری ماژول نسخه نامرتبط روش مطمئنی نیست.

۶. تأیید روی کرنل جدید

پس از رفع علت، با هماهنگی و داشتن کنسول، کرنل جدید را یک بار بوت کنید. uname -r، lspci -nnk، ip -br address و گزارش هسته را دوباره بخوانید. سپس مسیر پیش‌فرض و اتصال واقعی را بررسی کنید:
کد / دستورip route show
از یک شبکه مجاز، SSH یا سرویس اصلی را نیز امتحان کنید. اگر کارت دیده می‌شود اما فقط اینترنت یا DNS کار نمی‌کند، مسئله با شناسایی درایور فرق دارد و باید مسیر، gateway و تنظیم DNS بررسی شود. اگر خطا با نسخه جدید تکرار شد، از کنسول به نسخه سالم برگردید و مدل، شناسه PCI، هر دو نسخه کرنل و متن خطا را برای پشتیبانی سازنده آماده کنید. تا اثبات پایداری، نسخه سالم و مسیر بازگشت را نگه دارید.
اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام