노트북에 리눅스 설치를 시도한 것은 사실 이번이 두번째다. 첫 설치 시도 중 노트북에 내장된 m-SATA가 죽어버렸기 때문이다...😅 SSD가 죽었다는 사실을 확인한 과정도 정말 지난했는데, 굳이 글로 기록하진 않겠지만 사진 한 장으로 요약이 가능할 것 같다.

그렇다고 이것 때문에 SSD를 사기에는... SSD가 생각보다 너무 비쌌다.
이 상태로 설치를 중단하고 두어달 방치하고 있었는데, 이번에 동생에게 안 쓰는 노트북을 하나 달라고 해서 그 노트북 안에 있던 HDD를 하나 뜯어냈다. 요즘 아무리 옛날 노트북이라도 HDD는 보기 힘든데, 진짜 옛날 노트북이긴 한가보다.
안타깝게도 SSD와 규격이 맞질 않으니 노트북 안에 넣을 수는 없고, 그냥 리더기를 하나 사서 외장으로 쓰기로 했다.
어쨌든 다시 한 번 설치를 해보기로 하고 아래 과정으로 진행했다.
1. 준비
1️⃣ 노트북 사양 확인하기
LG 그램(ZD360-GD30k) 모델
3세대 인텔 코어 i3 프로세서와 4GB RAM을 탑재
GUI를 띄워 부드럽게 쓰기에는 다소 무거울 수 있지만 로키 리눅스(Rocky Linux)는 서버용으로는 전혀 문제가 되지 않기에 서버용 리눅스를 설치하기로 한다.


2️⃣ ISO 파일 다운로드
로키리눅스 공식 홈페이지에서 Rocky Linux 9.7 미니멀 버전 iso 파일을 다운받는다.
https://rockylinux.org/download
Rocky Linux
Rocky Linux is an open enterprise Operating System designed to be 100% bug-for-bug compatible with Enterprise Linux.
rockylinux.org
Rocky-9.7-x86_64-minimal.iso
3️⃣ 부팅 USB 제작 : Rufus로 iso 파일 굽기
1. 준비물
- 8GB 이상의 USB 메모리: 내부 데이터는 모두 삭제되므로 중요한 자료는 미리 백업해 둔다.
- Rufus 프로그램: 공식 홈페이지에서 최신 버전을 다운로드한다. (여기서는 Rufus 4.9 버전 사용)
- Rocky Linux ISO 파일: 앞서 다운로드한 Rocky-9.7-x86_64-minimal.iso 파일
2. Rufus 설정
- USB 연결 및 Rufus 실행: USB를 PC에 꽂고 Rufus를 실행한다. '장치' 항목에 해당 USB가 정확히 선택되었는지 확인.
- ISO 파일 선택: '부팅 선택' 오른쪽에 있는 [선택] 버튼을 눌러 다운로드한 로키리눅스 ISO 파일을 불러온다.
- 파티션 방식 설정 (중요):
- 파티션 구성: GPT (노트북 BIOS가 UEFI 모드이므로 GPT 방식으로 구워야 부팅 속도가 빠르고 호환성이 좋음)
- 대상 시스템: UEFI (비 CSM)으로 자동 설정된다.
- 포멧 옵션:
- 파일 시스템 (FAT32): 리눅스 설치용 부팅 USB의 표준 방식이며 호환성이 가장 좋다.
3. 굽기
- 하단의 [시작] 버튼을 누른다.
- ISOHybrid 이미지 검색됨" 창이 뜨면 'ISO 이미지 모드로 쓰기(권장)'를 선택하고 확인을 누른다.
- USB의 모든 데이터가 삭제된다는 경고 창이 뜬다. 확인을 누르면 진행된다.
- 하단 상태 바가 초록색으로 차고 '준비' 문구가 뜨면 완료된 것으로, '닫기'를 누르고 usb 장치를 제거한다.
2. 노트북 연결 및 부팅
리눅스를 설치할 노트북에 USB를 꽂고 노트북 전원을 켬과 동시에 F2를 연타하여 BIOS 설정 화면으로 진입해야 한다.
(BIOS 설정 화면으로 진입하는 키는 제조사마다 다르기 때문에 꼭 확인해야 한다.)
내 노트북은 내장되어 있던 m-SATA 디스크가 고장이 나서 다른 노트북에서 HDD 장치를 빼와서 리더기로 연결했다.
부팅용 USB와 외장 HDD 디스크를 모두 연결한 후 컴퓨터 전원을 켜고 F2를 연타했더니 BIOS 화면을 건너뛰고 바로 Boot 메뉴 화면으로 들어왔다.
BIOS 화면을 건너뛴 이유는 노트북이 켜질 때 BIOS가 부팅 가능한 장치를 순서대로 찾는데, 예전에 USB 부팅 우선순위를 1순위로 설정해놔서일수도 있고, 아니면 원래 부팅 1순위였을 내장 m-SATA가 제거된 상태여서 BIOS가 부팅이 가능한 다음 장치인 로키 리눅스 USB를 즉시 찾아낸 것일 수도 있다. (정확한 이유는 모르겠다.)
암튼 로키 리눅스 부트 메뉴로 바로 들어와졌기 때문에 Test this media & install Rocky Linux 9.7 를 선택하고 엔터를 친다.
2. Anaconda 설치화면에서 기본 설정하기
커널이 하드웨어 체크를 마치면 그래픽 설치 화면(Anaconda)가 뜬다.
여기서 웬만한 초기 설정을 모두 할 수 있다.
1️⃣ 언어 설정
언어 설정은 English를 기본으로 설정하고 한국어를 추가하는 것이 좋다.
(기본 언어를 한국어로 설정하고 사용하면 오류 메시지 등이 한국어로 나오는데 폰트가 가독성이 떨어지고 번역도 좀 이질감이 있다.)
2️⃣ 루트 패스워드 설정
루트 패스워드를 설정할 때는 원격 접속 및 관리를 위해 "Allow root SSH login with password"에 체크해 두는 것이 좋다.
그리고 절대 Lock root account는 체크하면 안된다. (로그인이 안됨)
3️⃣ 사용자 생성
사용자를 생성할 때는 "Make this user administrator"에 체크를 해둬야 나중에 sudo 명령을 쓰기가 편하다.

4️⃣ 네트워크&호스트 설정
wifi를 사용할 예정이라 미리 Wireless를 활성화 해둔다.
물론 나중에 설치하고 보니 이렇게 설정을 한다고 바로 wifi가 잡히는 것은 아니였다.
우선 이렇게 설정을 해야 처음에 로그인 했을 때 랜카드 장치명이라도 인식을 하니 어쨌든 설정을 해두는 편이 낫다.


이렇게 설정하면 시간대가 아시아/태평양 시간대로 자동으로 잡힌다.
2️⃣ 파티션 설정 (수동)
파티션 설정으로 들어간다.
로키리눅스를 설치할 외장 하드디스크를 선택한다.
하드 용량이 465GiB로 비교적 넉넉한 편이기 때문에 추후 필요한 경우 X윈도우도 설치해서 사용할 수 있을 것 같다.
나는 파티션 구성을 자동으로 하지 않고 수동으로 하기 위해서 Custom을 선택했다.

Done을 눌러서 본격적인 파티션 분할을 진행한다.
파티션을 분할하는 방법에 대한 자세한 설명은 아래 포스팅을 참고하면 된다.
https://nanujahope.tistory.com/307
리눅스 파티션 분할로 서버 보안과 안정성 챙기기 (+Rocky Linux 9 파티션 분할 설치 방법)
리눅스 서버를 구축할 때 가장 먼저 디스크 공간을 어떻게 나눌 것인지 고민해야 한다.파티션 분할은 단순히 용량을 배분하는 문제를 넘어 시스템의 운영 안정성, 보안, 백업 효율성, 그리고 장
nanujahope.tistory.com
기존에 이 장치에는 윈도우 운영체제가 깔려 있었어서 먼저 포멧을 진행해서 용량을 초기화했다.
먼저 'Unknown'이라고 되어 있는 토글을 펼치면 기존 파티션 3개(sda1, sda2, sda3)이 나오는데, 가장 하단에 보면 ➕, ➖ 버튼이 있다.
하나씩 클릭해서 하단의 ➖ 버튼을 눌러서 Delete it으로 삭제해준다.

모두 삭제하고 나면 하단의 Available Space에 약 465 기가바이트의 용량이 표시된다.

공간이 확보되었다면 이제 ➕ 버튼을 눌러서 미리 계획한 대로 파티션을 하나씩 생성한다.
나는 아래와 같이 분할하기로 했다.
나중에 LVM 확장 실습을 할 수 있는 가능성을 고려해 전체 용량을 한번에 다 할당하지 않고 100~150GB 정도는 여유 공간으로 남겨두는 것이 좋다.
| 순서 | 마운트 지점 | 용량 | 장치 유형 | 목적 |
| 1 | /boot/efi | 600 MiB | Standard Partition | UEFI 부팅 필수 파티션 |
| 2 | /boot | 2 GiB | Standard Partition | 커널 및 부트로더 저장용 |
| 3 | swap | 8 GiB | LVM | 4GB RAM의 2배로 설정 |
| 4 | / | 60 GiB | LVM | 루트 시스템 영역 |
| 5 | /usr | 100 GiB | LVM | X 윈도우(GUI) 및 라이브러리 설치 |
| 6 | /var | 80 GiB | LVM | 로그 및 가변 데이터 저장용 |
| 7 | /home | 60 GiB | LVM | 사용자 데이터 및 Quota 실습용 |
| 8 | /tmp | 20 GiB | LVM | 임시 파일 및 보안 설정 실습용 |
파티션 할당이 끝나면 [Done]을 누르고 Summary of Changes를 확인한 후 [Accept Changes]를 클릭해서 설정을 마무리한다.

3. 설치 후 재부팅
설정이 끝나면 설치를 실행하고, 설치가 끝나면 [Reboot System]을 눌러 재부팅한다.

부팅이 시작될 때 다시 F2를 연타해서 BIOS 화면으로 들어오면 Boot 탭에서 부팅 우선순위를 확인할 수 있다.
이 때 Rocky Linux Minimal이 가장 위에 있는지 확인하고, 1순위가 아니면 1순위로 지정해준다.

이 상태에서 F10키를 눌러서 BIOS 설정을 저장하고 종료한다.
"Save configuration changes and exit now?"와 같은 팝업이 뜨면 [Yes] 또는 Enter를 누른다.
노트북이 꺼지고 다시 켜지기 전에 부팅용 USB는 뽑아주는 것이 좋다.
부팅 우선순위가 리눅스로 잡혀있긴 하지만 USB가 꽂혀 있어서 간혹 설치 미디어로 다시 진입하게 되는 일이 생길 수도 있기 때문이다.
로키리눅스 부팅이 진행된다.

재부팅이 완료되면 로그인 프롬프트가 뜬다.
4. 인터넷 설정
우선 root로 로그인을 해주고 ip 주소를 확인해본다.

그런데 IP가 할당이 안 되어있다.
아나콘다 설치화면에서는 분명히 192.168.0.19/24로 잡혀있었는데 말이다.
nmcli device 명령으로 시스템 내 네트워크 장치 목록과 상태를 조회해 봤다.
와이파이 랜카드 장치인 wlp1s0이 목록에 조회는 되는데 상태가 'unmanaged'라고 뜬다.
# wlp1s0 장치를 관리 상태로 변경
nmcli device set wlp1s0 managed yes
# 무선 랜 라디오 켜기
nmcli radio wifi on
rfkill 명령으로 무선 통신이 막혀 있는지 확인해보았는데, wlan이 SOFT, HARD 모두 'unblocked'이다.
시스템이 무선 신호를 탐색할 수 있다는 뜻이다.
다음에 취할 수 있는 조치로 wlp1s0 장치를 'managed' 상태로 변경하고 wifi 라디오를 on 해서 다시 wlp1s0 장치 상태를 조회해 봤다.
이번에는 상태가 'unavailable'로 나온다.

드라이버가 커널에 올라와 있더라도 랜카드의 펌웨어가 누락되었을 가능성이 있다.
Gemini가 제안해준 대로 펌웨어 찾기를 진행해본다.

인텔의 센트리노(Centrino) 시리즈를 포함한 대부분의 인텔 무선 칩셋은 리눅스에서 iwlwifi라는 통합 드라이버를 사용한다.
그래서 커널 메시지를 확인하는 dmesg 명령어로 iwl 키워드를 잡아서 드라이버가 이 2230 칩셋을 제대로 인식했는지, 펌웨어 파일을 잘 불러왔는지를 확인하는 것이다.
"loaded firmware version 18.168.6.1 ..."라는 메시지가 뜬 것을 보니 펌웨어는 설치가 되어 있다.
뇌피셜로 추측해 보건데 리눅스 iso 파일에 기본적으로 들어가 있는 펌웨어 패키지가 업데이트가 안된 올드한 버전이거나 해서 그럴 수도 있을 것 같다.
인터넷 연결이 되지 않은 상태인걸로 봐서 당연히 인터넷 Repository에서 최신 버전을 당겨오지도 못했을거고 그냥 부팅 usb에 있는 예전 버전의 펌웨어를 설치하지 않았을까..?
어쨌든 Gemini가 제안한 대로 일단 스마트폰으로 usb 테더링을 해서 인터넷을 연결하고, wifi 관리 플러그인과 보안 인증 도구, 인텔 무선 칩셋 펌웨어를 다운받아서 설치했다.
# Wi-Fi 관리 플러그인과 보안 인증 도구 설치
dnf install -y NetworkManager-wifi wpa_supplicant
# Intel Centrino 2230 칩셋을 지원하는 패키지 설치
dnf install -y iwl2030-firmware

펌웨어 설치 화면 중간의 Upgrading과 Cleanup 부분에 버전 숫자가 바뀐 것을 확인할 수 있다.
- 기존 버전 (Cleanup): 18.168.6.1-151.5.el9_6
- 새로운 버전 (Upgrading): 18.168.6.1-155.4.el9_7
버전 차이가 그렇게 큰 것 같진 않지만, 어쨌든 최신 버전을 받았으니 이번엔 제대로 작동할 것이다.
NetworkManager를 재시작하고 장치 상태도 다시 한번 변경해 준다.
(중간에 한 번 재부팅을 했더니 랜카드 상태가 다시 unmanaged로 바뀌었다.)
# 서비스 재시작
systemctl restart NetworkManager
# wlp1s0를 관리 상태로 변경
nmcli device set wlp1s0 managed yes
# 무선 랜 라디오 켜기
nmcli radio wifi on
다시 ip를 조회해 본다.

드디어 wifi가 잡혔다‼️

이제 가장 기초적인 부분은 다 끝났고, 나머지 세팅은 윈도우 PC에서 SSH로 접속해서 마저 진행하는 것으로 한다.
(글자가 너무 깨알같아서 눈이 아프다.)
5. 인터넷 설정
IP 주소를 static으로 설정한다.
nmcli connection show
nmcli connection modify "Wifi-name" ipv4.addresses 192.168.0.19/24 ipv4.gateway 192.168.0.1 ipv4.dns "168.126.63.1 168.126.63.2" ipv4.method manual
nmcli connection up "Wifi-name"
nmcli connection show "Wifi-name" | grep ipv4.method


6. Lid 설정
서버로 쓰려면 덮개를 닫아도 노트북이 잠들지 않아야 한다.
설치 후 아래 명령어로 설정을 바꾸는 것이 좋다.
vi /etc/systemd/logind.conf
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

서비스를 재시작해서 설정을 반영한다.
systemctl restart systemd-logind
이렇게 해두면 노트북 덮개가 내려가 있어도 접속이 끊기지 않는다.
'Journey to Security > 리눅스' 카테고리의 다른 글
| Kali 리눅스 IP주소 설정 방법 (0) | 2026.05.13 |
|---|---|
| 파이썬으로 소켓 통신 연결 구현하기 (0) | 2026.05.02 |
| OpenSSL로 Apache HTTPS 인증서 생성하기 (2) 루트 인증서 등록 (0) | 2026.05.01 |
| OpenSSL로 Apache HTTPS 인증서 생성하기 (1) SAN, 와일드카드 인증서 (0) | 2026.04.30 |
| [시스템] C 프로그램으로 이해하는 멀티쓰레드 (0) | 2026.04.27 |