강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

시스템 부팅메시지 확인하는 간단한 방법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

시스템 부팅메시지 확인하는 간단한 방법

 

 

 

 

리눅스시스템이 부팅하면서 화면으로 뿌려주는 부팅메시지는 매우 중요하다.

 

 

 

 이런 부팅메시지가 중요한 이유는 부팅시에 여러가지 하드웨어관련 설정과 테스트를 하고 과정과 결과를 표시하기 때문이다.

 

 

 

  시스템 부팅메시지에는 장치(device)에 관한 메시지들과 함께 시스템 이상유무를 확인 할 수 있는 매우 유용한 정보들이 있다.

 

 

 

 하드웨어적인 이상유무나 디스크, 메모리, CPU, 커널등의 이상유무를 확인할 수 있는 정보들로써 시스템 정상운용에 있어 꼭 확인해야 하는 정보들이다.

 

 

 

 따라서 시스템관리자들은 시스템 부팅메시지를 보면서 시스템에 관한 여러가지 진단과 정보를 얻을 있다.

 

 

 

 따라서 우리는 시스템 부팅메시지를 확인하는 방법을 알아야 한다.

 

 

 

 참고로 시스템 부팅메시지를 bootup messages라고 한다.

 

 

 

 

 

리눅스시스템은 부팅하면서 많은 부팅메시지를 보여주고 또한 특정파일에 기록한다.

 

 

 

 부팅메시지를 보여주는 것은 부팅시에 화면으로 보면 된다.

 

 

 

 하지만 빠르게 스크롤되어 올라가는 화면의 내용들을 모두 살펴본다는 것은 여간 힘들일이 아니다.

 

 

 

 따라서 우리는 부팅메시지를 기록하고 있는 파일의 내용을 확인하는 방법을 알아야 한다.

 

 

 

 부팅메시지는 /var/log/dmesg라는 텍스트파일에 기록하고 있다.

 

 

 

 그리고 /bin/dmesg라는 명령어도 있는데 명령어는 부팅메시지를 확인하는 명령어이다.

 

 

 

 

 

결론적으로 시스템이 부팅완료되고 이후에 부팅메시지를 확인하는 방법은 크게 두가지로 다음과 같이 요약된다.

 

 

 

 

 

첫번째 방법은 /var/log/dmesg라는 부팅메시지를 저장하고 있는 텍스트파일을 vi등으로 확인하는 방법이다.

 

 

 

 

 

두번째 방법은 /bin/dmesg라는 명령어를 사용하여 확인하는 방법이다.

 

 

 

 

 

좀 더 구체적으로 설명해 보도록 하자.

 

 

 

리눅스시스템 부팅메시지를 /var/log/dmesg라는 텍스트파일에 저장하고 있기 때문에 부팅시의 부팅메시지는 콘솔(console)에서만 확인가능하며 부팅되는 순간에는 빠른 속도로 지나가 버리기 때문에 관리자가 부팅메시지를 모두 확인하는 것은 매우 어렵다.

 

 

 

 따라서 리눅스는 부팅메시지를 /var/log/dmesg텍스트파일에 저장해 두고 시스템관리자가 원할때 이 파일을 확인할 수 있도록 하고 있다.

 

 

 

  /var/log/dmesg파일은 텍스트파일로 되어있기 때문에 굳이 dmesg명령어를 이용하지 않더라도 cat이나 vi, more, head등의 명령어로 확인할 수 있다.

 

 

 

 

 

또한 부팅메시지를 dmesg라는 명령어를 이용하여 /var/log/dmesg파일의 내용을 확인 할 수 있도록 제공하고 있다.

 

 

 

 dmesg명령어는 시스템부팅시에 뿌려주는 부팅메시지(bootup messages)를 확인하는 명령어이다.

 

 

 

 

 

가장 간단한 예로서 시스템 부팅메시지 전체를 확인하는 방법에 대해서 알아보자. 앞서 설명하였듯이 시스템 부팅메시지는 /var/log/dmesg파일에 저장되어 있다.

 

 

 

 따라서 이 파일을 먼저 살펴보도록 하겠다.

 

 

 

  아래의 예는 현재 필자가 사용하고 있는 리눅스 시스템의 /var/log/dmesg파일의 일부분만을 확인한 것이다.

 

 

 

 

 

[root@sulinux ~]#ls -l /var/log/dmesg

-rw-r--r-- 1 root root 14634  3 10 01:07 /var/log/dmesg

[root@sulinux ~]#

[root@sulinux ~]#more /var/log/dmesg

Linux version 2.6.18-92.SUL2.fd (root@sul2-build) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP T

hu Jan 22 16:29:50 KST 2009

BIOS-provided physical RAM map:

 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)

 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved)

 BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 000000000fef0000 (usable)

 BIOS-e820: 000000000fef0000 - 000000000feff000 (ACPI data)

 BIOS-e820: 000000000feff000 - 000000000ff00000 (ACPI NVS)

 BIOS-e820: 000000000ff00000 - 0000000010000000 (usable)

 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)

 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)

 BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)

0MB HIGHMEM available.

256MB LOWMEM available.

found SMP MP-table at 000f6c90

Memory for crash kernel (0x0 to 0x0) notwithin permissible range

disabling kdump

Using x86 segment limits to approximate NX protection

On node 0 totalpages: 65536

  DMA zone: 4096 pages, LIFO batch:0

  Normal zone: 61440 pages, LIFO batch:15

DMI present.

Using APIC driver default

ACPI: RSDP (v000 PTLTD                                 ) @ 0x000f6c20

ACPI: RSDT (v001 PTLTD    RSDT   0x06040000  LTP 0x00000000) @ 0x0fefab5a

ACPI: FADT (v001 INTEL  440BX    0x06040000 PTL  0x000f4240) @ 0x0fefef06

ACPI: MADT (v001 PTLTD           APIC   0x06040000  LTP 0x00000000) @ 0x0fefef7a

ACPI: BOOT (v001 PTLTD  $SBFTBL$ 0x06040000  LTP 0x00000001) @ 0x0fefefd8

ACPI: DSDT (v001 PTLTD  Custom   0x06040000 MSFT 0x0100000d) @ 0x00000000

ACPI: PM-Timer IO Port: 0x1008

ACPI: Local APIC address 0xfee00000

ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)

Processor #0 6:15 APIC version 17

ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)

Processor #1 6:15 APIC version 17

--More--(12%)…

 

보는 바와같이 부팅메시지는 시스템의 정상운용에 꼭 필요한 하드웨어에 대한 중요한 정보들이 저장되어 있다.

 

 

 

 이 파일의 내용은 텍스트로 되어있기 때문에 vi cat으로도 확인할 수 있다.

 

 

 

 

 

/var/log/dmesg파일은 그 내용이 많아서 일일이 하나씩 찾아서 보는 것은 무리가 있다.

 

 

 

 따라서 다음과 같은 방법으로 이 파일의 내용 가운데 사용자가 원하는 내용만을 찾아서 확인하도록 하자.

 

           - 방법1 : grep 원하는문자열 /var/log/dmesg

           - 방법2 : vi로 이 파일을 열어서 vi모드에서 문자열 검색하기

 

위의 방법 가운데 방법1에 대한 예를 보도록 하자. 즉 다음 예는 /var/log/dmesg 파일에서 CPU에 관한 정보만을 확인한 예이다.

 

 

 

 

 

[root@sulinux ~]#grep CPU /var/log/dmesg

Initializing CPU#0

CPU 0 irqstacks, hard=c074b000 soft=c072b000

CPU: After generic identify, caps: 0febfbff 00100000 00000000 00010000 00000211 00000000 00000000

CPU: After vendor identify, caps: 0febfbff 00100000 00000000 00010000 00000211 00000000 00000000

CPU: L1 I cache: 32K, L1 D cache: 32K

CPU: L2 cache: 4096K

CPU: After all inits, caps: 0febf3ff 00100000 00000000 00010940 00000211 00000000 00000000

Intel machine check reporting enabled on CPU#0.

CPU0: Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz stepping 08

CPU 1 irqstacks, hard=c074c000 soft=c072c000

Initializing CPU#1

CPU: After generic identify, caps: 0febfbff 00100000 00000000 00010000 00000211 00000000 00000000

CPU: After vendor identify, caps: 0febfbff 00100000 00000000 00010000 00000211 00000000 00000000

CPU: L1 I cache: 32K, L1 D cache: 32K

CPU: L2 cache: 4096K

CPU: After all inits, caps: 0febf3ff 00100000 00000000 00010940 00000211 00000000 00000000

Intel machine check reporting enabled on CPU#1.

CPU1: Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz stepping 08

checking TSC synchronization across 2 CPUs: passed.

Brought up 2 CPUs

ACPI: Processor [CPU0] (supports 8 throttling states)

ACPI: Processor [CPU1] (supports 8 throttling states)

[root@sulinux ~]#

 

 

 

이번에는 dmesg명령어를 이용하여 시스템 부팅메시지를 확인해 보자. 다음 예는 /bin/dmesg라는 명령어를 실행한 것이다.

 

 

 

 

 

[root@sulinux ~]#dmesg

Linux version 2.6.18-92.SUL2.fd (root@sul2-build) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP Thu Jan 22 16:29:50 KST 2009

BIOS-provided physical RAM map:

 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)

 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved)

 BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 000000000fef0000 (usable)

 BIOS-e820: 000000000fef0000 - 000000000feff000 (ACPI data)

 BIOS-e820: 000000000feff000 - 000000000ff00000 (ACPI NVS)

 BIOS-e820: 000000000ff00000 - 0000000010000000 (usable)

 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)

 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)

 BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)

0MB HIGHMEM available.

256MB LOWMEM available.

found SMP MP-table at 000f6c90

Memory for crash kernel (0x0 to 0x0) notwithin permissible range

disabling kdump

Using x86 segment limits to approximate NX protection

On node 0 totalpages: 65536

  DMA zone: 4096 pages, LIFO batch:0

  Normal zone: 61440 pages, LIFO batch:15

DMI present.

Using APIC driver default

….이하 생략

 

 

 

 

위의 결과에서도 알 수 있듯이 dmesg라는 명령어는 시스템 부팅메시지를 출력해주는 명령어이다.

 

 

 

 이번에도 이 결과에서 다음과 같이 원하는 정보만을 확인해 보자.

 

다음 예는 시스템 부팅메시지 가운데 메모리(Memory)에 관한 정보만을 출력한 것이다.

 

 

 

 

 

[root@sulinux ~]#dmesg | grep Memory

Memory for crash kernel (0x0 to 0x0) notwithin permissible range

Memory: 252784k/262144k available (2095k kernel code, 8720k reserved, 874k data, 228k init, 0k highmem)

[root@sulinux ~]#

 

참고로 메모리에 대한 보다 상세한 정보는 /proc/meminfo파일에 저장되어 있다.

 

 

 

 따라서  "cat /proc/meminfo"명령어를 실행하면 보다 상세한 시스템 메모리정보를 확인할 수 있다.

 

 

 

 

 

그리고 다음 예와 같은 방법으로 부팅메시지 중에 원하는 정보만을 확인할 수 있다.

 

 

 

 

 

1) 시스템 부팅메시지 중 하드디스크정보만 확인하기 : dmesg | grep sda

 

2) SCSI타입의 하드디스크 정보만 확인하기 : dmesg | grep SCSI

 

3) IDE타입의 하드디스크 정보만 확인하기 : dmesg | grep hda

 

4) 시스템 부팅메시지 중 NIC정보만 확인하기 : dmesg | grep eth

 

5) USB장치에 관한 부팅메시지만 확인하기 : dmesg | grep usb

 

6) 시스템 부팅메시지 중 커널정보만 확인하기 : dmesg | grep Linux

 

위의 예들을 모두 실행해 보기 바란다.

 

 

 

 재미난 부팅메시지들을 보게 될 것이고 그 정보들에서 시스템에 관한 특히 하드웨어에 관한 자세한 정보들을 얻을 수 있을 것이다 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  81 명