컴퓨터를 켰을 때 가장 먼저 실행되는 프로그램이 부트로더(Bootloader)이다. 부트로더는 운영체제를 메모리에 로드하고 실행하는 역할을 하며, 하드웨어와 운영체제 사이에서 중개자 역할을 한다.
부트로더의 주요 기능
- 운영체제 로딩: 부트로더는 디스크에서 운영체제 커널을 찾아 메모리에 로드한다.
- 멀티부팅 지원: 여러 운영체제가 설치된 경우 선택적으로 부팅할 수 있도록 메뉴를 제공한다.
- 부트 설정 관리: 부팅 옵션과 파라미터를 설정하여 시스템의 부팅 방식을 제어한다.
대표적인 부트로더 종류
- GRUB(Grand Unified Bootloader): 리눅스에서 가장 널리 사용되는 부트로더로, 다양한 파일 시스템과 운영체제를 지원한다.
- LILO(Linux Loader): 초기 리눅스 시스템에서 사용되던 부트로더로, 현재는 거의 사용되지 않는다.
- Windows Boot Manager: 윈도우 운영체제에서 사용하는 부트로더이다.
GRUB 부트로더
GRUB(Grand Unified Bootloader)는 리눅스 계열 운영체제에서 널리 사용되는 부트로더이다. 다양한 운영체제를 부팅할 수 있는 유연성과 강력한 기능을 제공한다.
GRUB의 주요 특징
- 부트 정보 수정 가능: 부트로더 메뉴에서 직접 부트 옵션을 수정할 수 있어, 부팅 문제가 발생했을 때 즉각적인 대응이 가능하다.
- 멀티부팅 지원: 여러 운영체제를 설치하고 부팅 시 선택할 수 있다.
- 대화형 모드 제공: 커널 경로와 부트 파라미터를 수동으로 입력하여 부팅할 수 있다.
GRUB2의 장점
GRUB의 차세대 버전인 GRUB2는 기존 버전에 비해 다양한 기능이 추가되었다.
- 셸 스크립트 지원: 조건문과 함수 사용이 가능하여 복잡한 부트 로직 구현이 가능하다.
- 동적 모듈 로딩: 필요한 기능만 모듈로 로드하여 부트로더의 효율성을 높인다.
- 그래픽 부트 메뉴 지원: 사용자 친화적인 인터페이스를 제공한다.
- ISO 이미지 직접 부팅: 별도의 디스크 없이 ISO 이미지를 이용해 부팅할 수 있다.
- 향상된 설정 파일 구조: 더 유연하고 강력한 설정이 가능하다.
설정 파일 구조
파일 | 설명 |
/boot/grub2/grub.cfg | 메인 설정 파일로 자동으로 생성되는 파일이다. 직접 수정하지 않는 것이 좋다. |
/etc/default/grub | GRUB2의 기본 동작을 설정한다. |
/etc/grub.d/ | 부트트 메뉴 항목을 생성하는 스크립트들이 위치한다. |
설정 적용
설정 파일을 변경한 후 명령어를 실행해 주어야 적용된다.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
루트 비밀번호 재설정
1. 부트로더 편집 모드로 진입
- 시스템 부팅 시: 컴퓨터를 켜고 부팅 과정에서 GRUB 메뉴가 나타나지 않을 때, 키보드의
Esc
또는Shift
키를 여러 번 눌러 GRUB 메뉴를 호출한다. - GRUB 메뉴에서: 부트 옵션이 나타나면 원하는 커널 항목을 선택하고
e
키를 눌러 편집 모드로 진입한다.
2. 부트 옵션 수정
rhgb quiet
옵션 제거:- 부트 옵션에서
linux
로 시작하는 줄을 찾는다. - 해당 줄에서
rhgb quiet
를 삭제한다.rhgb
: Red Hat 그래픽 부트 화면을 표시한다.quiet
: 부팅 시 상세 메시지를 숨긴다.
- 이 옵션들을 제거하면 부팅 과정의 상세 정보를 볼 수 있어 문제 해결에 도움이 된다.
- 부트 옵션에서
init=/bin/sh
추가:- 동일한 줄 끝에
init=/bin/sh
를 추가한다. - 이는 시스템이 초기화 프로세스로
/bin/sh
셸을 사용하도록 지정하여 루트 셸로 직접 접근할 수 있게 한다.
- 동일한 줄 끝에
3. 변경 사항 적용 및 부팅
- 부팅 시작:
Ctrl + X
또는F10
키를 눌러 수정된 설정으로 부팅한다.
4. 루트 파일 시스템 재마운트
/ 볼륨이 읽기 전용으로 마운트 되어있기 때문에 비밀번호를 변경할 수 없다. 읽기쓰기 모드로 재마운트한다.
# 현재 마운트 상태 확인
mount
# 읽기-쓰기 모드로 재마운트
mount -o remount,rw /
5. 비밀번호 변경 및 시스템 재부팅
# 비밀번호 변경
passwd
# 시스템 재부팅
reboot
GRUB에 비밀번호 지정하여 보안 강화하기
부트로더를 통하여 루트의 비밀번호를 변경할 수 있기 때문에 시스템 보안을 위해 부트로더 접근에 비밀번호를 설정할 수 있다. 이를 통해 무단으로 부트 옵션을 변경하거나 싱글 유저 모드로 부팅하는 것을 방지할 수 있다.
1. 암호화된 비밀번호 생성
# 암호화된 비밀번호 생성
[root@localhost ~]# grub2-mkpasswd-pbkdf2
암호를 입력하십시오:
암호를 재입력하십시오:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.42F2B494329DC81FF87ED6E998D303B40F61E0991F34FE3C3BD666E2D3E185FAF48153E0EA9385DF65D546B8B15D7DA07FF10F66D7C1780D2F26106D25C2182B.723F547D6E2B99FBEF561D520B7BE37D19347E2A5B817211733853F89AB32F1BB02B4D1F3124FB32A944DE78A782A034DC08D50E5BCAA7C498511DEBC8D755B2
2. 비밀번호 설정 파일 수정
커스텀 설정 파일 수정
sudo vi /etc/grub.d/40_custom
비밀번호 설정 추가
커스텀 파일 마지막줄에 비밀번호 설정을 추가한다.
# set superusers="사용자이름"
# password_pbkdf2 사용자이름 암호화된_비밀번호
set superusers="kyoulho"
password_pdkdf2 kyoulho grub.pbkdf2.sha512.10000.42F2B494329DC81FF87ED6E998D303B40F61E0991F34FE3C3BD666E2D3E185FAF48153E0EA9385DF65D546B8B15D7DA07FF10F66D7C1780D2F26106D25C2182B.723F547D6E2B99FBEF561D520B7BE37D19347E2A5B817211733853F89AB32F1BB02B4D1F3124FB32A944DE78A782A034DC08D50E5BCAA7C498511DEBC8D755B2
설정 적용
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
728x90
'CS > Linux' 카테고리의 다른 글
[Linux] RAID 설정하는 방법 (0) | 2024.10.01 |
---|---|
[Linux] 하드웨어 디스크 추가하는 방법 (0) | 2024.10.01 |
[Linux] 파이프, 프로세스, 서비스 (1) | 2024.09.28 |
[Linux] 주요 네트워크 명령어 및 설정 파일 (0) | 2024.09.27 |
[Linux] CRON과 AT (0) | 2024.09.22 |