꽃삽질: KDE Neon 설치와 설정. (Kubuntu 20.04 기반)

18.04 판에 이어 설치/설정기를 정리한다.

기본 전제는 다음과 같다.

  • Grub 을 사용하지 않고 refind (현재 최신판은 0.12) 를 사용한다.
  • NVMe 드라이브로 부팅한다.
  • Btrfs 를 사용한다.

1. 설치디스크 만들기 및 설치 준비.

설치 디스크 만들기

부트로더로는 기본 제공되는 Grub 대신 refind 를 쓴다. KDE Neon 이 원래 그런 건 아니고, 그냥 내가 refind 를 택했다.

배포판 이미지를 받아, dd 명령 또는 Etcher 로 설치디스크를 만들 수도 있지만, 다음 글을 참고하여 ‘다중 설치디스크’를 만들어 사용하는 게 낫다. Refind 를 쓸 생각이므로, 이 방법이 ‘정신건강’에 훨씬 이롭다. (물론 만들기는 조금 번거롭지만.)

부팅 후 파티션 작업

설치디스크로 부팅 한 뒤, Refind 에서 KDE Neon 을 선택하고, 다시 ‘KDE neon’ 으로 진입한다. 잠시 후 KDE Plasma Desktop 이 뜬다.
파티션 작업이 필요하면 이 상태에서 KDE 파티션 관리자를 사용하는 편이 훨씬 편하고 더 세밀한 설정을 할 수 있어서 좋고, 문제 발생 여지도 줄어든다.
(EFI Boot flag 설정을 위해서도 KDE 파티션 관리자가 편하다. (아니면 gdisk 를 써도 된다.))

KDE Partition 관리자

파티션관리자는 설치 미디어에는 기본 제공되고 있지 않으므로 따로 설치를 해줘야 한다.
Konsole 을 열고, 다음 명령을 입력한다.

sudo apt install partitionmanager

파티션 테이블은 GPT 로, 그리고 적당한 크기(보통 200MB 를 할당하는데, gdisk 저자는 550MB 정도를 권한다.)로 EFI 파티션을 만든다.

Partition Table

그리고 FAT32 로 EFI 영역 생성.

EFI 파티션

이 상태에서 일단 Apply 한 뒤, EFI 파티션의 Flag 을 Boot 로 정해줘야한다. 안해줘도 부팅에 문제가 있지는 않지만, refind 가 EFI 를 인식하게 하기 위해서는 해줘야만 한다.

EFI 파티션을 우클릭 후 Properties 로 가서 Flags - boot 를 선택한다.
Calamares 에서도 boot flag 설정은 가능한데, 실제로 기록되지는 않는 듯 했다. 설치가 다 끝나고보니 boot flag 이 없었다. 이게 없으면, refind 에서 EFI 파티션을 제대로 찾질 못한다.

boot flag 설정

다음은 Btrfs 파티션 설정.

하나를 쓸 지, 여러 개를 쓸 지는 선택에 달렸다. 여기서는 / 와 /home 만 달리 해줄 예정.

/ 용 파티션 생성
/home 용 파티션

파티션 매니저는 이제 소임을 마쳤다. Apply 로 변경 사항을 저장한다.

gdisk 로 파티션 작업

sudo gdisk /dev/nvme0n1

GPT 로 파티션테이블 작성 후 n 으로 새 파티션을 만든다.
특히 EFI 는 gdisk 로 만들면 자동으로 boot flag 이 부여된다. (그러나, 추가로 boot flag 을 줄 수는 없다. 왜 이게 안되는걸까??)

만약, Calamares 에서 파티션(EFI 포함)을 만들었다면, gdisk 에서 EFI 를 변환해줘야 좀 더 제대로된 EFI 를 만들 수 있다.

Calamares 로 EFI 를 만들면 파티션 코드가 0700 으로 할당이 된다.
보통 EFI 는 EF00 인데, 0700 으로 되어 있어서 refind 에선 인식하지 못하는 문제가 있다.

이를 바꿔주려면, gdisk 로 가서, 파티션을 바꿔줘야 한다.
다음 그림에서 보면, 코드가 0700 임을 알 수 있다.

Calamares 의 버그? 또는 원래 의도?

이걸 바꾸려면 t 를 누르고 1(Partition 1, 즉 EFI 파티션)을 선택한다. 최종 w 로 변경사항을 저장하면 끝.

변경!

이렇게 나와야 정상이고, 이후 작업에 무리가 없다.

gdisk 에서는 Flags 를 정확하겐 확인할 수 없는데, 이건 parted 로 가능하다.

sudo parted /dev/nvme0n1
boot, esp 깃발이 휘날린다!

파티션 작업은 이렇게 끝.

하지만, 본격 설치에 들어가기에 앞서 한가지 더 작업이 필요하다.

부트매니저 설치 안하게 설정

위에서도 언급했지만, KDE Neon 이번 판부터는 설치 관리자를 데비안/우분투에서 사용하는 ubiquity 가 아닌 Calamares 라는, 내겐 생소한 새 도구를 사용한다. (원 뜻은 필리핀 쪽에서 먹는 음식(오징어 튀김?)이라는 듯도 한데..)

Ubuquity 는, ubuquity -b 로 부트관리자 설치를 안하게 해 줄 수 있다. 헌데, Calamares 에는 아직 이 기능이 구현되지 않았다. 이걸 보면, OpenSuse 의 설치 관리자가 얼마나 앞서가고 있는건지 알 수가 있다. 거기선 정말 원하는 것은 무엇이든~~

Github 이슈 페이지에서 informer2016 님은, 이 문제를 다음과 같이 우회할 수 있게끔 정보를 제공해줬다.
KDE Neon 에선 다음 파일을 수정해야 한다.

/usr/lib/x86_64_linux-gnu/calamares/modules/bootloader/main.py

위 파일을 열고, 맨 아래 쪽에 있는 다음 행을 주석처리한다.

# prepare_bootloader(fw_type)

그러면 부트관리자(즉, grub)가 설치되지 않고, refind 사용에 아무 문제가 없다.

설치 준비는 끝.

본격 설치!

화면 좌상단에 있는 Install System 을 눌러 설치로 진입한다. (이게 바로 Calamares 다.)
촌스러웠던 ubiquity 보다는 그래도 조금은 나아진 모습이긴 한데, 자꾸 OpenSuse 와 비교를 하게 되는건..

어쨌든 적어도 난, Ubiquity 보다 한단계 발전했다고 보는데, 바로 지역/언어/로캘 설정 때문이다.

한국에 살고 있는 외국인도 설치가 편해졌다.

ubiquity 는, ‘어디에 살고 있습니까?’라는 질문을 통해 현 위치를 지정할 수 있었는데, 국가를 선택하면 그 국가에 맞게 언어/로캘이 결정돼 버렸다.
만약, 한국어를 쓰는 한국인인 내가 태국에 가서 우분투를 설치한다고 했을 때, ‘어디에 살고 있습니까?’에서 태국을 선택해버리면, 태국어 환경 우분투가 설치돼 버린다.

Calamares 는, 시간대 설정과 언어/로캘을 구분해놨다. 현명한 판단이라 생각한다.

그 다음 항목인 키보드는 적절히 선택해주고..

이제 드디어 설치를 위한 파티션 작업 시간이 왔다.

파티션 작업은 미리 했으므로, 여기선 ‘수동 파티션 작업’을 택하고 세부 설정을 해준다.

KDE 파티션 관리자의 흔적!

여기선 각각 마운트 포인트만 잡아주면 된다. 즉, EFI 는 /boot/efi 로, /용 파티션은 / 로, /home 용은 /home 으로.

만약, 파티션 작업을 여기서 한다면, 적어도 EFI 만큼은 gdisk 로 재작업(파티션 코드를 EF00 으로 설정)하는게 좋다. refind 를 사용할 생각이라면 ‘반드시’ 해야만 한다.

또, 모두 포맷은 하게끔 설정해준다. 아래 그림에선 2개는 포맷 유지로 나와있긴 한데, 해주는게 맞겠다. (사실 안해줘도 별 문제는 없다.)

EFI
/
/home

파티션 설정은 이렇게 끝.

이제 사용자 이름(진짜 이름)및 ID/PW 를 입력하고 기다리면 된다.

본격 문제는 이 다음부터!
‘지금 재시작’을 선택하지 말고 일단 끝낸다.

설치 마지막 단계, btrfs Subvolume set-default

btrfs 로 설치하면 우분투/데비안에선 Subvolume(@, @home)을 설정하고, 이 때문에 부팅에 문제가 생긴다. 문제가 생긴다기 보다는 좀 세밀한 설정을 해줘야 한다.

그러나, 이 문제를 간단히 해결할 수 있는 방법이 있으니, 바로 set-default 가 되겠다. 이건 OpenSuse 에서 사용하는 방법이기도 하다. (자세한 내용은 Btrfs 설정 참고)

먼저, / 로 사용한 드라이브를 찾고, /mnt 로 마운트 한다.
nvme 라면 /dev/nvme0n1p2 가 되겠다.

$ sudo mount /dev/nvme0n1p2 /mnt
$ ls /mnt
@

/mnt 에는 @ 라는 디렉토리(사실은 서브볼륨)이 보인다.
서브볼륨정보를 확인해보자면,

$ sudo btrfs subvolume list /mnt
ID 256 gen 98 top level 5 path @

이렇게 된다. Default 서브볼륨은 이렇게 확인할 수 있다.

$ sudo btrfs subvolume get-default /mnt
ID 5 (FS_TREE)

이제, /mnt/@ 을 기본 서브볼륨으로 설정한다.

$ sudo btrfs subvolume set-default /mnt/@
$ sudo btrfs subvolume get-default /mnt
ID 256 gen 320 top level 5 path @

@ 가 기본이 되었음을 확인한 뒤, 이제 재부팅을 하면 되는데…

여기서 두가지 갈림길이 나온다.

  • 첫번째는 일단 refind 부트 디스크(CD 또는 Flash Drive)로 부팅하는 방법.
  • 두번째는 여기서 아예 refind 를 /dev/nvme0n1p1(즉 EFI 파티션)에 설치하는 방법

첫번째 방법이 간단하고, 담백하고 이것저것 신경쓸 필요없어 편하다.
두번째 방법은 다소 복잡하고, 고난의 길이 될 수도 있다.

refind 부트 디스크 이용

refind 0.12 부터는 CD 나 부트드라이브로 부팅하면, 바로 디스크에 Refind 를 설치할 수 있는 기능이 추가되었다.

물론, 이 기능을 이용하려면 위에서처럼 efi 파티션 코드가 ef00 으로 설정돼있어야만 한다.

선택!
Enter!

설치 완료. 이제 Refind 부트 미디어를 제거해도 부팅이 가능한 상태가 됐다.

NVMe 드라이브로 부팅한 모습

이렇게 하지 않으면, 기존 방법처럼 refind 를 터미널에서 설치해야 한다.

refind 직접 설치

sata 라면 아마도 별 무리가 없겠지만, NVMe 에선 살짝 문제가 생긴다. 이 문제는 refind 0.12 부터는 해결이 되긴 했는데, 문제는 2020년 8월 현재, Ubuntu 저장소에 있는 refind 는 0.11 이라는데 있다.

** 0.11 로 진행하면, post script 상황에서 오류가 발생한다. (NVMe 드라이브를 찾질 못해서 발생하는 듯?)

따라서, 0.12 를 설치하려면, PPA 를 추가해줘야만 한다. (설치 디스크에서 PPA 라니..)

sudo add-apt-repository ppa:rodsmith/refind

이제 refind 설치.

sudo apt install refind
당당히 Yes 를 선택!

예전에는 여기서 No 로 빠진 후 다소 복잡한 방식(refind-install –usedefault)을 사용했었지만, 이젠 그럴 필요가 없다.
Yes 로 진행한다.

그런데.. 여기에도 문제가 없진 않다. drivers_x64 디렉토리가 복사되지 않아, 부팅할 수 없는 상황이 된다.

/boot/efi 를 확인해 보면?

위에서 처럼, refind 는 EFI 파티션을 /boot/efi 에 마운트하여 작업을 진행했다.
따라서 여기를 보면 drivers_x64 가 있는지 없는지 확인할 수 있다.

없다!

원래 여기에는 Ext4, Btrfs, ISO 등등을 처리해주는 드라이버 파일이 있어야 하는데, 그게 없다. 따라서 refind 가 뜨긴 하지만, 파일시스템을 인식하지 못해서 커널을 찾질 못한다.

제작자에게 보고는 했는데..
수동으로 해결하는 수 밖에. drivers_x64 파일은 refind 설치 때에 현 시스템(설치 디스크)에 복사되므로, 거기서 가져오면 된다.

sudo cp -r /usr/share/refind/refind/drivers_x64 /boot/efi/EFI/refind/

이젠 끝. 정말 끝.
refind 로 도움닫기 후 KDE Neon 으로 진입한다.

** Btrfs Subvolume 을 사용해서 /var, /opt 등을 다른 파티션으로 마운트 하는 방법은 여기.

2. 기본 설정.

** 아래 내용은 이전에 쓴 글에서 그대로 가져왔고, 아직 별다른 수정은 하지 않았다.

첫번째 부팅이 끝나면, 가장 먼저 해야할 일은 아무래도 그래픽 드라이버 설치다.

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt install nvidia-driver-450

2020 2월 현재, 최신판은 450.

시스템 설정

시스템 설정으로 이동. 하나씩 대강만 기록한다.

  • 글꼴/글꼴 : 전에는 서울 남산체를 쓰기도 했었으나.. 일단은 기본값으로.
  • 글꼴/글꼴 관리 : ‘추가’로 ttf 파일을 선택하여 설치할 수도 있지만, ~/.fonts 에 파일을 넣어 두는게 더 간편하다.
  • 프로그램 모양/창 장식 : Arc 선택. (ppa:papirus/papirus, arc-kde 설치 후)
  • 프로그램 모양/GNOME 프로그램 스타일(GTK) : Arc 선택. (arc-theme 설치 후) 아이콘도 적절히. 기본 테마 그대로 놔두면 특정 GTK 프로그램 실행 시 잘 안보이는 경우가 있음. 글꼴도 적절히 변경.
  • 작업 공간 행동/일반 행동 : (마우스) 두번 눌러 파일/폴더 열기
  • 작업 공간 행동/가상 데스크톱 : 원하는 만큼 설정
  • 작업 공간 행동/화면 잠금 : 15분/30초
  • 단축키/사용자 정의 바로 가기 : 계산기 등등 추가.
  • 시작 및 종료/자동 시작 : ssh 를 위해 설정.
  • 시작 및 종료/데스크톱 세션 : ‘빈 세션으로 시작하기’. ‘이전 세션 복원’의 경우, autokey 와 문제가 있을 수 있다.
  • 찾기/파일 검색 : ‘파일 검색 사용’ 해제. 적어도 ‘파일 내용도 색인에 추가’는 해제하는 편이 좋다. 별 의미도 없고, 시간만 오래 걸린다.
    ‘파일 검색 사용’을 해제하면, baloo control 을 사용하지 않게 되고 이래야 오히려 돌핀에서 찾기가 제대로 작동하는 듯 하다.
  • 찾기/KRunner : 불필요한 것들 선택 해제. (Konsole 프로필, 소프트웨어 센터 등등)
  • 지역 설정/Input Method: 영문 Dvorak, fcitx-hangul 이라면, Hangul 설정에서 Keyboard Layout 을 ‘영어(미국)’으로.
  • 응용 프로그램/기본 프로그램 : 터미널 에뮬레이터에서, /usr/bin/tilix 로. (물론 tilix 는 따로 설치해줘야 함.)
  • 응용 프로그램/기본 프로그램 : 맨 아래 ‘기타:..’ 를 누르고 오른쪽 메뉴를 클릭한 뒤, 불필요한 프로그램 삭제(보미 등)
  • 네트워크/연결 : MTU 자동(Jumbo Frame 이 필요하다면 9000) 및 ‘자동 협상 허용’ 켜기.
  • 입력장치/키보드/하드웨어 : NumLock 켜기
  • 입력장치/키보드/고급 : Key Sequence to kill the X server
  • 입력장치/키보드/터치패드 : 드래그 잠금, 손바닥 감지 등.
  • 디스플레이와 모니터/디스플레이 : 멀티 모니터 사용 시 순서, 주화면 설정. (nvidia-setting 에서도 또 해줘야 한다.)
  • 멀티미디어/오디오 및 비디오/오디오 재생 : 재생 장치 우선 순위 설정
  • 전원관리/에너지 절약 : 화면 에너지(10분), 세션 일시 정지(사용하지 않음)
  • KDE Connect : 페어링 후 자질구레 설정.

NVIDIA X server Settings

  • X server Display Configuration: 멀티 모니터 배열을 여기서도 동일하게 설정하고, 주 모니터(Make this the primary display for the X screen)도 선택한다.
  • Force Composition Pipeline 만 선택. (Screen Tearing 방지)
  • Save to X Configuration File 로 저장.
  • GPU 0 :
  • 모니터 설정에서 Color Controls 등 설정.
  • Save Current Configuration 으로 마침.

추가로, 다음 글을 참고하여 몇몇 설정이 필요할 수도 있다.

3. 프로그램 설치 (PPA 추가 없이)

PPA 추가 필요없이 설치 가능한 것들. 꾸러미명을 표기했다. 순서는 생각나는대로.

  • 나눔글꼴 (fonts-naver-d2coding fonts-nanum fonts-nanum-extra fonts-nanum-coding) : 나눔 계열 글꼴들.
  • latte-dock : 현재 진행형 Dock.
  • redshift : 잠을 잘 자고 싶어.
  • pavucontrol-qt : 재생 장치및 음량 조정용.
  • exfat-utils / exfat-fuse : ?? 2020.08 현재 커널은 5.4 대이고, 여기선 exfat 이 기본 지원된다. 즉, exfat-fuse 가 없어도 그냥 마운트 된다. 헌데, exfat-utils 가 필요할 때가 있는데, 의존성 문제로 exfat-utils 만 단독 설치는 불가능하다. 향후엔 의존성이 지워지리라 짐작만 해본다.
  • zsh : 현재 탐구 중. fcitx 와 im-config 문제는 신경쓰지 않아도 된다.
  • python3-pip(더불어 ipython) : pip3 는 꾸러미로, ipython 은 pip 으로.
  • chromium-browser : 크롬과 더불어 이중 생활.
  • kate : KDE Neon 에는 kwrite 가 기본설치되는데.. 둘 간 가장 큰 차이는 MDI?
  • wine-stable : wine, 95% 는 mp3tag 을 위해. 나머지 5%는 Total Commander.
  • nfs-common, autofs : nfs 를 좀 더 편하게 쓰기 위해서는 autofs 까지 설치하는 편이 좋다.
  • software-properties-qt : 이 꾸러미를 설치해야 Discover(둘러보기)에 ‘Software Sources‘ 항목이 추가된다. (이전에는 software-properties-kde)
  • vim-gtk : KDE 에선 vim-gtk 를.
  • kdemultimedia kdemultimedia-kio-plugins : 음악 CD 등 돌핀에서 읽을 수 있게.
  • tor browser : (K)Ubuntu: Tor Browser 설치
  • synaptic apt-xapian-index : 자주는 아니지만, 그래도 필요는 하다. 설정도 꼭 필요.
  • xserver-xorg-input-synaptics : ThinkPad 용
  • All Media Codecs : kubuntu-restricted-extras

위의 프로그램들을 한방에.

sudo apt install fonts-naver-d2coding fonts-nanum fonts-nanum-extra fonts-nanum-coding latte-dock redshift pavucontrol-qt exfat-utils zsh python3-pip chromium-browser kate wine-stable nfs-common autofs software-properties-kde vim-gtk synaptic apt-xapian-index kdemultimedia kdemultimedia-kio-plugins kubuntu-restricted-extras

4. 프로그램 설치 (PPA 추가 필요)

5. 심화 설정

6. Grub 삭제?

Calamares 에서 부트관리자를 설치하지 않도록 했는데.. grub 이 여전히 설치되어 있긴 하다.

그 꾸러미들은 다음과 같다.
grub-common grub-pc grub-pc-bin grub2-common os-prober grub-gfxpayload-lists
한방에 지울 순 있는데, intel-microcode 가 판올림되면, 종속성 문제로 인해 이 꾸러미들이 또 설치된다.

따라서, 그냥 냅두기로..

refind 제작자는 가짜꾸러미인 grub3 를 설치하라고도 한다. 그런데 큰 의미는 없어보인다.

안녕하세요. 글 남겨주셔서 고맙습니다.