[리눅스] 데비안 UEFI 지원 배포판 설치

2023. 4. 6. 01:51리눅스 실제 사용 팁/UEFI

작성일 : 2014. 4. 10. 03:47


최근에 jessie 에서 os-prober 를 비롯한 grub 관련 설정이 깨져서 고치려다 나흘 동안 낮과 밤이 바뀐 채 개고생했다.

/boot/efi/EFI 경로 아래의 파일을 모두 삭제하고 grub-install 로 efi 설정을 복구하려다 실패한 것이다.

 

ASUS Aptio Utility (BIOS 비스무리한 것) 에서 debian 엔트리마저 날아가서 리눅스로 도저히 부팅할 수 없게 된 상황이 되자

jessie (Debian Testing > v7.4) 설치CD 에서 복구모드로 부팅해서 grub-install 을 시도하였는데, /sys, /proc 마운트 문제가 발생해서 구글링으로 겨우 해결했더니 efivars 모듈이 없다고 뜨질 않나! 이런 걸 해결하고자 나름 원시 (=본능에 충실하다고 여겼던) 배포판들을 구워서 모두 시도했는데 역부족이었다.

 

Gentoo

- UEFI 노트북을 만나기 전에 내가 시스템 복구 시 가장 애용하던 배포판이었다. BusyBox 가 아닌 일반 셸을 그대로 쓸 수 있는 점이 매력이었다!

 

Slackware

- 1999년에 알짜 레드햇5를 만나던 시기에 이미 존재했던 오래된 배포판. tar.gz (tarball) 방식의 패키지를 지원한다.

- 이 참에 슬랙이나 써보자는 심정으로!

 

Ubuntu

- 지저분한 설정으로 그다지 끌리진 않지만 Debian 에 기반을 둔 배포판 중에서 잘 나가는 배포판이기 때문에 나름 기대를 했었다.

- 사용자 친화적으로 시도를 많이 하는 배포판이라서 어쩌면 되지 않을까........?????' 라는 기대감에 차서.

 

ArchLinux

- 마치 윈도우즈OS 에서 Cygwin 으로 패키지를 설치하는 착각을 불러 일으킨 배포판.

- Gentoo 처럼 기본 셸 환경에서 task 단위랄까? (base? core?) 크게 대여섯 가지 그룹으로 나뉜 배포판 꾸러미를 /etc 아래의 모 파일에 지정

  하고 해당 꾸러미들을 네트웍으로 다운로드 / 설치하는 방식을 쓴다.

 

Fedora Project

- 레드햇의 커뮤니티 버전이라던가? RedHat Enterprise 에 기초한 CentOS 와 더불어 설치하기 싫은 배포판 중의 하나!

- Debian의 APT 에 맛들인 나머지, 아무리 APT 를 흉내낸 yum 이 존재한다고 하더라도 내겐 불편한 환경이다.

- 리눅스 배포판이 본질은 같지만(그 놈이 그 놈이다! 리눅스 커널 + GNU 유틸리티 묶음),

- 그래도 Debian 배포판 자체에서 설계 / 채택한 시스템 유틸리티의 강력함을 무시할 순 없다!

- Debian 의 경우, 리눅스 커널 뿐만 아니라 Hurd, *Bsd 시리즈도 지원하고 있다. (써본 적은 없지만 ㅎ)

 

위에서 나열한 배포판들을 모두 시도했지만 실패하고. 비밀은 맨 마지막에 밝힐 것이다.

어떤 상황에서는 분명히 efivars 모듈이 올려져서 될 것 같았는데 LVM2 를 인식 못해서 한 대 얻어 맞은 기분이었다.

 

(내 HDD 에서 설정한 Volume Group 은 `/dev/lvm0` 이었다.

이를 테면,

 

 

/ (root) -->    /dev/lvm0/sys_root

/usr -->    /dev/lvm0/sys_usr

/home --> /dev/lvm0/dta_home

 

 

initrd 이미지(ramdisk) 로 부팅하는 일부 Live CD 배포판의 경우에는 /dev 아래에 sda, sdb 같은 HDD 디바이스 파일이나

lvm0 (내가 설정한 LVM2 Volume Group) 이 없어서 마운트할 때 'no such file or directory found' 또는 partition not exist 류의 황당한 오류들을 계속 봤다.

 

-----

[이 과정에서 알아낸 한 가지 팁! `vgchange -ay (볼륨그룹)` 명령을 실행하면

`mount $(볼륨그룹) /mnt` 를 할 수 있다. 즉, /dev 에서는 lvm0 이 안보이지만 셸에서 인식할 수 있도록 불러오는 것이다.

예) `mount /dev/lvm0/sys_root /mnt` ]

 

 

-----

 

안되겠다 싶어서 나흘 째 되는 날에 jessie 를 다시 재설치 시도하고 파티션 날리고 또 다시 설치하고, 여기서 결정적인 단서는 CD 로 부팅하기 직전에 어느 메뉴를 선택하느냐에 달려 있었다. 그 동안 내가 간과했던 UEFI 부팅 모드였다.

 

-----

 

Debian Testing - Jessie (v7.5?) - UEFI 지원

 

ASUS N76VB-T4034H (노트북) 에서는 efi 부팅 이미지가 포함된 CD 를 삽입했을 때 UEFI 로 시작하는 부팅 항목을 추가로 표시하고 있다.

그런데 efi 를 간과하고 일반 CD 부팅 항목을 선택함으로써 efi 미지원 이미지로 부팅하는 실수를 하게 되는 것이다. 그리고 왜 안되지? 왜 안되는 거야!!!!? 미치겠네! 하면서 속앓이를 했던 것이다. 아깝게 나흘씩이나 허비하면서 말이다.

 

아래 이미지에서 UEFI: Slimtype DVD A DS8A9SHUEFI 모드로 부팅하는 항목이다. (Slimtype * 는 DVD 드라이브의 모델명인 듯)

 

 

이걸 쓰기 전에는 P2: Slimtype DVD A DS8A9SH 로 부팅해왔다. 이 항목은 UEFI 와 무관한 일반 CD 부팅 모드이다.

ASUS N76VB-T4034H (노트북) 에서 P0, P1, P2, ... 는 물리적으로 설치된 하드웨어의 순번인 것 같다.

(P0: Windows 8 이 기본 설치된 1번 HDD, P1: 여기선 안보이지만 2번 HDD, P2: DVD-R 드라이브)

 

Debian Testing - Jessie UEFI 모드로 설치 화면도 일반 설치 화면과 크게 다르지 않기 때문에 여기서 설치과정을 길게 설명하지 않을 것이다. (파티션 설정 시 EFI 전용 파티션을 하나 더 만드는 것 외엔 기존 BIOS 기반 설치 이미지와 별반 다를 게 없다.)

 

 

노트북에 (Windows 8용; 본 예에서는 /dev/sda1) EFI 파티션이 이미 존재하면 리눅스용 EFI 파티션을 별도로 생성할 필요가 없다. 어차피 EFI 파티션에는 부트로더 이미지만 들어갈 것이기 때문에 그리 큰 용량이 필요한 것도 아니다.

 

아래 이미지는 그냥 참고만 하기 바란다. (/dev/sdb1 에 리눅스용 EFI 파티션을 생성하였다)

 

여기서 주의할 점! Debian Testing - Jessie 설치 프로그램에서는 EFI boot partition 이라는 항목이 따로 존재한다.

구글에서 EFI 파티션 만들기를 검색하면 FAT (FAT16 / FAT32 모두 포함) 포맷을 지정해야 한다는 결과가 나온다.

하지만, Jessie 에서는 해당 파티션에 대해 FAT32 를 지정하면 EFI 파티션이 생성되지 않았다는 경고창이 뜨고 설치가 진행되지 않으므로 EFI boot partition 으로 지정해 주어야 한다.

 

 

2014. 4. 7. 일자 Nightly 빌드 기준

(ISO 이미지 안에 efi 가 들어 있는 걸로 봐서 UEFI 를 지원하는 설치 이미지라는 것을 알 수 있다)

 

 

UEFI 모드로 성공적으로 부팅한 셸 환경에서만 UEFI 부팅 항목을 시스템에 등록할 수 있다.

(무슨 말이냐면, UEFI 를 지원하는 커널과 일반 BIOS 만 지원하는 기존 커널이 설치/복구 CD 에 모두 들어 있다는 전제 하에,

UEFI 모드로 부팅해서 `grub-install /dev/sdb` 류의 명령을 실행해야 노트북 또는 PC 부팅 목록에서 리눅스로 부팅할 수 있다)

 

UEFI 모드인지 확인하는 방법은 다음과 같다.

/sys/firmware 아래에 efi 폴더가 있으면 UEFI 를 지원하는 (커널) 환경인 것이다.

 

 

리눅스 설치 또는 복구 이미지인 경우에는 (주로) efivars 모듈이 올려져 있다.

아래 이미지와 달리 efivars 가 메모리에 올려져 있지 않은 경우 `modprobe efivars` 명령으로 efivars 커널모듈을 올리려고 시도해 볼 수 있다.

만일 efivars 모듈이 존재하지 않는다면 모듈을 찾을 수 없다는 메시지가 뜰 것이다. (그렇다면 UEFI 모드로 부팅에 실패한 경우라고 할 수 있다.)

 

Debian Testing - Jessie (v7.5?) - 설치 후

EFI 파티션은 반드시 fat16 또는 fat32 포맷을 써야 함. 성가시지만 그 쪽 정책이 그러하니 따를 수 밖에. ㅆㅂ

 

/dev/sdb (설치과정에서 두 번째 HDD 에 /boot/efi 파티션을 만들었는데 기존 첫 번째 HDD 를 마운트하고 있음. 뭘까?)

 

여기서 debian (P0: HGST HTS541010A9E680) 을 선택하면 우리에게 친숙한 GRUB 부팅목록이 뜰 것이다.

왜냐하면 /boot/efi/EFI/Boot 아래에 설치된 (확장자가 .efi인) EFI 파일이 Debian 커널이 아니라 GRUB 이미지를 직접적으로 가리키기 때문이다.

 

'리눅스 실제 사용 팁 > UEFI' 카테고리의 다른 글

[리눅스] 데비안 UEFI Booting 해결하기  (0) 2023.04.06