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

부팅 11단계 : X윈도우 실행

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

부팅 11단계 : X윈도우 실행

 

 

 

 

앞서도 말했지만 부팅레벨이 5번이 아니라면 이미 부팅과정은 10단계에서 끝나게 된다.

 

 

 

 즉 가상터미널에서 텍스트 로그인창을 띄우고 있는 그 장면이 바로 로그인과정의 마지막이다.

 

 

 

 하지만 부팅레벨이 5번이라면 다음 마지막행이 추가로 실행된다.

 

 

 

 GUI사용자환경을 제공하기 위한 X윈도우를 실행하는 것이다.

 

 

 

 다음 내용은 /etc/inittab파일의 마지막 실행내용으로서 부팅레벨 5번일 경우에 X윈도우를 실행하는 설정행이다.

 

 

 

 

 

x:5:respawn:/etc/X11/prefdm -nodaemon

 

거의 대부분의 리눅스배포판 즉 SULINUX, CentOS, Fedora등에서 기본적으로 GNOME데스크톱을 기본적인 X윈도우로 사용하도록 설정되어 있다.

 

 

 

 따라서 부팅과정의 맨 마지막 단계에서 GNOME데스크톱을 실행하고 로그인 대기를 한다.

 

 

 

 위의 설정내용을 보면 /etc/X11/prefdm가 실행된다.

 

 

 

 여기서 prefdm파일은 X윈도우를 실행시켜주는 스크립트파일이다.

 

 

 

 그 파일의 내용을 살펴보면 다음과 같다.

 

 

 

 

 

[root@sulinux ~]#cat /etc/X11/prefdm

#!/bin/sh

 

PATH=/sbin:/usr/sbin:/bin:/usr/bin

 

# shut down any graphical boot that might exist

if [ -x /usr/bin/rhgb-client ]; then

    /usr/bin/rhgb-client --quit

fi

 

# We need to source this so that the login screens get translated

[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n

 

# Run preferred X display manager

preferred=

if [ -f /etc/sysconfig/desktop ]; then

        . /etc/sysconfig/desktop

        if [ "$DISPLAYMANAGER" = GNOME ]; then

                preferred=/usr/sbin/gdm

        elif [ "$DISPLAYMANAGER" = KDE ]; then

                preferred=/usr/bin/kdm

        elif [ "$DISPLAYMANAGER" = XDM ]; then

                preferred=/usr/bin/xdm

        elif [ -n "$DISPLAYMANAGER" ]; then

                preferred=$DISPLAYMANAGER

        fi

fi

 

shopt -s execfail

 

[ -n "$preferred" ] && exec $preferred "$@" >/dev/null 2>&1 </dev/null

 

# Fallbacks, in order

exec gdm "$@" >/dev/null 2>&1 </dev/null

exec kdm "$@" >/dev/null 2>&1 </dev/null

exec xdm "$@" >/dev/null 2>&1 </dev/null

 

# catch all exit error

exit 1

[root@sulinux ~]#

 

GDM(Gnome Desktop Manager), 또는 KDM(KDE Desktop Manager), 또는 XDM등과 같은 리눅스 데스크톱매니저를 선택하고 선택된 X윈도우를 실행시켜주는 내용이다.

 

 

 

 이렇게 해서 다음 X윈도우가 실행되고 다음과 같은 X윈도우 로그인화면을 띄우고 모든 부팅과정이 끝나게 된다.

 

 

 

 

 

 

지금까지 우리는 리눅스시스템의 부팅과정에 대한 모든 과정을 공부하였다.

 

 

 

 마지막으로 우리가 지금까지 열심히 공부한 리눅스 부팅과정을 이해하고 알아야 하는 목적에 대해서 다시한번 생각해 보도록 하자. 리눅스 시스템이 장애가 발생한 경우에 복잡한 부팅과정의 어떤 단계에서 장애가 발생하였는가를 정확하게 알아야 한다.

 

 

 

 

 

예를들어서 파일시스템 체크 즉  e2fsck 수행단계에서 부팅이 멈춰버렸다면 /etc/rc.d/rc.sysinit 단계에서 멈춘 것이므로 이 파일을 살펴보고 조치하거나 필요할 경우에 교체를 하면된다.

 

 

 

 또 다른 예로서 아주 심각한 커널패닉(Kernel panic)이 발생하면서 부팅이 멈추었다면 커널을 로딩하는 단계인 GRUB의 수행중 /boot/grub/grub.conf파일의 kernel로딩행에서 장애가 발생한 것이다.

 

 

 

 따라서 이런 경우에는 다른 커널로 부팅을 하거나 grub-install을 이용하여 장애복구를 해야한다.

 

 

 

 방금 이와 같은 경우에는 예를든 경우이며 전반적인 시스템 부팅과정을 이해하고 있어야만 부팅시에 발생한 시스템장애에 대하여 정확하게 대처를 할 수 있기 때문이다.

 

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,074 명
  • 현재 강좌수 :  35,995 개
  • 현재 접속자 :  534 명