HOME TIP & TECH

TIP & TECH

TIP & TECH 상세
centos 와 UEFI 의 복구

onionmixer 2017-04-11 17:21:14 5103

CentOS 를 UEFI 대응으로 설치하고 나서 그 하드디스크를 새 시스템으로 그대로 옮긴다면 당연히 부팅이 되지 않는다. 그 경우에 대한 방법을 설명한다.

설치되어 있는 시스템의 기본 조건은 다음과 같다.
1, 파티션구성
* /dev/sda1 :: UEFI 파티션
* /dev/sda2 :: boot 파티션
* /dev/sda3 :: root 파티션. lvm 을 쓰던 안쓰던 상관은 없다.

1. CentOS 의 dvd 로 부팅한다음 rescue 로 부팅한다. chroot 를 진행하고 현재의 시스템에서 기존의 UEFI 정보를 제거한다.
* efibootmgr -v :: efi 정보보기
* efibootmgr -b (efi 상의 삭제할 번호. 맨 끝자리) -B

-v 옵션으로 efi 정보를 보게되면 다음과 비슷한 정보가 나온다.

[root@veritas ~]# efibootmgr -v
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0002
Boot0000* \\EFI\\redhat\\grub.efi HD(1,800,64000,14985e70-865d-4545-afa6-ccb078059dbd)File(\EFI\redhat\grub.efi)r.o.o.t.=./.d.e.v./.d.e.a.3...
Boot0002* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)..BO

물론 현재 시스템은 rescue mode 로 부팅했기 때문에 Boot0000 과 비슷한 내용은 나오지 않을것이다. 여튼 쓸데없는 정보는 삭제하도록 한다. 다만 모르는걸 함부로 삭제하는 것은 위험하니 참고하기 바란다.


2. UEFI 에 efi 옵션을 추가.
위의 사전정보를 기반으로 아래의 내용을 입력한다. 물론 이 모든 작업은 chroot 상태에서 해야한다. 또한 아래의 내용을 입력하기 전에 chroot 상태에서 /boot/efi 안쪽에 EFI 라는 디렉토리 정보 및 하위 디렉토리등이 제대로 있는지 먼저 확인해야 한다.

* efibootmgr -c -d /dev/sda -p 1 -L "centOS 6.8" -l '\\EFI\\redhat\\grub.efi' -u "root=/dev/sda3"

입력하고 나서 -v 옵션을 통해 EFI 에 등록된 목록을 점검한다. 새로 추가한 내용이 BootOrder 에 우선순위가 걸려있어야 함은 물론이다. 때문에 이전에 삭제할때 0 번으로 등록된 것이 있다면 해당되는 번호의 EFI 내용을 삭제해 주는것을 권장한다.


이렇게 작업한다음 rescue mode 에서 빠져나와서 재부팅하면 된다. 다만 udev 등에서 바뀐 랜카드등을 전혀 별개로 인식할 것이기 때문에 부팅하더라도 network 등의 설정은 다시 잡아야 한다는것을 기억하도록 한다.


ps. 참고자료
http://unix.stackexchange.com/questions/167893/res...

댓글 0개

이전글/다음글 목록
이전 ES40 Emulator 에 대한 URL 정리
다음 maven 에 대한 간단한 팁