개요
며칠 전부터 Elastic stack 공부를 시작했다. 처음에는 리눅스 환경도 없고 귀찮으니 윈도우에서 깔짝이고 있었는데 하다보니 그래도 역시 리눅스가 편하겠단 생각이 들었다.
지금까지 내가 리눅스를 쓴 환경은 AWS EC2, WSL, VMWare, Raspberry pi 정도가 있는데, 다양한 이유로 그냥 잘 안쓰는 노트북에 리눅스를 깔기로 결심했다.
- AWS EC2 : 클라우드 비용 부담 / Free Tier 다씀 / 새 계정 파서 해도 Free Tier 사양 안좋음.
- WSL : 뭔가 억압된 느낌. 웬만한건 다 잘 돌아가긴 하는데 문제 터졌을 때 찾아보면 WSL라서 그렇다고 할 때의 좌절감...
- VMWare : 무겁다... 느리다... 켜고 끌 때 시간이 많이 든다.
- Raspberry pi : 램 8기가 짜리 라베파5가 있긴 한데 얘한테 달 모니터랑 키보드가 없어서 무조건 ssh로 붙어서 해야 하는게 귀찮다. 그리고 파워 연결을 해야하니 들고다니기 귀찮다.
처음에는 노트북에 바로 리눅스를 깔려고 했는데 생각해보니 윈도우 깔린 노트북이 하나밖에 없었다. 그래서 멀티부팅을 하기로...
OS를 칼리로 설정한 건 별 이유 없다. 리눅스 쓸 때 대체로 Ubuntu만 써와서 이참에 다른 OS를 써보고 싶었다. CentOS는 아무것도 모를 때 썼다가 스트레스 받았던 기억이 때문에 정이 안갔고, 요즘 핫하다는 Arch 리눅스는 너무 찐 같아서 (I use Arch btw) 넘어갔다.
근데 막상 써보니 너무 Ubuntu랑 똑같아서 (아무래도 같은 Debian 계열이니까요...) 다른걸 해볼까 싶다가도 이거 저거 많이 깔려 있어서 일단 만족이다.
참고: 이 글은 일기쓰듯이 대충 쓴거라 참고해서 듀얼부팅을 하기에는 많이 부족하다. 혹시 시도해보고 싶으면 Google AI Studio에서 현재 노트북 환경과 원하는 OS 등 정보를 상세히 입력하고 안내를 받는 것을 추천한다. 그리고 멀티부팅 설정을 하는 동안 노트북으로 검색할 수 없으니 부팅 USB를 만들 수 있는 다른 PC가 준비된 상태에서 하자.
멀티부팅 하기
참고로 듀얼부팅하는 노트북은 삼성 갤럭시북이고, 윈도우가 깔린 상태다.
1. Windows 준비 - 빠른 시작 끄기
먼저 Windows의 빠른 시작 기능을 꺼야 한다. 이 기능은 가끔 릴스에서 컴퓨터 느려지는 원인이라면서 바이럴 되는데, 대충 윈도우를 다 끄지 않고 최대 절전 모드처럼 만들어 부팅 속도를 높이는 기능이다. 이게 켜져 있으면 디스크가 잠겨 리눅스에서 접근하거나 부트로더 설치할 때 문제가 생긴다.
다음 과정으로 끌 수 있다.
1. Win+X > 전원 옵션 > 관련 설정 > 추가 전원 설정
2. 왼쪽 메뉴에서 전원 단추 작동 설정 클릭
3. 상단의 현재 사용할 수 없는 설정 변경 클릭
4. 종료 설정 항목에서 "빠른 시작 켜기(권장)" 체크 해제
5. 변경 내용 저장 > PC 완전히 껐다 켜기
2. Bios 준비 - 보안부팅 끄기
갤럭시북 바이오스는 F2 키를 누르면 들어갈 수 있다. 메인보드마다 바이오스 진입 키가 다르다.
여기서 보안 부팅을 꺼야 한다. 갤럭시 북 바이오스는 심플하게 생겼는데, 메뉴 중 마지막인 부팅을 클릭하면 보안 부팅 설정 항목을 찾을 수 있다. 보안 부팅을 끄면 종료한다.
3. 리눅스 설치 공간(파티션) 확보
듀얼 부팅 찾아보면 Win+X > 디스크관리 눌러서 볼륨 축소 하라는 글이 좀 있는데 난 그 방법으로 안됐다. 사용하지 않은 공간이 300기가나 남아있었는데 볼륨 축소가 제대로 되지 않는 문제가 있었다. defrag 이벤트를 확인 했을 때 pagefile.sys 때문에 걸린다고 하는데, 얘를 해결해도 여전히 볼륨 축소가 안됐다.
하여튼 디스크 관리에서 볼륨 축소가 잘 되면 이 단계는 그냥 넘어가면 된다.
파티션 공간 최적화나 이거저거 다 해봤는데도 안되면 그냥 GParted 쓸 수 있는 부팅 USB 만들어서 C드라이브 밖에서 파티션 Resize 해줘야 한다. 난 Minitools랑 이거저거 해봤는데 애초에 C드라이브에서 OS가 돌아가는 와중에 서드파티 프로그램으로 C 드라이브 파티션을 나눌 수가 없다. (Minitools가 리사이즈 설정하고 재부팅하면 나눠준다고 하지만 사기다. 믿으면 안된다.)
- 참고로 내가 한 방법은 좀 위험한 거 같으니 시도하기 전에 잘 백업하길...
1. Kali Live Iso나(여기 GParted 깔려있음) USB에서 GParted 돌릴 수 있게 부팅 USB를 만든다. 부팅 USB 만드는건 아래 참조. 아니면 Refus 부팅 USB 만들기 찾아보면 나온다. (iso 파일 선택 - GPT, UFFI, 나머지 그대로 - 시작 누르고 DD 선택)
2. USB 꽂고 F2 키 연타해 BIOS 진입. 부트메뉴에서 UEFI: [USB 이름] 선택해 USB로 부팅
3. Kali Live 이미지 사용했으면 앱 실행기에서 GParted 실행하고 C드라이브 리사이즈 하면 된다. GParted는 UI가 직관적이라 걍 감대로 하자.
4. 재부팅
끄고 USB 빼고 재부팅하면 윈도우가 아직 잘 켜져야 하는데... 잘 안된다면 당신은 망했어요. 삼성 갤럭시북은 바이오스에서 공장초기화 지원해주던데 다른 메인보드는 잘 모르겠네요.
4. 리눅스 부팅 USB 준비
이건 Refus 리눅스 부팅 USB 만들기 이렇게 검색하면 나온다.
주의할 점은
- 칼리 리눅스 공식 홈페이지에서 Installer 이미지 다운로드(Live 아님)
- USB는 8GB 이상 / 중요한 내용 있으면 백업
- 파티션 방식: GPT(대부분 최신 PC는 UEFI/GPT 방식)
- 대상 시스템: UEFI (non CSM)
- DD 이미지 모드로 쓸 것
5. 리눅스 설치
- USB 꽂은 상태에서 바이오스 진입해서 USB로 부팅
- Grapical Install 선택(CUI하고 싶으면 다른걸로)
- 나머지 알아서... 난 영어로 먼저 시작하고 설치 끝나고 한국어로 변경함
디스크 파티션 하기(중요)
파티션 설정하는 창 나오면 수동 선택
파티션 테이블에서 아까 만든 "남은 공간" 또는 "FREE SPACE" 선택
1. EFI 시스템 파티션(매우 중요)
- "남은 공간" 선택하고 새 파티션 만들기 선택
- 크기: 500MB or 1GB
- 용도: EFI 시스템 파티션
- 파티션 설정 마치기
2. 스왑(Swap) 파티션
- 다시 남은 공간 선택 - 새 파티션 만들기
- 크기: PC의 RAM 용량과 같거나 2배 크기(램 8기가면 swap 8기가 혹은 16기가. 다른 글에서는 램이 충분하면 swap을 안만들어도 된다고도 하던데.. 난 안전하게 그냥 만들었다.)
- 용도: 스왑영역
- 파티션 설정 마치기
3. 루트(Root) 파티션
- 마지막으로 남은 공간 선택 - 새 파티션 만들기
- 크기: 남은 공간 전부(자동입력됨)
- 용도: Ext4 저널링 파일 시스템
- 마운트 위치: / (루트)
- 파티션 설정 마치기
6. 부트로더 설치
위의 과정을 마치고 나머지 하다보면 알아서 부트로더가 깔린다. 만약 안깔리면 수동으로 해줘야 한다.
부트로더 설치창이 뜬다면 반드시 예를 누르고 부트로더를 설치할 장치로 드라이버 자체를 선택해야 한다.(/dev/sda 또는 /dev/nvme0n1 등. /dev/sda1이나 /dev/nvme0n1p4 이런 애들은 안된다. )
설치가 완료되면 USB를 제거하고 재부팅한다. 아마 마지막에 다 됐다면서 Continue 누르라고 뜰텐데, 이거 누른 다음에 검은 화면에 글자들 지나가는거 보다가 재부팅 시작하는 타이밍에 맞춰서 USB를 빼면 된다.
사실 USB 빼는 타이밍이 중요한지는 모르겠는데 10시간 동안 포맷만 계속 하다가 마지막으로 성공했을 때 타이밍 맞춰 USB를 뺐기 때문에 미신적 믿음을 가지기로 했다.
7. 번외
칼리는 GUI로 xfce랑 착붙이라고 하는데, 나는 KDE Plasma를 선택했다. KDE가 예쁘다는 평이 많아서... 매우 만족 중이다. 컴퓨터 사양이 괜찮으면 설치 과정에서 꼭 KDE를 선택하기 바란다. (KDE가 아무리 무거워도 윈도우보다는 훨씬 가볍다. 그리고 최근에는 xfce랑 비슷하다는 것 같다. 나무위키가 그랬음 ㄱ-)
설치 후 환경 설정
성공적으로 설치를 하고 나면 전원을 켰을 때 부트로더를 통해 윈도우를 켤지 리눅스를 켤지 선택할 수 있다. 안되면 BIOS에서 부트 메뉴를 확인해보고 GRUB 부트로더를 선택하면 된다. 만약 부팅 가능한 옵션이 하나라면 앞으로 긴 삽질이 필요하다.
1. 한글 설정
한글 설정은 fcitx 사용해서 했다. 이건 Kali(2025.2) + KDE Plasma(6.3.5) 조합에서 한거라 다른 조합은 또 다를 수도 있다.
먼저 시스템 설정 > 지역과 언어 에서 언어로 한국어를 선택하고 껐다 켠다. 여기까진 따로 설치할 건 없다.
이렇게 설정하면 이제 기본언어가 한국어로 바뀌는데 입력은 여전히 영어만 된다.
sudo apt install fcitx-lib*
sudo apt install fcitx5-hangul fcitx5-configtool
fcitx-autostart
필요한거 설치하고 껐다 켠다.
im-config로 fcitx5 선택(fcitx 아니고 fcitx5)
시스템 설정 > 키보드 > 가상 키보드에서 Fcitx 5를 선택한다.
시스템 설정 > 키보드 > 키보드 > 우측 상단 키 바인딩 에서 한/영 키, 한자 키를 바인딩한다. 이거 안하면 R_Alt로 한/영 전환을 지정하게 되는데, 좀 늦게 한영 전환이 된다거나 안눌렀는데 지멋대로 스위칭된다거나 하는 렉이 걸린다.
cmd에서 fcitx5-configtool 들어가서 한/영 전환 설정을 한다.
영어랑 한글 키보드를 넣어준다. 아마 처음에는 영어 키보드만 있을거다.
다음 탭에서 "첫 번째 입력기와 현재 입력기 사이의 임시 전환" 옆에 버튼을 누르고 한/영키를 누른다. 그럼 이제 키보드 설정 끝이다.
이렇게 하면 시스템 상에서 한/영 전환이 잘 되는데, 크롬이나 electron 앱은 실행할 때 따로 플래그를 지정해줘야 한다.
Chrome이랑 Chromium은 주소창에 "chrome://flags" 들어가서 "Preferred Ozone platform"으로 Wayland를 선택해주면 된다.
(이건 KDE 그래픽 플랫폼이 Wayland라서 그렇다.)
카톡 설치
카카오톡은 데스크탑 앱은 윈도우와 맥밖에 지원 안한다. 리눅스에서 윈도우용 앱을 실행하려면 wine을 설치해야 한다. wine은 wine is not emulator인데, 말그대로 에뮬레이터는 아닌데 윈도우 앱을 실행할 수 있게 해주는 친구다.
검색하면 많이 나오니 설명 생략...
카톡을 설치하고 나니 한글도 설치할까 했는데 웹버전인 한컴독스도 있고, 카톡도 렉이 좀 걸리는데 한글은 얼마나 렉이 많이 걸릴까 싶어서 패스했다.
구글 드라이브 마운트
옵시디언을 구글 마운트를 통해 여러 디바이스에서 사용하고 있어서 칼리에도 구글 드라이브 마운트를 하기로 했다.
처음에 별 생각없이 우분투랑 같은 계열이니까 우분투 구글 드라이브 마운트를 찾아봤는데, 칼리는 다른 방법을 써야 했다. 가
우분투는 PPA를 이용해 저장소를 추가하고 필요한 패키지를 다운로드 하는데 칼리에는 PPA가 없다.
대신 Kali Linux 기본 저장소에 포함되어 있는 rclone을 이용하면 훨씬 쉽게 구글 드라이브(그 외 다양한 원격 저장소를 지원함)를 마운트 할 수 있다.
sudo apt update
sudo apt install rclone -y
rclone config
rclone config을 하면 새 저장소를 정의하기 위해 이거저거 적어줘야 한다.
1. n) New remote 선택
2. name> 원격 저장소 별명 입력
3. Storage> 여러 원격 저장소 목록이 나타나는데 이 중 Google Drive 번호 입력
4. client_id> 그냥 엔터
5. client_secret> 그냥 엔터
6. scope> 1
7. root_folder_id> 그냥 엔터
8. service_account_file> 그냥 엔터
9. Edit advanced config?> n 입력
10. use auto config?> y 입력
마지막 질문에서 y를 누르면 자동으로 웹 브라우저가 열리면서 구글 로그인 창이 나타난다. 원하는 구글 계정으로 로그인하고 rclone 액세스를 허용하면 된다. Success! 메시지가 뜨면 브라우저를 닫고 다시 터미널로 돌아간다.
1. Configure this as a team drive?> n
2. 설정이 맞는지 확인> 맞으면 y
3. current remotes: 목록에 방금 만든 저장소가 보이면 성공, q 눌러서 끝내기
이제 rclone이 구글 드라이브에 접근할 수 있게 되었고, 원하는 폴더에 구글 드라이브를 마운트 해주면 된다.
마운트용 폴더를 하나 만들고 다음 명령어로 마운트를 해준다.
rclone mount <아까 설정한 드라이브 이름>: <마운트할 경로> --vfs-cache-mode writes &
--vfs-cache-mode writes: 파일 읽기/쓰기 성능과 호환성을 향상시키는 옵션
마운트 확인
ls <마운트한 폴더>
df-h
마운트 해제하고 싶으면
fusermount -u <마운트경로>
후기
항상 서버용 리눅스만 설치했었는데 패키지 빠방하게 설치된 데스크탑 리눅스를 얻어서 너무 편하다.
이렇게 할 수 있는게 많은데 윈도우보다 부팅도 빠르고 배터리 소모도 느리다. 켜자마자 팬 돌아가면서 이륙하던 노트북이 맞나 싶다..
그리고 KDE가 너무 예쁘게 생겨서 맥북급 만족감이 있다. 또 자잘자잘하게 써먹을만한 유틸리티가 많다.
다만 괜히 칼리를 깐거 같다. 여기 있는 해킹툴들 쓸 일이 없는데... 환경 설정 하면서 찾아보니 Arch 글이 자주 나오던데 다음에는 Arch 리눅스를 세팅해보고 싶다. 아니면 KDE랑 Manjaro를 많이 쓴다고 하니 걔를 쓰는 것도 좋을 것 같다.