글 수 369
▒ Doly의 CentOS7 강좌 9 3. CentOS시작, 종료, 둘러보기 -1
#################################################
작성자 : 정우영
작성일 : 2014.08.21
대상 OS : CentOS7 x86_64
완성될 서적 : Doly의 CentOS7 구축 관리 실무 (2015년 3월)
본 강좌를 기반으로 서적을 집필합니다. 연재강좌가 마무리되고 몇달 후면 서적이 나오겠죠? CentOS7은 서적도 없지만 강좌도 많이 부족하네요. 리눅스 서버를 10년 넘게 구축하고 관리하고 컨설팅하면서 꼭 필요한 부분과 알아야 할 부분들을 꼼꼼히 체크하면서 강좌를 써보려합니다. 강좌중 오탈자가 있거나 설명이 부족하고 잘못된 경우 doly골뱅이superuser.co.kr으로 메일한통 부탁드립니다. 강좌가 수정되면 더 많은 분들께 도움이 될것이라 생각하고 강좌를 기반으로 집필될 서적또한 완성도가 높아지지 않을까 생각합니다.
#################################################
3. CentOS시작, 종료, 둘러보기
3.1. 부팅
3.1.1. GRUB 부트로더 화면
CentOS 설치가 정상적으로 끝나고 리부팅을 하게 되면. 이후 부팅할 때 마다 다음 화면을 만나게 된다.
이 화면은 5초 후에 자동으로 넘어가게 되며, 부트 모드로 진입하기 위해서는 5초 이내에 아무키나 누르면 된다.
[참고] GRUB 부트 메뉴 및 커널 옵션 입력
1. 커널 선택
위 화면은 부트 메뉴이다. CentOS 7은 위그림의 두 번째 리스트와 같이 복구(rescue)모드를 제공한다. 만약 여러개의 커널이 설치되어 있다면 여러개의 커널 중 선택할 수 있을 것이다. CentOS의 커널은 yum을 통해 쉽게 업데이트할 수 있다. 업데이트 하게 되면 현재 사용하던 커널을 업데이트 하는 것이 아니라 새로운 커널을 추가로 설치하게 된다. 추가로 설치된 커널이 기본 부트 커널로 선택되고 예전 커널은 위 메뉴에서 선택하여 부팅할 수 있다.
리눅스 설치단계에서 RAID 및 특정 컨트롤러 드라이버를 설치했다면 커널 업그레이드 후 부팅이 안되는 경우가 있다. 이러한 경우 위와 같은 방법으로 GRUB 부트 메뉴로 진입하여 처음 설치된 커널을 선택하게 되면 정상적으로 부팅될 것이다.
2. 커널 옵션 값 입력
위 “1. 커널 선택” 메뉴에서 부팅하고자 하는 커널을 키보드 방향키를 사용하여 선택하고 “e"키를 누르게 되면 위 화면과 같이 파라미터 편집 화면이 나타난다. CentOS 7에서는 위 그림과 같이 복잡해 졌으며 모듈을 로드하는 기능 또한 제공한다. linux16부터 시작하는 줄이 커널 파라미터를 입력하는 곳이며 마지막에 필요한 옵션값을 넣는다.
향후 커널 옵션값 입력은 위와 같은 방법으로 입력할 것이며, 지속적으로 옵션을 넣어야 한다면, “/etc/grub.conf"파일에서 해당 부분에 넣어줄 것이다. 편집이 완료되었다면 <Ctrl> + x 키를 입력하여 재시작 한다. 편집을 취소하고 싶다면 <ESC> 키를 눌러 편집모드에서 빠져나온다.
3. root 비밀번호 변경(잊어먹었을 때)
CentOS 7부터는 Single 모드로 들어가면 비밀번호를 요구한다. 그래서 다음과 같은 방법을 사용해야 한다. 커널 옵션 값을 single이 아닌 init=/bin/bash(또는 init=/bin/sh)를 넣어야 한다. 옵션 값에 single을 넣게되면 root 비밀번호를 입력해야 쉘 환경으로 진입할 수 있다. 응급복구모드(본 서적에서는 CentOS 6이하에서 사용하던 싱글모드를 응급복구모드로 표현한다)로 부팅하게 되면 인증 없이 root 권한을 가진 쉘 환경으로 부팅되며, 쉘 환경에서 root 비밀번호를 변경하면 비밀번호를 잊어버렸을 때에도 쉽게 변경할 수 있다. 단, 컴퓨터를 리부팅(<Ctrl>+<Alt>+<Del> 키를 입력하여 리부팅 할 것을 권장)해야한다는 문제는 있다.
위 “2. 커널 옵션 값 입력”과정에서 옵션으로 다음 그림과 같이 입력한다.
위 그림과 같이 rhgb quiet LANG=ko_KR.UTF-8을 삭제하고 init=/bin/bash를 입력한다. rhgb 및 quiet를 삭제하지 않으면 키보드 입력에 문제가 생길 것이다. 입력 후에는 <Ctrl> + x 키를 입력하여 부팅한다.
부팅이 완료되면 위 화면과 같이 root권한의 쉘 환경으로 부팅될 것이다. 기본적으로 부팅되면서 파일시스템은 읽기전용으로 마운트된다. 이 부분을 읽기/쓰기 가능하게 mount -o remount,rw / 명령을 사용하여 다시 마운트 한다. 다음으로 passwd명령어를 입력한다. 새로운 비밀번호(New password:)입력부분에 변경하고자하는 root 비밀번호를 입력하고, 비밀번호 재입력(Retype new password:) 부분에 다시 한번 변경하고자하는 비밀번호를 입력한다. 변경이 정상적으로 완료되었으면 passwd: all authentication tokens updated successfully. 메시지를 출력할 것이다. 변경 완료되었다면 부팅시 파일의 SELinux 컨텍스트 변경을 확정하기 위해 touch /.autorelabel을 입력한다. 다음으로 exit 또는 exec /sbin/reboot 명령어를 사용하여 시스템을 리부팅한다.
(참고) 비밀번호 변경하고 touch /.autorelabel을 입력하지 않은 경우 부팅은 정상적으로 되지만 root 비밀번호는 변경되지 않았을 것이다.
(참고) 위와 같은 절차대로 보두 입력하고도 아래와 같은 메시지를 만나게 된다면 정상적으로 (재)부팅이 이뤄지지 않은 것이다.
위와 같은 경우가 발생되면 부팅은 되나 로그인화면이 나타나지 않고 <Ctrl>+<Alt>+2 키를 입력하여 콘솔로그인 창을 띄우더라도 root 뿐만 아니라 일반계정으로도 로그인이 되지 않을 것이다. 이러한 경우 다시 위 절차대로 응급복구모드로 진입하고 /etc/selinux/config 파일을 다음과 같이 수정한다.
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
...
위와 같이 SELINUX=enforcing으로 설정된 것을 SELINUX=disabled로 변경한다. 변경 후에 리부팅을 하면 정상적으로 로그인이 가능할 것이다. root로 로그인 하여 touch /.autorelabel을 입력하고 다시 위에서 설정한 SELINUX=disabled를 SELINUX=enforcing으로 변경하고 리부팅을 하면 모두 정상화 된다.
3.1.2. 부팅과정
CentOS 6이 부팅되는 과정은 CentOS 5보다 훨씬 빨라졌다. 이는 고전적인 System V init 부팅방식에서 Upstart 방식을 채택하여 이벤트 방식으로 작동한다. 이는 시작해야 할 시작스크립트간의 의존관계가 해결된다면 동시에 시작할 수 있어 순차적으로 시작하던 고전적인 방법보다 훨씬 빠르다. CentOS 7은 Systemd을 이용한다. Upstart와 비슷하지만 조금더 향상되었다. 위 스크린샷의 좌측은 GUI화면을 보여주는 것이고 이 상태에서 <ESC>키를 누르게 되면 구동되는 내역을 볼 수 있는 우측 화면이 나타난다.
아래 그림은 최소설치시 부팅화면의 일부이다. CentOS 6의 부팅화면과 비슷하다.
이상으로 9번째 강좌를 마무리 하겠습니다. CentOS 7의 GRUB와 부팅과정은 많이 달라졌습니다. root 비밀번호를 잊어 먹었을 때 해결 방법도 많이 달라졌으니 꼭 북마크 해두었다가 헤메지 않도록 합시다. 의도했던 것 처럼 다음 강좌를 기다리시는 분들과 응원을 해주시는 분들이 있으시네요. 더 열심히 해야겠습니다. 2014년 8월 21일(목) 도리(Doly)였습니다.^^
#################################################
수정이력 : 본 강좌는 언제든 갱신될 수 있습니다.
( 원글은 www.linux.co.kr 강좌>리눅스>Doly의 연재강좌 에서 수정됩니다. )
2014.08.21(목): 최초작성