본문 바로가기
Computer Science/Linux 다뤄보는 문과생

Linux 다뤄보는 문과생 (2) - 리눅스 설치 및 부팅의 모든 것

by 싸코 2017. 11. 20.

이번 파트는 굉장히 지루하지만 꼭 알아야 하는 부분이었다. 리눅스를 설치할 때 주요 파일 들이 어디에 저장되는지 부팅은 어떻게 되는지 그 메카니즘을 알 수 있었음

 

Linux 다뤄보는 문과생 (2)

리눅스 설치 및 부팅의 모든 것

 

1. Linux와 컴퓨터 하드웨어

2. Linux 설치

3. Linux 부팅과정

4. Linux 부팅과정 조정

 

1. Linux와 컴퓨터 하드웨어

하드웨어를 알아야 운영체제를 안정적으로 사용할 수 있음

 

컴퓨터는 I/O인터페이스로 구성됨 (메모리, CPU, 마우스,키보드 등)

 

I/O인터페이스는 BIOS를 통해 통신이 이루어지며 BIOS는 우리가 보통 운영체제를 설치할 때 설치하는 것으로 혼자서 운영체제를 설치해본 사람들은 이 BIOS 설치를 직접 함. 예를 들어 조립컴퓨터를 샀을 때 메인보드 CD가 같이 오고 이 CD는 BIOS를 설치할 때 많이 사용됨. 호환성이 있는 BIOS를 설치해야 운영체제와 하드웨어가 잘 통신할 수 있기 때문임

 

Linux가 최신의 하드웨어를 지원하지 않는 이뉴는 윈도우용 드라이버가 제작된 후에 Linux 드라이버가 제작되기 때문임

 

 

리눅스 설치 시에는 여러 파일 시스템이 필요함

  • root 파일 시스템 : 리눅스 동작에 필요한 기본적인 명령이나 각종 유틸리, 구성파일 설치 공간
  • boot 파일 시스템 : 부팅 시에 관련된 부트로더, 커널 프로그램 설치 공간
  • swap 파일 시스템 : 가상 메모리 공간
  • usr 파일 시스템 : X 윈도우 관련 유틸리티 및 개발 관련 프로그램 설치 공간
  • var 파일 시스템 : 리눅스 운영 시 발생되는 각종 메시지들의 로그나 메일이나 프린터 등과 같은 스풀링 작업에 필요한 공간
  • home 파일 시스템 : 개인 사용자들의 작업공간
  • opt 파일 시스템 : 제 3업체에서 개발된 리늑스용 응용프로그램 설치 공간

크게 root, swap 파일 시스템으로 보며 root은 리눅스 운영에 필요한 모든 파일을 저장하는 공간으로 최소 10GB 이상 필요

 

추가적으로 알아야되는 중요한 하드웨어 정보는 "네트워크 정보"이며

인터넷이나 네트워크를 사용하기 위해서 IP주소 및 호스트명, 넷매스크 주소, 게이트웨이 서버주소, 네임서버의 주소가 필요함

 

 

 

2. Linux 설치

1. 각 배포본 사이트에 가서 iso 파일을 다운로드

2. 이미지 파일을 다운받아 CD 또는 USB에 복사하거나 가상머신에 직접 설치 가능

 

리눅스 설치와 관련된 내용은 다른 블로그들에서 친절하게 설명되어 있으니 블로그를 찾아따라하며 하면 좋다

 

설치 이미지 파일을 다운로드 받기 전에 사용목적을 명확히 하고 (데스크탑? 서버? .... ???) 알맞은 배포본과 버전을 선택한다

 

 

3. Linux 부팅과정

리눅스 시스템은 전원을 켰을 때, POST 프로그램이 수행되고 MBR에 지정된 부트로더(GRUB)이 수행된다. 커널 이미지 메모리로 로딩이 된 후에는 루트 파일 시스템으로 연결(mount)이 되고 시스템이 초기화 된 후 프로그램이 수행(init)되며 로그인 화면으로 넘어간다

 

*MBR(Master Boot Record) 운영체제의 부트로더 정보가 들어 있음. GRUB/LILO같은 부트로더 정보 (윈도우의 경우 OS 로더에 대한 정보)

 

 

부트로더의 역할

컴퓨터 하드웨어 자원들을 제어하여 사용자들이 공동으로 사용할수 있게 해주는 운영체제로 커널을 컴퓨터의 주 메모리로 올려 실행하게 만들어 주는 일을 해줌. 시스템이 부팅하지 못하면 작업을 할 수 없음

 

리눅스에는 GRUB과 LILO 두 가지의 부트로더가 있고 GRUB이 거의 주로 사용됨

 

GRUB은 메뉴 방식의 인터페이스로 구성됨. 부팅 시 쉘과 유사하게 커맨드라인으로 부팅과정 제어 가능하며 파일 시스템을 직접 이용하므로 커널이 바뀔 때마다 재설치 필요가 없음

 

디스크가 없는 부팅, 네트워크 부트 기능도 포함되어 있음

 

 

/boot/grub/grub.conf

GRUB부트로더의 기본 설정 값이 포함되어 있는 파일

default=0

timeout=5 5초안에 설정을 안하면 디폴트로 고고

title은 메뉴에 구성되는 제목. root (hd0, 0) 부트 디폴트 디렉토리를 의미. hd0는 첫번째 하드디스크, 0 첫번째 파티션

kernel /boot/vmlinuz-2.~ 는 실제 부팅 커널이며 root=는 루트파일 시스템을 설정하는 것

intird 부트 파이릉ㄹ 어디서 가져

kernel 항목에 설정된 커널을 메모리에 로딩하고 root= 항목에 설정된 장치를 루트파일시스템으로 마운트(연결)하며 설정이 잘못되면 시스템을 부팅할 수 없음

 

 

init

시스템 초기화 프로그램 수행

 

* 리눅스 시스템의 런 레벨(run-level) : 시스템의 동작 모드를 일컫는말

런 레벨에 따라 멀티 유저가 단일유저가 사용할 수 있음

 

/etc/inittab 기본적인 런 레벨 설정

/etc/int/rcS.conf 시스템 초기화 과정에서 수행될 프로그램 설정

/etc/init/rc.conf 시스템의 런 레벨에 따라 수행될 프로그램 설정

/etc/init/control-alt-deleteconf ctr+alt+delete 키에 의한 시스템 재기동 설정

/etc/init/tty.conf 오픈 될 터미널에 대한 설정

/etc/init/prefdm.conf 데스크탑 초기화하는 프로그램으로 런 레벨 5에서만 수행

 

 

# who -r  을 실행하면 현재 내가 사용하는 리눅스의 런 레벨을 알 수 있음

 

 

 

4. Linux 부팅 과정의 조정

GRUB 로더의 설정파일 /boot/grub/grub.conf 과 시스템 초기화 과정의 설정 파일 /etc/inittab을 변경하여 부팅과정을 제어할 수 있음

 

 

부트로더 설정 파일에서 수정하는 방법

 

# gedit /boot/grub/grub.conf

 

 

부트로더에 의해 리눅스 커널이 메모리에 로딩이 되면 제일 먼저 init 프로세스가 실행됨

/etc/inittab 파일 및 /etc/init 디렉토리의 각종 파일에 설정된 정보들을 변경해 초기화 과정을 변경할 ㅜㅅ 있음

 

# gedit /etc/inittab

런레벨을 설정가능

 

 

리눅스를 웹 서버나 FTP 서버 등 각종 인터넷 서버로 구축하려면 부팅 시 관련 프로세스를 자동으로 수행하도록 해야 함

 

  1. chkconfig 도구를 이용함
    # chkconfig --list vsftpd
    # chkconfig --level 3 vsftpd on
    # chkconfig --list vsftpd
    런 레벨3에서 vsftpd 서비스가 자동으로 수행되도록 설정됨
  2. 그래픽 프로그램 이용
    - 시스템 -> 관리 -> 서비스 메뉴에서 vsftpd 프로세스를 찾아서 "사용"으로 설정

 

Linux 부팅과정

POST -> GRUB 부트로더 -> 커널 로딩 -> 루트 파일시스템 연결 -> init 수행 -> 로그인

 

 

 

댓글