우분투 복구 모드 진입 방법

부팅을 하면 아래와 같은 오류가 뜰 때가 있다.

"All boot options are tried. Press key to recover with factory image using Recovery or any other keys for next boot loop iteration."

OS를 설치했거나, 재설치 하는 과정에서, 혹은 시스템 업데이트 과정에서 부트로더에 에러가 생겨 제대로 부팅이 되지 않는 상황이다.

이때 grub를 복구해야 하는데 부팅이 안되니 우리는 다음과 같이 한다.

1. 해당 버전의 Ubuntu 설치 usb를 pc에 연결한다.

2. 아래와 같은 그림이 나타나면 Try Ubuntu without installing을 누른다.

3. 인터넷이 연결된 상태에서 아래 명령어를 터미널에 넣어준다.

sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install boot-repair

이때 boot-repair은 손상된 grub 부트로더를 복구시켜주는 역할을 한다.

4. boot-repair가 설치 되면 다음의 명령어로 boot-repair를 실행해 준다.

sudo boot-repair

5. boot-repair가 실행 되면 '추천 복구 방식' (Recommended Repair) 를 선택해준다.

이때 몇가지 물음창이 뜨면 yes를 하면서 넘어가주면 된다.

그러면 프로그램이 자동으로 grub를 복구 해 준다.

6. 이제 다시 부팅해보면 정상적으로 부트로더가 동작하여 부팅이 되는 것을 볼 수 있다.

출처: //dreamlog.tistory.com/246 [꿈꾸는 사람.]

우분투를 사용하다 패스워드를 잊어버렸을 경우가 있다.

우분투 시스템을 힘들게 설치했는데 막상 사용하려니 패스워드가 생각나지 않을 때도 있다.

또는 가상 머신으로 여러 우분투를 사용하다 보니 패스워드가 맞지 않기도 한다.

가장 위험한 것은 많은 데이터를 가진 우분투를 설치한 컴퓨터의 패스워드를 잊어 버렸을 때다.

자, 우분투의 패스워드를 잊어버렸을 경우 초기화 하는 방법을 알아보자.

우분투 패스워드 초기화 방법.

요약.

1. 재 부팅하여 GRUB 부트 로더의 복구 모드(recovery mode)를 선택한다.

2. 복구 모드에서 root 항목을 선택한다.

3. 읽기 전용으로 설정된 파일 시스템을 '읽기쓰기' 상태로 전환한다.

4. 루트 계정의 패스워드를 초기화한다. 

1. GRUB 부트 로더의 복구 모드 진입.

단일 부트 상태(우분투만 설치한 경우)라면 부팅 중 [shift] 키를 누르고 있어야 한다.

다중 부트 상태(우분투 외 하나 이상의 다른 운영체제를 추가로 설치한 경우)면 GRUB 부트 메뉴가 바로 표시된다.

2. 복구 모드에서 root 항목을 선택.

복구 모드 진입 후 부팅 과정이 끝날 때까지 기다린다.

"Drop to root shell prompt" 옵션을 선택하여 명령어 입력 모드로 전환한다.

3. 파일 시스템 읽기 쓰기 상태로 전환.

복구 모드에서는 파일 시스템이 읽기 전용으로 설정되어 있다.

계정의 암호를 변경하기 전에 읽기와 쓰기가 가능하도록 아래 명령을 실행한다.

root@ubuntu:~# mount -rw -o remount /

4. 계정의 패스워드를 초기화.

 passwd 명령으로 사용자 계정의 패스워드를 초기화 한다.

root@ubuntu:~# passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@ubuntu:~#

패스워드를 초기화 후 복구 모드로 돌아간다.

root@ubuntu:~# exit

개요

Linux 가 부팅이 안 되거나 실수로 mount, yum, ssh 같은 필수 구성요소를 삭제했을때 복구 모드로 부팅해서 문제를 해결해야 한다. 들어갈 일이 거의 없어서 잊을것 같으니 절차를 정리해 둔다.

Booting into Rescue Mode

부팅

  1. CD/DVD USB 등의 media 를 넣고 부팅
  2. Boot 화면에서 rescue 선택
     
  3. 3rd party driver 등이 필요할 경우 tab 키를 누르고 kernel parameter 수정

    If your system requires a third-party driver provided on a driver disc to boot, load the driver with the additional option dd:

  4. 언어 선택 (Korean 이 있으나 Text 모드이므로 선택이 불가하므로 English 를 선택)
     
  5. KeyBoard Type 선택
     
  6. Rescue Method 선택(DVD 부팅이므로 기본 Local CD/DVD 선택)
     
  7. Network 이 필요할 경우 Network 설정
  8. Rescue mode 선택. Local 에 설치된 linux 를 찾아서 /mnt/sysimage 에 마운트하며 시스템을 복구하려면 Read-Write로 마운트해야 한다. Continue 선택.
     
  9. rescue manager 에는 다음과 같이 3개의 메뉴가 표시됨. shell 을 선택하면 shell prompt 가 기동되어 복구 작업을 할 수 있음
     

복구

  1. 복구할 리눅스 시스템의 루트 암호를 변경하거나 패키지를 설치하는등의 복구 작업을 할 경우 해당 파티션이 root로 마운트 되어야 작업이 가능하므로 다음 chroot 명령어로 루트 파티션을 변경.

    chroot /mnt/sysimage

    CODE

    chroot 를 수행했으면 yum 이나 passwd 등 시스템 변경은 복구 대상 시스템을 대상으로 이루어짐.

  2. 마운트할 파티션이 추가로 있을 경우 다음과 같이 수동 마운트

    mount -t ext4 /dev/mapper/VolGroup00-LogVol02 /foo

    CODE

  3. Volumn 을 모를 경우 다음 명령어로 볼륨을 확인
    1. fdisk 사용

    2. view LVM volumn

      pvdisplay vgdisplay lvdisplay

      CODE

  4. 실수로 base 패키지들을 삭제해서 부팅이 안 되거나 mount, ls 등의 기본 명령어들이 안 먹을때 다음과 같이 base group 을 새로 install

    yum groupinstall base

    CODE

Booting into single user Rescue Mode

RHEL/CentOS 7, 8

  1. 시스템 부팅 후 tab 키를 눌러서 커널 선택 모드로 진입
  2. 부팅할 커널을 선택하고 e 키를 누름

  3. 부팅 옵션 화면에서 아래로 스크롤해서 
  4. linux 이나 linuxefi 로 시작하는 라인을 찾은 후에 해당 라인의 맨 뒤에 다음 내용 추가하고 Ctrl-x 를 눌러서 부팅

    rd.break enforcing=0

    CODE

    rd.break : 부팅 프로세스의 초기 단계만 수행(initramfs 에서 실제 시스템으로 제어권을 넘기지 않고 부팅 종료)
    enforcing=0 : SELinux 를 permissive mode 로 구동. (disable 하는 selinux=0 과는 다른 옵션)

    enforcing=0 은 생략 가능


  5. 파일 시스템을 read write 로 다시 마운트

    mount –o remount,rw /sysroot

    CODE

  6. 루트 파일 시스템 변경

  7. root 암호 복구가 필요하면 암호 변경

  8. SELinux 를 사용할 경우 복구 모드에서 수정한 파일은 SELinux Context 가 없어서 재부팅시 문제가 될 수 있음. 다음 명령을 실행하면 재부팅시 자동으로 파일에 대해 SELinux context relabeling 을 수행함

    touch 명령은 파일명 오타를 내도 확인할 수 없으므로 실행 결과를 확인할 수 있는 fixfiles onboot 명령을 권장

  9. 복구가 끝났으면 exit 를 실행해서 재부팅

CentOS 6

  1. 시스템 부팅 후 tab 키를 눌러서 커널 선택 모드로 진입
  2. 부팅할 커널을 선택하고 e 키를 누름
     
  3. 커널 파라미터 선택화면에서 e 키를 눌러서 파라미터 수정화면으로 진입
     
  4. 파라미터 수정. 싱글 유저로 진입하고 SELinux 를 끌 경우 다음 옵션 추가
     
  5. 수정후 엔터를 쳐서 파라미터 선택화면(3번) 으로 돌아온 후에 b 키를 눌러서 부팅

See Also

  • Local repository 만들기
  • yum 주요 사용법 및 고급 사용법 (history 관리, plugin 사용 등)

Ref

  • Chapter 36. Basic System Recovery - RedHat Portal
  • How to solve a file path as a failed dependancy when installing a RPM? - unix.stackexchange
  • //www.certdepot.net/rhel7-interrupt-boot-gain-access-system/

Toplist

최신 우편물

태그