Linux Sistemlerinde Sorun Giderme ve Bilgi Toplama için 7 ‘dmesg’​ Komutu

Dmesg ‘ komutu çekirdek arabelleğinden gelen mesajları görüntüler. Bir sistem, sistem mimarisi, işlemci, bağlı aygıtlar, bellek vb. Gibi birçok bilgiyi alabileceğimiz birden fazla çalışma seviyesinden geçer. Bilgisayar açıldığında, çekirdek (bir işletim sisteminin çekirdeği) belleğe yüklenir. Bu süre zarfında, çekirdek tarafından algılanan donanım aygıtlarını görebileceğimiz mesajlar görüntülenir.

Mesajlar, cihaz arızası durumunda teşhis amaçlı kullanımda çok önemlidir. Sisteme yeni bir donanım bağladığımızda veya bağlantısını kestiğimizde, dmesg komutunun yardımıyla algılanan veya bağlantısı kesilen bilgileri anında öğreniriz. Aşağıda pratik örneklerini görebileceğimiz ‘dmesg’ komutuna biraz daha yakından bakalım. Dmesg’nin tam sözdizimi aşağıdaki gibidir.

# dmseg [seçenekler …]

1. Çekirdekte yüklü olan tüm sürücüleri listeleyin

Dmesg komutuyla ‘ more ‘, ‘ tail ‘, ‘ less ‘ veya ‘ grep ‘ gibi metin düzenleme araçlarını kullanabiliriz . Dmesg günlüğü çıktısı tek bir sayfaya sığmayacağından, dmesg komutunu az ya da çok komutla kullanmak günlükleri tek bir sayfada görüntüler.

[ root@pardus ~] # dmesg | more

[ root@pardus ~] # dmesg | less

Örnek Çıktı

[0.000000] Cgroup subsys cpuset başlatılıyor

[0.000000] Cgroup subsys cpu başlatılıyor

[0.000000] Cgroup subsys cpuacct başlatılıyor

[0.000000] Linux sürüm 3.11.0-13-generic ( buildd @ aatxe ) (gcc sürüm 4.8.1 (Ubuntu / Linaro 4.8.1-10ubuntu8)) # 20-Ubuntu SMP Çar 23 Eki 17:26:33 UTC 2013

(Ubuntu 3.11.0-13.20-genel 3.11.6)

[0.000000] KERNEL destekli cpus:

[0.000000] Intel GenuineIntel

[0.000000] AMD AuthenticAMD

[0.000000] NSC tarafından NSC Geode

[0.000000] Cyrix CyrixÖnsür

Centaur CentaurHauls

[0.000000] Transmeta GenuineTMx86

[0.000000] Transmeta TransmetaCPU

[0.000000] UMC UMC UMC UMC

[0.000000] e820: BIOS tarafından sağlanan fiziksel RAM haritası:

[0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] kullanılabilir

[0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] ayrılmış

[0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] kullanılabilir

[0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS

[0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] ACPI verileri

[0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] ayrılmış

[0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] ayrılmış

[0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fed003ff] ayrılmış

[0.000000] BIOS-e820: [mem 0x00000000fed20000-0x00000000fed9ffff] ayrılmış

[0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000feefffff] ayrılmış

[0.000000] BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffffffff] ayrılmış

[0.000000] NX (Execute Disable) koruması: etkin

…..

2. Tespit Edilen Tüm Cihazları Listele

Çekirdek tarafından hangi sabit disklerin algılandığını görmek için, aşağıda gösterildiği gibi “ grep ” ile birlikte “ sda ” anahtar sözcüğünü arayabilirsiniz .

[ root@pardus ~] # dmesg | grep sda

[1,280971] sd 2: 0: 0: 0: [ sda ] 488281250 512 baytlık mantıksal bloklar: (250 GB / 232 GiB)

[1.281014] sd 2: 0: 0: 0: [ sda ] Yazmaya Karşı Koruma kapalı

[1.281016] sd 2: 0: 0: 0: [ sda ] Mod Algı: 00 3a 00 00

[1.281039] sd 2: 0: 0: 0: [ sda ] Yazma önbelleği: etkin, okuma önbelleği: etkin, DPO veya FUA’yı desteklemiyor

[1.359585]  sda : sda 1 sda 2 < sda 5 sda 6 sda 7 sda 8>

[1.360052] sd 2: 0: 0: 0: [ sda ] Bağlı SCSI diski

[2.347887] EXT4-fs ( sda 1): sıralı veri moduna sahip bağlı dosya sistemi. Seçenekler: (boş)

[22.928440] / dev / sda 6 üzerinde 3905532k swap ekleme Öncelik: -1 dahili: 1 genelinde: 3905532k FS

[23.950543] EXT4-fs ( sda 1): yeniden monte edildi. Seçenek: hatalar = remount-ro

[24.134016] EXT4-fs ( sda 5): sıralı veri moduna sahip bağlı dosya sistemi. Seçenekler: (boş)

[24.330762] EXT4-fs ( sda 7): sıralı veri moduna sahip bağlı dosya sistemi. Seçenekler: (boş)

[24.561015] EXT4-fs ( sda 8): sıralı veri moduna sahip bağlı dosya sistemi. Seçenekler: (boş)

NOT : ‘sda’ ilk SATA sabit sürücü, ‘sdb’ ikinci SATA sabit sürücüdür. IDE sabit disk durumunda ‘hda’ veya ‘hdb’ ile arama yapın.

3. Yalnızca İlk 20 Satır Çıktısını Göster

Dmesg ile birlikte ‘head’ komutu dosyanın başlangıcından aşağıya doğru listeleme yapacaktır. Yani ‘dmesg | head -20 ‘ dosyanın ilk 20 satırını görüntüleyecektir.

[ root@pardus ~] # dmesg | head -20

[0.000000] Cgroup subsys cpuset başlatılıyor

[0.000000] Cgroup subsys cpu başlatılıyor

[0.000000] Cgroup subsys cpuacct başlatılıyor

[0.000000] Linux sürüm 3.11.0-13-generic ( buildd @ aatxe ) (gcc sürüm 4.8.1 (Ubuntu / Linaro 4.8.1-10ubuntu8)) # 20-Ubuntu SMP Çar 23 Eki 17:26:33 UTC 2013 ( Ubuntu 3.11.0-13.20-genel 3.11.6)

[0.000000] KERNEL destekli cpus:

[0.000000] Intel GenuineIntel

[0.000000] AMD AuthenticAMD

[0.000000] NSC tarafından NSC Geode

[0.000000] Cyrix CyrixÖnsür

Centaur CentaurHauls

[0.000000] Transmeta GenuineTMx86

[0.000000] Transmeta TransmetaCPU

[0.000000] UMC UMC UMC UMC

[0.000000] e820: BIOS tarafından sağlanan fiziksel RAM haritası:

[0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] kullanılabilir

[0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] ayrılmış

[0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] kullanılabilir

[0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS

[0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] ACPI verileri

[0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] ayrılmış

4. Yalnızca Son 20 Satır Çıktı

Dmesg komutu ile birlikte ‘tail’ sadece son 20 satır basacaktır, bu çıkarılabilir aygıt takmamız durumunda kullanışlıdır.

[ [email protected] ~] # dmesg | tail -20

parport0: 0x378’de bilgisayar stili, irq 7 [PCSPP, TRISTATE]

ppdev: kullanıcı-alanı paralel port sürücüsü

EXT4-fs (sda1): sıralı veri moduna sahip bağlı dosya sistemi

/ Dev / sda2’ye 2097144k takas ekleme. Öncelik: -1 uzantıları: 1 karşısında: 2097144k

readahead-devre dışı bırakma servisi: hizmet denetimini geciktirme

ip_tables: (C) 2000-2006 Netfilter Çekirdek Ekibi

nf_conntrack sürüm 0.5.0 (16384 kova, maksimum 65536)

NET: Kayıtlı protokol ailesi 10

lo: Devre Dışı Bırakılmış Gizlilik Uzantıları

e1000: eth0 NIC Bağlantı 1000 Mbps Tam Dubleks, Akış Kontrolü: Yok

Yavaş iş parçacığı havuzu: Başlatma

Yavaş iş parçacığı havuzu: Hazır

FS-Cache: Yüklendi

CacheFiles: Yüklendi

CacheFiles: Güvenlik, güvenlik bağlamını atama iznini reddediyor: hata -95

eth0: IPv6 yönlendiricisi yok

tür = 1305 denetim (1398268784.593: 18630): denetim_etkin = 0 eski = 1 geçerli = 4294967295 ses = 4294967295 res = 1

readahead-collector: gecikmeli hizmet denetimini başlatma

readahead-toplayıcı: sıralama

readahead-toplayıcı: bitmiş

5. Tespit Edilen Cihazı veya Özel Terimi Arayın

Dmesg çıktısının uzunluğu nedeniyle belirli bir dizeyi bulmak zordur. Bu nedenle, satırları ‘ usb ‘ ‘ dma ‘ ‘ tty ‘ ve ‘ ram ‘ gibi terimlere sahip olaracak şekilde filtreleyin ‘-İ’ seçeneği, grep komutunu büyük / küçük harfleri (büyük veya küçük harfler) göz ardı etme talimatını verir .

[ root@pardus] # dmesg | grep -i usb

[ root@pardus] # dmesg | grep -i dma

[ root@pardus] # dmesg | grep -i tty

Örnek Çıktı

[0.000000] Düşük bellek bozulması için 1 alan taranıyor

[0.000000] eşlenen ilk bellek : [mem 0x00000000-0x01ffffff]

[0.000000] 9b000 ebadında 16384 [c009b000 ] baz hafızalı trambolin

[0.000000] init_ bellek _mapping: [mem 0x00000000-0x000fffff]

[0.000000] init_ bellek _ haritalama: [mem 0x37800000-0x379fffff]

[0.000000] init_ bellek _ haritalama: [mem 0x34000000-0x377fffff]

[0.000000] init_ bellek _ haritalama: [mem 0x00100000-0x33ffffff]

[0.000000] init_ bellek _ haritalama: [mem 0x37a00000-0x37bfdfff]

[0.000000] Erken bellek düğümü aralıkları

[0.000000] PM: Kayıtlı nosave belleği : [mem 0x0009f000-0x000effff]

[0.000000] PM: Kayıtlı nosave belleği : [mem 0x000f0000-0x000fffff]

[0.000000] bellek gruplarını istemiyorsanız lütfen ‘cgroup_disable = memory ‘ seçeneğini deneyin

[0.000000] Bellek : 2003288K mevcut / 2059928K (6352K çekirdek kod, 607K rwdata, 2640K RODATA, 880K init, 908K BSS, 56640K ayrılmış, 1146920K highmem)

[0.000000] sanal çekirdek bellek düzeni:

[0.004291] Cgroup subsys belleği başlatılıyor

[0.004609] SMP alternatif belleği serbest bırakılıyor : 28K (c1a3e000 – c1a45000)

[0.899622] Serbest initrd bellek : 23616K (f51d0000 – f68e0000)

[0.899813] Her 60 saniyede bir düşük bellek bozulması için tarama

[0.946323] agpgart-intel 0000: 00: 00.0: 32768K çalıntı bellek algılandı

[1.360318] Kullanılmayan çekirdek belleğinin boşaltılması: 880K (c1962000 – c1a3e000)

[1.429066] [drm] Grafik cihazı tarafından kullanılabilir bellek = 2048M

 6. dmesg Tampon Günlüklerini Temizle

Evet, aşağıdaki komutla gerekirse dmesg günlüklerini temizleyebiliriz. Aşağıdaki komut ile arabellekte tutulan dmesg günlükleri temizlenir. Yine de ‘ / var / log / dmesg ‘ dosyalarında saklanan kayıt günlüklerini görüntüleyebilirsiniz . Herhangi bir cihaz bağladığınızda dmesg yine çıktı üretmeye başlayacaktır.

[ root@pardus] # dmesg -c

7. Gerçek Zamanlı dmesg izleme

Bazı dağıtımlar, gerçek zamanlı dmesg izleme için ‘tail -f / var / log / dmesg’ komutuna izin verir.

[ root@pardus] # saat “dmesg | tail -20”

Sonuç : dmesg komutu, gerçek zamanlı olarak yapılan veya gerçekleşen tüm

sistem değişikliklerini kaydettiği için oldukça yararlıdır.

Yazının orijinalini aşağıdaki linkte bulabilirsiniz