키키호의 블로그

[Linux] 리눅스 부팅과정 이해 본문

Linux/일반이슈

[Linux] 리눅스 부팅과정 이해

kikiho 2014. 1. 27. 07:02

1. 시스템 부팅과정


Power ON

ROM BIOS에서 지정된 부트 드라이브로 부팅 시작

부트 드라이브의 첫 번째 섹터인 부트 섹터 읽어 들임

부트 섹터의 부팅 프로그램인 부트로더(GRUB) 작동

커널 이미지(/boot/vmlinuz) 적재

 루트 파일 시스템(root filesystem) 마운트

 시스템 초기화 프로그램(init) 작동

 Login: 프롬프트 또는 엑스 윈도우 로그인 화면



2. 부트로더에 의한 부팅


 컴퓨터 전원 -> 바이오스 정보 -> 부팅


하드디스크 첫번째 섹터에 저장되어 있는 부트 정보를 읽어들여 어떤 운영체제로 부팅이 될 것인지 결정

이때 하드디스크는 첫 번째 섹터에 있는 부트로더라는 프로그램이 저장되어 있으며, 이 프로그램에 의해서 선택된 운영체제로 부팅이 이루어 지게 된다.

 해당 첫번째 섹터를 MBR(마스터 부트 레코드)라 한다. 이 MBR에는 운영체제의 부트 정보가 저장된다.

 이 부트로더에 의해 부팅이 이루어지고, 기본 부팅 운영체제로 선택되면 커널(kernel)이 작동하게 된다.


3. 커널과 부트 스플래시(BootSplash)

 리눅스 운영체제가 부팅이 되면 제일 먼저 커널(kernel)이 동작하게 된다.

 커널이 동작하면서 화면상에 시스템 내의 하드웨어를 인식하여 그에 대한 정보를 보여주게 되는데, 이러한 정보를 커널 메시지라 하며 /varlog/dmesg 파일에 저장된다.


4. 루트 파일 시스템 마운트
 커널이 동작한 후에는 initrd.gz 또는 initrd.img로 된 램 디스크가 동작하여 리눅스가 설치된 파티션을 루트 파일시스템으로 읽기 모드로 마운트하게 된다. 이 과정에서 initrd.gz나 initrd.img 파일 설정이 잘못되어 있거나 파일에 문제가 있는 경우 또는 리눅스가 설치되어 있는 파티션 장치가 올바르지 않을 경우에는 오류를 보여주면서 커널은 패닉에 빠지고, 부팅을 하지 못하게 된다.


VFS : Cannot open root device 21:43

Kernel panic : VFS: Unable to mount root fs on 21:43


루트 파일시스템은 rc.sysinit 스크립트에 의해서 로컬 디스크가 마운트될때 읽기/쓰기 모드로 다시 마운트가 이루어 지게 된다.

응급 복구 모드에서 다시 확인해 보겠지만, 응급 복구 모드로 복구하였을 때 루트 파일시스템은 읽기 모드로만 마운트 되어 있기 때문에 다음과 같이 읽기/쓰기 모드를 재 마운트하여야 시스템파일을 수정하거나 삭제할 수 있게 된다.


# mount -o remount,rw /


Comments