리눅스 운영체제를 사용하는 많은 사용자들에게 리눅스 부트 매니저는 익숙한 이름일 것입니다. 리눅스 부트 매니저는 운영체제를 부팅하고 관리하는 핵심 도구 중 하나로, 그중에서도 가장 중요한 역할을 합니다. 이 글에서는 리눅스 부트 매니저의 개요, 종류, 그리고 CentOS 7에서의 실습 방법에 대해 자세히 알아보겠습니다.
부트 매니저의 정의
부트 매니저는 컴퓨터를 부팅할 때, 사용자가 어떤 운영체제를 실행할지 선택할 수 있도록 하는 프로그램입니다. 여러 개의 운영체제가 설치된 컴퓨터에서 특히 유용하며 보조기억장치(SSD, CD-ROM, DVD, BD)에 위치한 운영체제를 주기억장치로 로드할때 필요하며 부트로더 라고도 부릅니다. 부트 매니저는 부팅 과정에서 사용자에게 메뉴를 제공하고, 그 메뉴에서 원하는 운영체제를 선택하면 해당 운영체제를 부팅합니다.
백문이 불여일견! 가상머신으로 Centos7 실행을 하면서 보여드리겠습니다.
#2021년부터 리눅스마스터 실습시험은 Centos7으로 진행됩니다.
질문. 뒷자리 수만 다른데요? 이게 무슨 차이가 있나요?
3.10.0-1160.95.1.e17
3.10.0-1160.71.1.e17
답변:
표시되는 두 가지 커널 버전인 "3.10.0-1160.95.1.e17"과 "3.10.0-1160.71.1.e17" 간의 차이점과 숫자의 의미를 살펴보면
- 버전 번호: 두 번째 숫자부터 시작하여 각각 "1160.95.1"과 "1160.71.1"로 다릅니다. 이는 커널 버전의 서브 버전 또는 패치 버전을 나타냅니다. 서브 버전은 커널 개발자가 보안 업데이트, 버그 수정 등을 적용할 때 변경됩니다. 더 높은 서브 버전은 더 최근의 업데이트를 나타냅니다.
- 커널 업데이트: "3.10.0" 다음의 숫자인 "1160"은 메인 리눅스 커널의 주 버전을 나타냅니다. 이 버전은 주로 큰 변화나 기능 업그레이드 시에 변경됩니다. 이 숫자도 더 높은 것이 더 최근 버전임을 나타냅니다.
- 배포 버전: "e17"은 커널 버전 뒤에 나오는 것으로, 리눅스 배포판에서 제공하는 추가 정보를 나타냅니다. 이 부분은 일반적으로 배포판과 관련이 있으며, 배포판에 따라 다를 수 있습니다.
#별거 아닌 것 같지만 커널버전을 평소 선택과 다른 걸 선택하게 되면? 패키지를 실행하거나 , 게스트 에디션 클립보드를 사용하려고 하는데 갑자기 안된다든지, 버전이 달라서 실행을 할 수 없다든지의 오류가 뜰 수 있습니다. 저 는 처음 시작할 때 게스트 에디션이 됐었는데 갑자기 안 돼서 이것저것 해보다가 커널 버전 선택의 중요성을 깨달았었던 기억이 나네요!
2. 리눅스 부트 매니저의 주요 종류
리눅스 부트 매니저는 여러 가지 종류가 있으며, 각각의 특징과 장단점이 있습니다. 주요한 리눅스 부트 매니저 종류로는 다음과 같은 것들이 있습니다:
2.1 LILO (LInux LOader)
설명: LILO는 초기 리눅스 부트 로더 중 하나로, 리눅스 시스템을 부팅할 때 사용됩니다. LILO는 커널 이미지의 위치와 설정 정보를 부트 섹터에 저장합니다.
장점:
- 간단하고 빠른 부팅: LILO는 간단한 설정 파일을 사용하며, 부트 로더가 빠르게 동작합니다.
- 부트 섹터에 설치: LILO는 부트 섹터에 직접 설치되어 부트 섹터만 정상적으로 작동하면 부팅이 가능하므로 다른 파일 시스템의 손상에 영향을 받지 않습니다.
단점:
- 부트 로더 업데이트 어려움: 새로운 커널을 추가하거나 부트 로더를 변경할 때 재설치가 필요하며, 설정 파일을 수정하기 위해 주의가 필요합니다.
- 한계 된 기능: LILO는 간단한 기능만 제공하며, 다중 부팅 환경에서 제한적입니다.
2.2 GRUB (Grand Unified Bootloader)
설명: GRUB는 LILO와 비교하여 더 복잡한 기능을 가진 부트 로더로, 다양한 운영체제와의 다중 부팅을 지원합니다.
GNU 프로젝트에서 만들었으며 대화형 명령어 인터페이스, 네트워크 부팅을 제공합니다
장점:
- 다양한 파일 시스템 지원: GRUB는 다양한 파일 시스템을 지원하며, 다중 부팅 환경에서 운영체제 선택이 용이합니다.
- 동적 설정: GRUB 설정은 동적으로 변경 가능하며, 설정 파일을 수정하지 않고도 부트 옵션 변경이 가능합니다.
- 확장 기능: GRUB은 스크립트와 모듈을 지원하여 고급 사용자 정의와 부트 스크립트를 작성하는 데 용이합니다.
단점:
- 복잡성: GRUB는 LILO보다 더 복잡한 설정 파일을 사용하며, 오류 발생 시 해결하기 어려울 수 있습니다.
- 부팅 시간: GRUB는 부팅 시간이 상대적으로 더 오래 걸릴 수 있습니다.
2.3 GRUB2 (GRand Unified Bootloader 2)
설명: GRUB2는 GRUB의 두 번째 버전으로, GRUB의 기능을 확장하고 더 안정적으로 만든 부트 로더입니다.
장점:
- 다양한 기능: GRUB2는 다양한 파일 시스템 지원과 많은 확장 기능을 제공합니다.
- 모듈화: GRUB2는 모듈 기반 아키텍처를 사용하여 필요한 기능만 로드하므로 부트 시간을 최적화할 수 있습니다.
- 유지보수 용이성: GRUB2는 설정 파일을 수정하거나 새로운 커널을 추가하기 쉽습니다.
단점:
- 초기 설정 복잡성: 처음에는 설정이 복잡할 수 있으며, 사용자가 GRUB2를 익히는 데 시간이 걸릴 수 있습니다.
기능 비교
- LILO: 단순하고 빠른 부팅, 부트 섹터에 설치, 제한된 기능.
- GRUB: 다양한 파일 시스템 지원, 동적 설정 변경, 확장 기능 제공, 부팅 시간이 상대적으로 길 수 있음.
- GRUB2: 다양한 기능과 확장성, 모듈화 아키텍처, 유지보수 용이성, 초기 설정 복잡성.
결론적으로, 부트 매니저의 선택은 사용자의 운영체제 관리 및 다중 부팅 환경 요구사항에 따라 달라집니다. LILO는 간단한 시스템에서 사용할 수 있고, GRUB와 GRUB2는 더 복잡하거나 다양한 기능을 필요로 하는 환경에서 더 적합합니다.
CentOS 7에서 GRUB 실습하기
CentOS 7에서 GRUB를 실습해 보겠습니다. 이를 통해 리눅스 부트 매니저의 기본적인 작동 방식을 이해할 수 있습니다.
1. GRUB 설정 파일 열기
먼저, 텍스트 편집기를 사용하여 GRUB 설정 파일을 엽니다. 루트 권한으로 터미널을 열고 다음 명령어를 실행합니다.
vi /etc/default/grub
- GRUB_TIMEOUT=5:
- 이 항목은 부팅 메뉴를 표시하는 시간을 설정합니다.
- 설정된 시간(초) 동안 사용자가 부팅 옵션을 선택할 수 있습니다. 이 예에서는 5초로 설정되어 있으므로 5초 동안 부팅 메뉴가 표시됩니다.
- GRUB_DISTRIBUTOR="$(sed 's, release.*$,,g' /etc/system-release)":
- 이 항목은 GRUB 메뉴에서 배포판 정보를 표시하는 데 사용됩니다.
- /etc/system-release 파일에서 배포판 정보를 추출하여 GRUB에 표시합니다.
- GRUB_DEFAULT=saved:
- 이 항목은 기본적으로 선택되는 부팅 항목을 설정합니다.
- "saved"로 설정되어 있으면 이전에 선택한 항목이 기본으로 선택됩니다.
- GRUB_DISABLE_SUBMENU=true:
- 이 항목은 부팅 메뉴에서 하위 메뉴(서브메뉴)를 비활성화할지 여부를 설정합니다.
- "true"로 설정되어 있으므로 부팅 메뉴에 하위 메뉴가 표시되지 않습니다.
- GRUB_TERMINAL_OUTPUT="console":
- 이 항목은 GRUB이 출력을 어떻게 처리할지를 설정합니다.
- "console"로 설정되어 있으므로 터미널(console) 출력을 사용합니다.
- GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet":
- 이 항목은 리눅스 커널 부팅 명령줄에 추가할 옵션을 설정합니다.
- 예를 들어, "rhgb quiet"는 부팅 동안 화면에 로고와 메시지를 표시하지 않도록 하고, "crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap"는 리눅스 커널 부팅 옵션을 정의합니다.
- GRUB_DISABLE_RECOVERY="true":
- 이 항목은 복구 모드 부팅 옵션을 비활성화할지 여부를 설정합니다.
- "true"로 설정되어 있으므로 복구 모드 부팅이 비활성화됩니다.
2. 부트 옵션 변경
GRUB 설정 파일을 열면 다양한 부트 옵션을 찾을 수 있습니다. 예를 들어, GRUB_TIMEOUT 옵션은 부팅 메뉴를 표시하는 시간을 설정하는 데 사용됩니다. 이 값을 원하는 시간(초)으로 변경할 수 있습니다.
이렇게 하면 부팅 메뉴가 10초 동안 표시됩니다.
#vi에서 키보드 ' i '를 누르면 insert 모드가 됩니다
1.insert mode에서 위에 있는 열로 이동합니다(그전에 이동하셔도 무방)
2. 기본세팅 5를 10으로 변경합니다
3. esc를 누릅니다
4. shift + ; 를 누릅니다
5. wq 입력 후 저장
만약 저장 중 오류가 발생하거나 오타를 수정하려는데 키보드가 이상해서 A, C 와같은 알파뱃이 적어진다면
1. esc를 누릅니다
2. shift + ; 를 누릅니다
3. q! 입력 후 저장 ( 저장하지 않고 종료 커맨드입니다)
3. GRUB 설정 업데이트
마지막으로, GRUB 설정을 업데이트해야 합니다. 다음 명령어를 사용하여 업데이트합니다.
grub2-mkconfig -o /boot/grub2/grub.cfg
이렇게 하면 변경된 설정이 적용됩니다.
결과를 확인하시고 싶다면 리붓을하시면 우리가 변경한 시간 10 초로 바뀐 것을 볼 수 있습니다.
오늘은 간단하게 CentOS 7에서 GRUB 부트 로더 설정을 변경하는 것으로 시작했는데요 이러한 설정 변경을 통해 시스템 부팅을 개선하고 사용자 정의할 수 있습니다. 다음 시간엔 좀 더 구조에 대해서 자세히 설명하도록 하겠습니다 :)
다음장에서 부팅의 상세절차, GRUB2 패스워드 설정에 대해서 설명하도록 하겠습니다
이전글
2023.09.02 - [리눅스/리눅스마스터1급] - [리눅스마스터1급] 핵심 내용 정리: 디스크 인터페이스 & LVM
다음글
2023.09.03 - [리눅스/리눅스마스터1급] - [리눅스마스터1급] 핵심 내용 정리 : 부팅의 절차 & (systemd,init)
'리눅스 > 리눅스마스터1급' 카테고리의 다른 글
[리눅스마스터1급] 핵심 내용 정리 : 파일 시스템 구조 (24) | 2023.09.05 |
---|---|
[리눅스마스터1급] 핵심 내용 정리 : 부팅의 절차 & (systemd,init) (33) | 2023.09.03 |
[리눅스마스터1급] 핵심 내용 정리: 디스크 인터페이스 & LVM (20) | 2023.09.02 |
[리눅스마스터1급] 핵심 내용 정리: RAID 에 관한 모든것 (105) | 2023.08.30 |
[리눅스마스터 1급] 핵심내용정리 리눅스 실무의 이해 - 하드웨어 편 (21) | 2023.08.30 |