Limetime's TimeLine
article thumbnail
반응형

"리눅스의 부팅과정"

이번 시간에는 리눅스의 부팅과정에 대해 알아볼건데요?

우선 파워를 넣죠?

파워를 넣으면 이제 켜지겠죠?

그러면 bios에 진입을 하게 됩니다. 여기서 'start-up'루틴 이라고 초기화 작업을 진행하게 됩니다.

그 후에 부트섹터에 들어서게 되는데 이 부트섹터에서 부트로더인 grub에 진입하게 되는데

grub는 LILO의 업그레이드(?) 버전입니다. 최신 커널들은 대부분 이 grub를 사용합니다.

LILO는 리눅스 표준 부트로더입니다.

그 후 swapper 프로세스를 실행하는데, 여기서 죽어있던 프로세스를 깨우게 합니다.

그럼 프로세스들이 동작을 하겠죠? 우리가 실제 사용하게될 지정된 응용프로그램과 기본 응용프로그램들의 프로세스들을 시작 하게 합니다.

이 후 init를 실행하는데, 이 init는 쉽게말해 GUI로 갈꺼냐 TUI로 갈꺼냐 이런 부분입니다.

init는 우리 저번에 single boot에서 inittab이란걸 수정 해 보셨죠?

이 부분을 참고로 init 스크립트가 실행되는데 순서를 알 필요가 있습니다.

<init 스크립트 실행 순서>

/etc/inittab => /etc/rc.d/rc.sysinit => /etc/rc.d/rc* => /etc/rc.local

</etc/inittab 설정 파일들>

/etc/rc.d/rc.sysconfig    init스크립트에서 제일 먼저 실행 되는 부분입니다.

/etc/rc.d/init.d/*          데몬 스크립트

/etc/rc.d/rc[0-6].d/*      각 런레벨에 데몬 실행시키기 위한 것입니다. 

    실제 내용은 /etc/rc.d/init.d의 스크립트로의 링크되어 있습니다.

/etc/rc.d/rc.local           init스크립트 제일 마지막 작업파일입니다. 

(일반 스크립트와 추가 스크립트로 이루어져 있습니다.)


/var/lock/subsys/*         현재 실행되고 있는 데몬들의 lock파일들입니다.

/var/run/*.pid               현재 실행되고 있는 데몬들의 PID가 적힌 파일들입니다.

마지막으로 계정 프로세스들이 실행 됩니다.


이렇게 부팅이 이루어지게됩니다. 그럼 우리가 즐겁게(?) 리눅스를 사용할 수 있습니다. ㅎㅎ

어제 해보았던 GUI, TUI를 결정짓는 inittab의 내용을 보도록 할게요.

'vi /etc/inittab' 을 입력하면 내용을 볼 수 있습니다.

/etc/inittab (System RunLevel)


# Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this) 종료

#   1 - Single user mode 싱글모드(안전모드) single boot

#   2 - Multiuser, without NFS 텍스트모드 NFS미지원 (TUI)

#   3 - Full multiuser mode 텍스트모드 NFS지원 (TUI)

#   4 - unused 사용안함 (사용자지정모드)

#   5 - X11 그래픽모드 (GUI)

#   6 - reboot (Do NOT set initdefault to this) 재시작

#

id:5:initdefault: 기본값

이렇게 되있습니다. 

"부팅설정을 수동(직접)으로 해보기!"

해봅시다! 근데 조심 해야합니다! 잘못 만지면 부팅을 못할 수도 있어요..(민감한 부분 이랄까..)

자! 그럼 한번 해봅시다. 

부팅은 일단 grub부분에서 눈으로 부팅메뉴를 보고 선택하여 진입할 수 있습니다.

한 마디로 멀티부팅 같은거? 윈도우랑 리눅스를 동시 사용하는 경우.

여기서 꼭 주의 할점! /boot/grub/grub.conf 파일을 반드시 grub폴더 밖에 복사 해두십시오.

반드시요! 

그럼 시작 하겠습니다.

1. 'rm -rf /boot/grub/grub.conf'를 하시고 재부팅 하십시요. (reboot를 적으면 됩니다.)

여기서 rm(remove)은 지운다는 의미이고, -rf는   옵션입니다.

r은 일반파일은 지우고, 디렉터리의 경우 디렉터리를 포함한 하위 파일 모두 삭제 입니다.


2. 그 후 켜보면 이런 화면이 뜰겁니다. 

이렇게 root(hd0,0)을 선택 해 줍니다. 

자 이렇게 해 줍니다. 

먼저 'kernel /vm (tab을 이용합니다.) root=/dev/sda7'을 이용해 커널 동작 실행 최상위(/)를 지정합니다.

그 후 'initrd /in (tab을 이용합니다.)'를 사용해서 프로세스 동작을 실행 합니다.

다 하면 boot를 이용해 재부팅을 시행 합니다.


끝! 잘 부팅되는걸 보실 수 있죠?  들어가셔서 이제 전에 복사 해두었던 grub.conf 파일을 다시 

/boot/grub/ 폴더에 붙여넣습니다. 이렇게 안하면 다시 grub 설정창에 머무는데 여기서 저 명령어를 쳤다 하더라도 먹통이 될 수 있습니다. 주의 하세요!






반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!