OS/Linux - Ubuntu

[Linux - 리눅스 / Ubuntu - 우분투] 부트 로더 - GRUB, GRUB 메뉴, 단일 사용자 모드, 복구 모드

주누다 2015. 4. 18. 22:40
반응형

부트로더

- 부트로더는 커널을 메모리에 로딩하는 역할을 수행

- 리눅스에는 LILO와 GRUB 라는 두 가지 부트 로더가 있는데

 우분투에서는 GRUB를 기본으로 지원



GRUB 의 개요

- GRUB 는 'GRand Unified Bootloader' 의 약자

- 리눅스의 전통적인 부트 로더인 LILO의 단점을 보완하여 GNU 프로젝트의 일환으로 개발

- GRUB 는 LILO 에 비해 다음과 같은 장점을..

 * LILO는 리눅스에서만 사용이 가능하지만, GRUB 는 윈도에서도 사용 가능

 * LILO에 비해 설정과 사용이 편리

 * 부팅 시에 명령을 사용하여 수정이 가능

 * 멀티 부팅 기능을 지원




GRUB2 관련 디렉터리와 파일


 '/boot/grub/grub.cfg' 파일

- 기존의 'menu.lst' 파일을 대체하는 기본 설정 파일

- 'menu.lst'과 달리 사용자가 직접 수정할 수 없음

- '/etc/default/grub' 파일과 '/etc/grub.d' 디렉터리 아래에 있는 스크립트를 읽어서 생성되는 것

- 이 파일의 내용을 수정하려면 '/etc/default/grub' 파일과 '/etc/grub.d' 디렉터리 아래에 있는 스크립트를 수정해야함.

===================================================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ more /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
--More--(4%)
===================================================================================



 '/etc/grub.d' 디렉터리

- '/etc/grub.d' 디렉터리는 GRUB 스크립트를 가지고 있음

- 이 스크립트들은 'GRUB' 의 명령이 실행될 때 순서대로 읽혀 grub.cfg 파일이 생성됨

===================================================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ ls /etc/grub.d/
00_header        10_linux      20_memtest86+  30_uefi-firmware  41_custom
05_debian_theme  20_linux_xen  30_os-prober   40_custom         README
sjw-lenovo@sjwlenovo-Lenovo-U310:~$

===================================================================================



 '/etc/default/grub 파일'

- 이 파일에는 GRUB 메뉴 설정 내용이 저장

- GRUB 스크립트가 이 파일을 읽어서 'grub.cfg'에 기록

- 기존의 'menu.lst' 파일과 비슷한 역할

- 이 파일의 내용을 수정할 경우 'update-grub' 명령을 실행하여 변경된 내용을 저장

===================================================================================

sjw-lenovo@sjwlenovo-Lenovo-U310:~$ more /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
--More--(71%)
==================================================================================





단일 사용자 모드로 부팅하기

- 'GRUB2' 부트 로더와 관련된 사용법 중에서 꼭 알아둬야할 것이 단일 사용자 모드 부팅

- 계정의 암호를 잊어버렸을을 때 암호블 복구하기 위해 필요

1) 일단 시스템을 재시작. 재시작 전에 GRUB 메뉴 초기 화면이 출력되도록 수정

참조 : http://sharkmino.tistory.com/1546



2) 'GRUB 편집 모드'로 전환. 

- GRUB Boot Menu가 출력될 때 'e' 키를 눌러 편집 모드로 변경



3) 단일 사용자 모드로 수정

- 리눅스 커널 정보가 있는 행에서 'ro quiet splash $vt_handoff' 를 'rw init=/bin/bash' 로 수정



4) 'F10' 키를 눌러 재시작.

- 그러면 바로 root 계정으로 동작. 이 상태에서 바로 원하는 작업을 수행하면 됨



5) 작업이 완료되면  reboot -f 명령으로 시스템을 재시작.





복구 모드로 부팅하기

- 복구 모드는 가장 기본적인 서비스만 제공하며 명령 모드로 작업할 수 있음

- 단일 사용자 모드와 비슷하다고 보면 됨

1) 시스템을 재시작 후 GRUB 메뉴 화면에서

 'Advanced options for Ubunutu' 를 선택



2) 'Ubuntu, 그리고 Linux 3.11.0-12-generic(복구 모드)를 선택

- 부팅 과정이 진행되다가 복구 메뉴 화면이 나오는데 메뉴에서 'Dtop to root shell prompt' 를 선택



3) 'Drop to root shell prompt' 를 선택하면 root프롬프트가 출력



4) root 풇ㅁ푸투거 출력되면 복구 작업을 할 수 있음

-  root 파일 시스템이 읽기 전용으로 마운트되었으므로,

 '읽기', '쓰기'가 가능하도록 다시 마운트하고 작업해야함.



5) 작업이 완료되면 reboot -f 명령으로 리눅스를 재시작




반응형