레이블이 리눅스 부팅인 게시물을 표시합니다. 모든 게시물 표시
레이블이 리눅스 부팅인 게시물을 표시합니다. 모든 게시물 표시

2007년 7월 26일 목요일

[scrap] 리눅스 부팅

출처 : 코리아인터넷닷컴, a 2001년 02월 06일
저자 : 전병국


리눅스 부팅, 그것이 알고 싶다 (1) : 컴퓨터 켜고 30초

컴퓨터에 전원을 넣고 원하는 작업을 할 수 있는데 까지 약간의 시간이 필요하다. 잠자던 컴퓨터가 깨어나 사용자의 작업을 기다리는 상태가 되기까지의 과정이 바로 부팅(Booting)이다. 따로 떨어져 있던 하드웨어와 소프트웨어가 만나 어떤 일이든 할 수 있는 대기 단계로 돌입하는 것이다.

기본적으로 부팅은 하드웨어 단계에서 시작되기 때문에 운영체제(OS)를 넘어선 영역이다. 운영체제는 부팅의 단계에서 선택되는 것이기 때문에 같은 컴퓨터에 리눅스가 설치될 수도 있고, 윈도우 98이 설치될 수도 있는 것이다.

■ 리눅스 컴퓨터 켜고 30초
 


전원


안에서 무슨 짓을 하고 있나?

   

하드웨어

 

  1. 컴퓨터의 전원을 켬

바이오스(BIOS)


  1. 시스템 이상 여부 점검(RAM 체크, PnP 장치 검색 등)
  2. 부팅할 드라이브 검색
  3. 부팅할 드라이브의 첫 번째 섹터 읽음. 보통 Master Boot Recorder(MBR)라 함

LILO


  1. 첫 번째 섹터에 있는 로더 프로그램(예:LILO)이 OS(리눅스)을 읽음
  2. 커널 압축 해제

커널(KERNEL)


  1. 장착된 하드웨어 검사, 드라이버 설정
  2. 파일 시스템 검사
  3. /etc/inittab에 있는 내용을 근거로 초기화 설정이나 실행 지정된 프로그램 실행

파일 시스템


  1. 사용자 입력을 기다림(로그인 대기)

리눅스 부팅, 그것이 알고 싶다 (2) : 좀 더 자세히 살펴 보자(1)

부트로더(The Boot Loader)

바이오스가 기본적인 방법으로 하드웨어들을 점검하고 난 후 가장 먼저 일어나는 일은 하드 디스크에 내려와 최초의 프로그램이 적재되는 것이다. 만약 리눅스 기반 시스템을 부팅하게 되면 이 프로그램은 보통 LILO(LInux LOader)와 같은 부트로더다(인텔/리눅스의 경우만 LILO이고 다른 CPU 기반 하드웨어는 다른 것을 사용한다). LILO와 같은 부트로더는 여러 운영체제를 선택해서 부팅하게 하는 역할도 해준다.

커널 및 커널 장치(The Kernel and Kernel Devices)

정상적으로 진행된다면 LILO는 커널과 함께 적재된다. 커널은 실제적으로 리눅스 그 자체라 할 수 있다. 커널이 시스템의 나머지 부분에 모든 핵심 서비스들을 제공하며 시스템이 켜져 있는 동안 계속 상주한다. 커널이 시작되어 장착된 하드웨어를 찾고 관련 드라이버들을 적재한다. 리눅스의 장치 드라이버는 각종 하드웨어를 사용할 수 있도록 하는 매개체다.

예를 들면, LAN연결을 위한 이더넷(Ethernet) 카드 드라이버는 리눅스와 이더넷 카드간의 통신이 가능하도록 하는 역할을 하는 것이다. 여기에는 두 가지 예외사항이 있다.

첫째, 새로 나온 일부 카드나 보드(Board)는 기존 과는 다른 칩셋을 사용한다. 이것들을 제어하기 위한 새로운 드라이버 소프트웨어가 아직 나오지 않았거나 리눅스 공동체의 테스트를 거치지 않은 상황이라면 이 카드나 보드는 작동하지 않는다.

둘째, 하드웨어 제조업체가 자사의 하드웨어 어떤 방식으로 작동하는지 상세한 정보를 제공하지 않으면 장치 드라이버 사용에 문제가 발생할 수 있다.

리눅스 부팅, 그것이 알고 싶다 (3) : 좀 더 자세히 살펴 보자(2)

inittab과 자동 설정된 프로그램 작동

이제 부팅시에 자동으로 실행되도록 설정된 프로그램들을 작동시킨다. 이런 설정은 여러 디렉토리에 나누어져 있으며 상황에 따라 실행 우선 순위가 달라진다(예를 들면 관리자만 접근할 경우 등). 이런 실행 순위를 결정하는 마스터 제어 파일이 있는데 이를 /etc/inittab이라고 부른다. inittab 파일 내에서 어느 단계에서 어느 프로그램이 실행되는지는 chkconfig와 같은 툴을 이용하면 된다. 일반적인 편집기 프로그램으로 그 내용을 볼 수 있다.

윈도우 관리자를 실행시키고 있다면, 필요한 모든 지원 프로그램을 실행시키고 동시에 X윈도우즈를 시동하는 특별한 실행단계가 있다. 윈도우 관리자 프로그램은 시스템 전체나 개별 사용자 별로 맞춤설정이 가능한 시동 스크립트를 내장하고 있다.

로그인

이제 모든 프로그램이 준비되어 있다. 이제 로그인을 해야 한다.

쉘(Shell)을 시작하자

리눅스가 웹서버로 사용중이라면 원격에 있는 사용자는 로그인 없이도 웹 브라우저로 시스템에 접근하여 홈페이지를 볼수 있다. 그러나 리눅스를 자신의 시스템으로 사용하려면 쉘을 통해야만 한다. 쉘을 실행하기 위해서 사용자는 사용자 ID(user name)과 암호(password)를 입력해야 한다. 그런 다음 시스템의 패스워드 파일과 대조 하여 방금 입력한 내용을 점검하고 일치하면, 바로 쉘이 작동한다.

물론 최근에는 쉘 상태를 거치지 않고 곧바로 X윈도우로 향하는 설정을 해놓기도 한다.

부팅 과정을 로그 파일로 보기

모든 부팅 과정이 로그(log) 파일로 남는다. 다음의 3가지 방법 중 하나를 이용하면 그 내용을 볼 수 있다.

  • # dmesg
  • # cat /var/log/messages
  • 더 간단한 것을 원한다면... Shift + Pg Up / Pg Dn 버튼을 이용하면 된다.

2007년 6월 6일 수요일

[OpenSuSE] GRUB with Penguin

OpenSuSE를 쓰다보면 아주 가끔 부팅시 GRUB화면이 바뀐 것을 보고 놀랄 때가 있다.
다시 부팅해보면 언제 그랬냐는 듯이 원래의 화면만 나올뿐이다.
알고보니 특정한 날에만 한 번씩 나오도록 설정이 되어있는 것이라고 한다.

항상 펭귄이 나오도록 바꿔보고자 한다.
GRUB의 초기화면을 결정하는 파일은  /boot/message이다.
시스템파일이므로 수정하기 전에는 백업을 한다.
$ cp /boot/message ~/backups/message.old 와 같이 하면된다.

$ mkdir ~/temp          #수정작업을 위한 공간생성.

$ cp /boot/message ~/temp          #message파일을 작업공간으로 복사.

작업공간에 들어가 파일을 풀어낸다.
$ cd ~/temp
$ cpio -idv < message          #이렇게 해주면 jpeg이미지들을 포함한 10여개의 파일이 생겨난다.

$ rm message          #더이상 필요가 없어진 message파일을 삭제.

수정할 파일은 gfxboot.cfg이다. 내용은 다음과 같다.
# penguin theme likelihood in percent; -1 = auto
penguin=-1

두 번째 줄에서 default로 되어있는 -1을 100으로 바꿔주면 항상 부팅시 펭귄을 만나게 된다.

수정작업을 마치고 저장했으면 다시 message파일을 새로이 생성해주어야 한다.
$ ls | cpio -ov > ../message         #한 단계 상위디렉터리에 생성.

이제 생성된 파일을 root로서 원래 위치로 복사한다.
$ cd ..         # 생성된 message파일이 있는 곳으로 이동.
$ su
password:********
# cp message /boot/message
이렇게 해주면 기존의 파일을 덮어쓸 것인지 물어오고, 예라고 답하면 새로운 파일이 저장된다.