
فرمان dmesg به شما امکان می دهد تا به دنیای پنهان فرآیندهای راه اندازی لینوکس نگاه کنید. دستگاه سخت افزاری و پیام های درایور را از بافر حلقه هسته خود با "دوست یاب خطا" بررسی و نظارت کنید.
نحوه عملکرد Ring Buffer لینوکس
در رایانه های لینوکس و یونیکس مانند ، بوت شدن و راه اندازی دو مرحله مجزا هستند دنباله ای از وقایع که هنگام روشن شدن رایانه اتفاق می افتد.
فرآیند های راه انداز (BIOS یا UEFI ، MBR و GRUB) ابتدای سیستم را به جایی می رسانند که هسته در آن بارگذاری شود. حافظه و متصل به ramdisk اولیه (اولیه یا آغازگر) ، و systemd آغاز می شود.
فرآیندهای راه اندازی سپس باتوم را برداشت و اولیه سازی سیستم عامل را انجام داد. در مراحل اولیه ابتدایی ، ورود Daemons مانند syslogd یا rsyslogd هنوز راه اندازی نشده است. برای جلوگیری از از بین رفتن پیام های خطای قابل توجه و هشدارها از این مرحله از آغاز ، هسته حاوی بافر حلقه ای است که از آن به عنوان فروشگاه پیام استفاده می کند.
یک بافر حلقه یک فضای حافظه برای پیام ها است. در طراحی ساده و از اندازه ثابت است. با پر شدن ، پیامهای جدیدتر قدیمی ترین پیام ها را بازنویسی می کنند. از نظر مفهومی می توان آن را به عنوان "بافر مدور" تصور کرد.
بافر حلقه هسته اطلاعاتی مانند پیام های اولیه سازی درایور دستگاه ، پیام های سخت افزاری و پیام های ماژول های هسته را ذخیره می کند. از آنجا که این پیامهای راه اندازی سطح پایین را در خود جای داده است ، بافر حلقه مکان مناسبی برای شروع تحقیقات در مورد خطاهای سخت افزاری یا سایر موارد راه اندازی است.
اما دست خالی نروید. dmesg را با خود ببرید.
فرمان dmesg
فرمان dmesg به شما امکان می دهد پیام هایی را که در بافر حلقه ذخیره شده اند مرور کنید. به طور پیش فرض ، شما باید از sudo برای استفاده از dmesg استفاده کنید.
sudo dmesg
همه پیام های موجود در بافر حلقه در پنجره ترمینال نمایش داده می شود.
این یک آبشار بود. بدیهی است ، آنچه ما باید انجام دهیم این است که از طریق کمتر لوله گذاری کنیم:
sudo dmesg | کمتر
اکنون می توانیم پیامهایی را جستجو کنیم که به دنبال موارد مورد علاقه هستند.
می توانید از تابع جستجو استفاده کنید در کمتر برای یافتن و برجسته کردن موارد و اصطلاحاتی که به آنها علاقه مند هستید ، عمل جستجو را با فشار دادن کلید برش رو به جلو "/" در کمتر کمتر کنید.
: نحوه استفاده از فرمان کمتر در لینوکس
حذف نیاز به سودو
اگر می خواهید از استفاده از sudo هربار استفاده کنید ] dmesg ، می توانید از این دستور استفاده کنید. اما ، توجه داشته باشید: این امکان را برای هرکسی فراهم می کند که با یک حساب کاربری از رایانه شما استفاده کند dmesg بدون نیاز به استفاده از sudo .
sudo sysctl -w kernel.dmesg_restrict = 0
اجباری خروجی رنگ
به طور پیش فرض ، dmesg احتمالاً برای تولید خروجی رنگی تنظیم شده است. اگر این طور نیست ، می توانید با استفاده از گزینه -L (رنگ) ، dmesg را رنگی کنید تا -L (رنگ) را انتخاب کنید.
sudo dmesg -L
برای مجبور کردن dmesg همیشه به طور پیش فرض به صفحه نمایش رنگی ، از این دستور استفاده کنید:
sudo dmesg - colour = همیشه
Human Timestamps
به طور پیش فرض ، dmesg از زمان شروع هسته از نماد زمانی ثانیه و ثانیه استفاده می کند. برای این که در قالب انسانی دلخواه تری ارائه شود ، از گزینه -H (انسانی) استفاده کنید.
sudo dmesg -H
[19659006] این باعث می شود دو اتفاق رخ دهد.

- خروجی به طور خودکار در
کمترنمایش داده می شود. - تاریخ و زمان ، با وضوح دقیقه پیام هایی که در هر دقیقه رخ داده اند با شروع ثانیه و نانو ثانیه از همان دقیقه برچسب گذاری می شوند.
Timestamps Readable Human
اگر به دقت نانو ثانیه نیستید ، اما شما می خواهید زمان سنج هایی که خواندن آن آسان تر است ، از پیش فرض ها ، از گزینه -T (قابل خواندن انسان) استفاده کنید. (کمی گیج کننده است. -H گزینه "انسان" است ، -T گزینه "قابل خواندن انسان" است.)
sudo dmesg -T
Timestamp ها به صورت تاریخ و زمان استاندارد ارائه می شوند ، اما وضوح آن به یک دقیقه کاهش می یابد.
هر اتفاقی که در عرض یک دقیقه افتاد ، همان موقع زمانی دارد. اگر آنچه شما را نگران کرده اید دنباله وقایع است ، این به اندازه کافی خوب است. همچنین ، توجه داشته باشید که در فوریت فرمان برگشت داده اید. این گزینه به طور خودکار کمتر را فراخوانی نمی کند.
تماشای رویدادهای زنده
برای دیدن پیام ها هنگام ورود به بافر حلقه هسته ، از استفاده کنید - دنبال کنید (منتظر پیام) گزینه. این جمله ممکن است کمی عجیب به نظر برسد. اگر از بافر حلقه برای ذخیره پیام از رویدادهای رخ داده در طول توالی راه اندازی استفاده می شود ، چگونه می توان پیام های زنده را به محض راه اندازی رایانه به بافر حلقه وارد کرد؟
هر چیزی که باعث تغییر سخت افزار متصل به شما می شود؟ رایانه باعث ارسال پیام به بافر حلقه هسته می شود. ماژول هسته را به روز کنید یا اضافه کنید ، و پیام های بافر زنگ در مورد آن تغییرات را مشاهده خواهید کرد. اگر یک درایو USB را وصل کنید یا یک دستگاه بلوتوث را به هم وصل یا قطع کنید ، در خروجی dmesg پیام مشاهده خواهید کرد. حتی سخت افزار مجازی باعث می شود پیام های جدید در بافر حلقه ظاهر شوند. یک ماشین مجازی را شلیک کنید و اطلاعات جدیدی را خواهید دید که وارد بافر حلقه شده اند.
sudo dmesg - دنبال کنید
توجه داشته باشید که شما نیستید به خط فرمان بازگشت. هنگامی که پیام های جدید ظاهر می شوند ، آنها در پایین پنجره ترمینال توسط dmesg نمایش داده می شوند.
حتی در حال نصب CD- دیسک ROM به عنوان تغییر در نظر گرفته می شود ، زیرا شما محتویات دیسک CD-ROM را بر روی درخت پوشه پیوند زده اید.
19659006] برای خروج از فید در زمان واقعی ، کلید Ctrl + C را بزنید.
بازیابی ده پیام اخیر
برای بازیابی ده پیام آخر بافر زنگ هسته از دستور tail استفاده کنید. البته ، می توانید هر تعداد پیام را بازیابی کنید. ده فقط نمونه ماست.
sudo dmesg | آخرین -10
ده پیام آخر بازیابی و در پنجره ترمینال فهرست می شوند.
در جستجوی شرایط خاص
لوله خروجی را از dmesg از طریق grep برای جستجوی رشته ها یا الگوهای خاص لوله کنید. در اینجا ما از گزینه -i (نادیده گرفتن مورد) استفاده می کنیم تا پرونده تطبیق رشته ها بی توجه باشد. نتایج ما شامل "USB" و "USB" و هر ترکیب دیگری از حروف بزرگ و بزرگ خواهد بود.
sudo dmesg | grep -i usb
نتایج جستجوی برجسته در حروف بزرگ و کوچک است.
ما می توانیم جدا شویم. پیامهایی که شامل منابع مربوط به اولین هارد دیسک SCSI روی سیستم sda می شوند. (در واقع ، sda امروزه نیز برای اولین هارد SATA و درایوهای USB نیز استفاده می شود.)
sudo dmesg | grep -i sda
کلیه پیام هایی که ذکر می کند sda بازیابی می شوند و در پنجره ترمینال فهرست می شوند.
برای تهیه grep به جستجوی چندین اصطلاح در یک بار ، از گزینه -E (گسترش بیان منظم) استفاده کنید. شما باید عبارات جستجو را در داخل یک رشته نقل قول شده با محدود کننده های لوله "|" بین اصطلاحات جستجو ارائه دهید:
sudo dmesg | grep -E "حافظه | tty | dma"
هر پیامی که هر یک از اصطلاحات جستجو را ذکر کند ، در پنجره ترمینال ذکر شده است.
با استفاده از سطح ورود به سیستم
هر پیام وارد شده به بافر حلقه هسته دارای یک سطح متصل به آن است. سطح بیانگر اهمیت اطلاعات در پیام است. سطوح عبارتند از:
- ظهور : سیستم غیرقابل استفاده است.
- هشدار : باید سریعاً اقدام شود.
- krit : شرایط بحرانی.
- err : شرایط خطا.
- هشدار : شرایط اخطار.
- توجه : شرایط عادی اما قابل توجه.
- اطلاعات
- اشکال زدایی اشکال زدایی : پیام های سطح اشکال زدایی.
می توانیم dmesg را استخراج کنیم که با استفاده از -l گزینه (سطح) و عبور از نام سطح به عنوان یک پارامتر خط فرمان. برای دیدن فقط پیامهای سطح "اطلاعاتی" ، از این دستور استفاده کنید:
sudo dmesg -l info
همه پیام هایی که ذکر شده پیام های اطلاع رسانی هستند. آنها حاوی خطا یا هشدارها ، فقط اعلانهای مفید نیستند.
دو یا چند سطح ورود به سیستم را در یک دستور ترکیب کنید تا پیام های چند را بازیابی کنید. سطح ورود به سیستم:
اشکال زدایی sudo dmesg -l ، توجه به اشکال زدایی sudo dmesg -l ، توجه در پنجره ترمینال " width="646" height="57" src="/pagespeed_static/1.JiBnMqyl6S.gif" onload="pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);" onerror="this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);"/>خروجی از
dmesgترکیبی از پیام های هر یک است سطح ورود به سیستم:
![]()
دسته بندی های تسهیلات
پیام های
dmesgدسته بندی می شوند به نام "امکانات" . "لیست امکانات عبارتند از:
- kern : پیام های هسته.
- کاربر : پیام های سطح کاربر.
- mail : سیستم نامه. [19659043] Daemon : Daemons System.
- auth : پیام های امنیتی / مجوز.
- syslog : in پیامهای سه گانه syslogd.
- lpr : زیر سیستم چاپگر خط.
- اخبار : زیر سیستم شبکه خبر.
می توانیم از dmesg بخواهیم تا آن را فیلتر کند. برای نمایش پیام فقط در یک تسهیلات خاص. برای این کار ، باید از گزینه -f (تأسیسات) استفاده کنیم:
sudo dmesg -f daemon
dmesg لیست تمام پیام های مربوط به Daemons در پنجره ترمینال را نشان می دهد.
همانطور که با سطوح انجام دادیم ، می توانیم بپرسیم. dmesg برای لیست کردن پیام های بیش از یک تسهیلات به طور همزمان:
sudo dmesg -f syslog، daemon
the خروجی ترکیبی از پیام های ورود به سیستم sylog و daemon است.
Combination Facility and Level
-x [19459010[(رمزگشایی)گزینه[ dmesg امکانات و سطح را به عنوان پیشوندهای قابل خواندن توسط انسان برای هر خط نشان می دهد.
sudo dmesg -x
امکانات و سطح در ابتدای هر خط قابل مشاهده است:
اولین بخش برجسته یک پیام از تأسیسات "هسته" با سطح "توجه". بخش دوم برجسته یك پیام از تأسیسات "هسته" با سطح "اطلاعات" است.
عالی است ، اما چرا؟
به طور خلاصه ، تقصیر.
اگر مشکلی ندارید که با یک قطعه سخت افزار به رسمیت شناخته نشده یا به درستی رفتار نکرده اید ، dmesg ممکن است چراغ روشنایی را برای این مسئله به وجود آورد. [196591336] از dmesg استفاده کنید پیامها را از بالاترین سطح بررسی کنید و از طریق هر سطح پایین ، به دنبال هر گونه خطا یا هشدارهای مربوط به مورد سخت افزار باشید ، یا ممکن است اثری از این مسئله باشد.
dmesg استفاده کنید. برای جستجوی هرگونه ذکر از امکانات مناسب برای دیدن اینکه آیا آنها حاوی اطلاعات مفید هستند dmesg از طریق grep و به دنبال رشته ها یا شناسه های مرتبط یا شناسه مانند تولید کننده محصول یا شماره های مدل. dmesg را از طریق grep و به دنبال [عمومی] اصطلاحات عمومی مانند "gpu" یا "ذخیره سازی" ، یا اصطلاحاتی مانند "عدم موفقیت" ، "شکست" یا "ناتوان" بگردید. استفاده کنید - گزینه را دنبال کنید و پیام های dmesg را در زمان واقعی مشاهده کنید. شکار مبارک.