Arch Linux 듀얼 부팅 설치 가이드: 단계별 상세 설명
Arch Linux는 강력하고 유연한 운영체제로, 사용자가 시스템의 모든 측면을 직접 구성할 수 있다는 장점이 있습니다. 하지만 설치 과정이 다른 배포판에 비해 복잡하기 때문에 많은 사용자들이 어려움을 느낍니다. 이 가이드에서는 기존 운영체제(예: Windows, macOS 또는 다른 Linux 배포판)와 함께 Arch Linux를 듀얼 부팅으로 설치하는 방법을 단계별로 상세하게 설명합니다. 이 가이드를 따라하면 초보자도 쉽게 Arch Linux를 듀얼 부팅 환경에 구축할 수 있습니다.
## 1단계: 사전 준비
Arch Linux 설치를 시작하기 전에 몇 가지 준비해야 할 사항들이 있습니다.
### 1.1. 시스템 요구 사항 확인
Arch Linux를 설치하기 전에 시스템이 최소 요구 사항을 충족하는지 확인해야 합니다.
* **최소 RAM:** 512MB (1GB 권장)
* **최소 디스크 공간:** 20GB (더 많은 공간 권장)
* **인터넷 연결:** 설치 과정에서 패키지를 다운로드해야 하므로 필수입니다.
* **부팅 가능한 USB 드라이브:** Arch Linux ISO 이미지를 담을 USB 드라이브가 필요합니다.
### 1.2. 부팅 가능한 USB 드라이브 만들기
Arch Linux ISO 이미지를 다운로드하여 부팅 가능한 USB 드라이브를 만들어야 합니다.
1. **Arch Linux ISO 다운로드:** Arch Linux 공식 웹사이트([https://archlinux.org/download/](https://archlinux.org/download/))에서 최신 ISO 이미지를 다운로드합니다. 가장 가까운 미러 사이트를 선택하여 다운로드 속도를 높일 수 있습니다.
2. **Rufus, Etcher 또는 dd 사용:** 다운로드한 ISO 이미지를 USB 드라이브에 굽기 위해 Rufus (Windows), Etcher (Windows, macOS, Linux) 또는 `dd` 명령 (Linux, macOS)과 같은 도구를 사용할 수 있습니다. 여기서는 Etcher를 사용하는 방법을 설명합니다.
* **Etcher 사용법:**
1. Etcher를 다운로드하여 설치합니다. ([https://www.balena.io/etcher/](https://www.balena.io/etcher/))
2. Etcher를 실행하고 “Select image”를 클릭하여 다운로드한 Arch Linux ISO 이미지를 선택합니다.
3. “Select target”을 클릭하여 USB 드라이브를 선택합니다. **주의:** USB 드라이브의 모든 데이터가 삭제되므로 중요한 데이터는 미리 백업해두세요.
4. “Flash!”를 클릭하여 ISO 이미지를 USB 드라이브에 굽습니다. 완료될 때까지 기다립니다.
### 1.3. 파티션 구성 계획
듀얼 부팅을 위해서는 Arch Linux를 설치할 파티션을 미리 계획해야 합니다. 기존 운영체제가 설치된 파티션을 축소하여 Arch Linux를 위한 공간을 확보하거나, 별도의 파티션을 생성할 수 있습니다. 일반적으로 다음과 같은 파티션 구성이 권장됩니다.
* **/boot:** 부트 로더 (GRUB)를 설치할 파티션. 512MB 정도의 크기를 권장합니다. ext4 파일 시스템으로 포맷합니다.
* **/swap:** 스왑 공간. RAM 크기와 비슷하게 설정하거나, RAM이 충분히 크다면 (예: 8GB 이상) 조금 더 작게 설정해도 됩니다. swap 파일 시스템으로 포맷합니다.
* /**: 루트 파티션. Arch Linux 시스템의 모든 파일이 저장될 파티션입니다. 남은 공간을 모두 할당하고 ext4 파일 시스템으로 포맷합니다.
* **/home (선택 사항):** 사용자 데이터를 저장할 파티션. 루트 파티션과 분리하면 시스템을 재설치할 때 사용자 데이터를 보존할 수 있습니다. 남은 공간을 활용하여 할당하고 ext4 파일 시스템으로 포맷합니다.
**파티션 축소 방법:**
* **Windows:** 디스크 관리 도구를 사용하여 기존 파티션을 축소합니다.
* **macOS:** 디스크 유틸리티를 사용하여 기존 파티션을 축소합니다.
* **Linux:** GParted와 같은 파티션 편집 도구를 사용하여 기존 파티션을 축소합니다. (Arch Linux 설치 환경에서도 GParted를 사용할 수 있습니다.)
### 1.4. BIOS/UEFI 설정 확인
컴퓨터를 USB 드라이브로 부팅하려면 BIOS/UEFI 설정에서 부팅 순서를 변경해야 합니다.
1. 컴퓨터를 켜고 BIOS/UEFI 설정 화면으로 진입합니다. (일반적으로 Del, F2, F12, Esc 키 중 하나를 누릅니다. 제조사마다 다를 수 있습니다.)
2. 부팅 순서(Boot Order) 또는 부팅 옵션(Boot Options) 메뉴를 찾습니다.
3. USB 드라이브를 첫 번째 부팅 장치로 설정합니다.
4. 변경 사항을 저장하고 종료합니다.
또한, Secure Boot 옵션이 활성화되어 있는 경우 Arch Linux 부팅에 문제가 발생할 수 있습니다. Secure Boot를 비활성화하거나, Arch Linux를 신뢰할 수 있는 부팅 장치로 등록해야 합니다.
## 2단계: Arch Linux 설치 환경 부팅
준비가 완료되면 USB 드라이브로 Arch Linux 설치 환경을 부팅합니다.
1. 준비된 USB 드라이브를 컴퓨터에 연결합니다.
2. 컴퓨터를 켭니다. BIOS/UEFI 설정에서 USB 드라이브를 첫 번째 부팅 장치로 설정했는지 확인합니다.
3. Arch Linux 부팅 메뉴가 나타나면 “Arch Linux install medium”을 선택하고 Enter 키를 누릅니다.
4. 정상적으로 부팅되면 root 프롬프트가 나타납니다.
## 3단계: 인터넷 연결 확인
Arch Linux 설치 과정에서는 인터넷 연결이 필수적입니다. 자동으로 인터넷 연결이 설정되지 않은 경우, 수동으로 설정해야 합니다.
### 3.1. 네트워크 인터페이스 확인
`ip link` 명령을 사용하여 네트워크 인터페이스를 확인합니다. 일반적으로 `enp0s3` 또는 `wlan0`과 같은 이름으로 표시됩니다.
### 3.2. 유선 연결 설정 (DHCP)
유선 연결을 사용하는 경우, DHCP를 통해 자동으로 IP 주소를 할당받을 수 있습니다. `dhcpcd` 명령을 사용하여 DHCP를 활성화합니다.
bash
dhcpcd <네트워크 인터페이스 이름>
예:
bash
dhcpcd enp0s3
### 3.3. 무선 연결 설정 (Wi-Fi)
무선 연결을 사용하는 경우, `wifi-menu` 명령을 사용하여 Wi-Fi 네트워크에 연결할 수 있습니다.
bash
wifi-menu
`wifi-menu`를 실행하면 사용 가능한 Wi-Fi 네트워크 목록이 표시됩니다. 연결할 네트워크를 선택하고 비밀번호를 입력합니다. 비밀번호가 올바르게 입력되면 자동으로 연결이 설정됩니다.
### 3.4. 인터넷 연결 테스트
`ping` 명령을 사용하여 인터넷 연결을 테스트합니다.
bash
ping archlinux.org
정상적으로 연결되면 응답 시간이 표시됩니다. 연결에 실패하면 네트워크 설정을 다시 확인해야 합니다.
## 4단계: 시스템 시간 동기화
시스템 시간을 정확하게 설정하는 것은 중요합니다. `timedatectl` 명령을 사용하여 NTP (Network Time Protocol) 서버와 동기화합니다.
bash
timedatectl set-ntp true
시간 동기화 상태를 확인하려면 다음 명령을 사용합니다.
bash
timedatectl status
## 5단계: 디스크 파티션 구성
미리 계획한 파티션 구성에 따라 디스크를 파티셔닝합니다. `fdisk`, `gdisk` 또는 `cfdisk`와 같은 도구를 사용할 수 있습니다. 여기서는 `cfdisk`를 사용하는 방법을 설명합니다.
bash
cfdisk /dev/sda
`/dev/sda`는 디스크 장치 이름입니다. 실제 시스템에 맞게 변경해야 합니다. `lsblk` 명령을 사용하여 디스크 장치 이름을 확인할 수 있습니다.
`cfdisk`를 실행하면 디스크의 파티션 테이블이 표시됩니다. 다음 단계를 따라 파티션을 구성합니다.
1. **새 파티션 생성:** “New”를 선택하고 Enter 키를 누릅니다. 파티션 크기를 입력하고 Enter 키를 누릅니다.
2. **파티션 유형 설정:** “Type”을 선택하고 Enter 키를 누릅니다. `/boot` 파티션은 “Linux filesystem”, `/swap` 파티션은 “Linux swap”, `/` 파티션은 “Linux filesystem”으로 설정합니다. `/home` 파티션을 사용하는 경우에도 “Linux filesystem”으로 설정합니다.
3. **부팅 가능 파티션 설정:** `/boot` 파티션을 선택하고 “Bootable”을 선택하여 부팅 가능 플래그를 설정합니다.
4. **파티션 저장:** 모든 파티션 구성을 완료한 후 “Write”를 선택하고 Enter 키를 누릅니다. “yes”를 입력하여 변경 사항을 디스크에 저장합니다.
5. **종료:** “Quit”를 선택하여 `cfdisk`를 종료합니다.
## 6단계: 파일 시스템 생성
파티션을 생성한 후에는 각 파티션에 파일 시스템을 생성해야 합니다. `mkfs` 명령을 사용하여 파일 시스템을 생성합니다.
bash
mkfs.ext4 /dev/sda1 # /boot 파티션
mkfs.ext4 /dev/sda3 # / 파티션
mkfs.ext4 /dev/sda4 # /home 파티션 (선택 사항)
mkswap /dev/sda2 # swap 파티션
swapon /dev/sda2 # swap 파티션 활성화
`/dev/sda1`, `/dev/sda2`, `/dev/sda3`, `/dev/sda4`는 파티션 장치 이름입니다. 실제 시스템에 맞게 변경해야 합니다.
## 7단계: 파티션 마운트
파일 시스템을 생성한 후에는 파티션을 마운트해야 합니다. 루트 파티션(`/`)을 `/mnt`에 마운트하고, `/boot` 파티션을 `/mnt/boot`에 마운트합니다. `/home` 파티션을 사용하는 경우 `/mnt/home`에 마운트합니다.
bash
mount /dev/sda3 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
mkdir /mnt/home
mount /dev/sda4 /mnt/home # /home 파티션이 있는 경우
## 8단계: 기본 시스템 설치
`pacstrap` 스크립트를 사용하여 기본 시스템을 설치합니다. 다음 명령은 기본 패키지, 리눅스 커널, 펌웨어, 텍스트 편집기(vim), 네트워크 관리 도구, 부트 로더를 설치합니다.
bash
pacstrap /mnt base linux linux-firmware vim networkmanager grub efibootmgr
필요에 따라 추가 패키지를 설치할 수 있습니다. 예를 들어, `dhcpcd`를 설치하려면 다음과 같이 명령을 수정합니다.
bash
pacstrap /mnt base linux linux-firmware vim networkmanager grub efibootmgr dhcpcd
## 9단계: fstab 파일 생성
`fstab` 파일은 부팅 시 자동으로 마운트될 파티션을 정의합니다. `genfstab` 명령을 사용하여 `fstab` 파일을 생성합니다.
bash
genfstab -U /mnt >> /mnt/etc/fstab
생성된 `fstab` 파일을 확인하여 오류가 없는지 확인합니다.
bash
cat /mnt/etc/fstab
## 10단계: chroot 환경으로 전환
`chroot` 명령을 사용하여 설치된 시스템으로 전환합니다.
bash
arch-chroot /mnt
## 11단계: 시스템 설정
`chroot` 환경에서 시스템 설정을 수행합니다.
### 11.1. 시간대 설정
`timedatectl` 명령을 사용하여 시간대를 설정합니다. 먼저 사용 가능한 시간대 목록을 확인합니다.
bash
timedatectl list-timezones
원하는 시간대를 선택하고 설정합니다.
bash
timedatectl set-timezone Asia/Seoul
### 11.2. 로케일 설정
`/etc/locale.gen` 파일을 편집하여 사용할 로케일을 활성화합니다. `vim` 또는 `nano`와 같은 텍스트 편집기를 사용합니다.
bash
vim /etc/locale.gen
원하는 로케일의 주석(#)을 제거합니다. 예를 들어, 한국어 로케일을 사용하려면 `ko_KR.UTF-8 UTF-8` 줄의 주석을 제거합니다.
파일을 저장하고 닫은 후, `locale-gen` 명령을 실행하여 로케일을 생성합니다.
bash
locale-gen
`/etc/locale.conf` 파일을 생성하여 시스템 로케일을 설정합니다.
bash
echo LANG=ko_KR.UTF-8 > /etc/locale.conf
export LANG=ko_KR.UTF-8
### 11.3. 호스트 이름 설정
`/etc/hostname` 파일을 생성하여 호스트 이름을 설정합니다.
bash
echo myarch > /etc/hostname
`myarch`는 호스트 이름입니다. 원하는 호스트 이름으로 변경할 수 있습니다.
`/etc/hosts` 파일을 편집하여 호스트 이름을 IP 주소와 연결합니다.
bash
vim /etc/hosts
다음 줄을 추가합니다.
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch.localdomain myarch
`myarch`는 호스트 이름입니다. `/etc/hostname` 파일에 설정한 호스트 이름과 일치해야 합니다.
### 11.4. root 암호 설정
`passwd` 명령을 사용하여 root 암호를 설정합니다.
bash
passwd
새 암호를 입력하고 확인합니다.
### 11.5. 부트 로더 설치 (GRUB)
GRUB (GRand Unified Bootloader)는 가장 널리 사용되는 부트 로더 중 하나입니다. 다음 단계를 따라 GRUB를 설치합니다.
1. **EFI 시스템 파티션 마운트 (UEFI 시스템의 경우):**
UEFI 시스템을 사용하는 경우, EFI 시스템 파티션을 `/boot/efi`에 마운트해야 합니다. 먼저 EFI 시스템 파티션을 찾아야 합니다. `lsblk` 명령을 사용하여 EFI 시스템 파티션을 확인합니다. 일반적으로 `/dev/sda1` 또는 `/dev/nvme0n1p1`과 같은 이름으로 표시됩니다.
bash
lsblk
EFI 시스템 파티션을 찾았으면 마운트합니다.
bash
mkdir /boot/efi
mount /dev/sda1 /boot/efi
`/dev/sda1`은 EFI 시스템 파티션 장치 이름입니다. 실제 시스템에 맞게 변경해야 합니다.
2. **GRUB 설치:**
bash
grub-install –target=x86_64-efi –efi-directory=/boot/efi –bootloader-id=ArchLinux
`–target` 옵션은 시스템 아키텍처를 지정합니다. `–efi-directory` 옵션은 EFI 시스템 파티션 마운트 지점을 지정합니다. `–bootloader-id` 옵션은 부트 로더의 이름을 지정합니다.
BIOS 시스템의 경우, 다음 명령을 사용합니다.
bash
grub-install –target=i386-pc /dev/sda
`/dev/sda`는 디스크 장치 이름입니다. 실제 시스템에 맞게 변경해야 합니다.
3. **GRUB 설정 파일 생성:**
bash
generate-grub-config -o /boot/grub/grub.cfg
## 12단계: 네트워크 설정 활성화
네트워크 관리 도구를 활성화하여 부팅 시 자동으로 네트워크 연결을 설정합니다.
bash
systemctl enable NetworkManager
## 13단계: 듀얼 부팅 설정 (기존 운영체제 감지)
GRUB는 자동으로 다른 운영체제를 감지하여 부팅 메뉴에 추가할 수 있습니다. 그러나 필요한 경우 수동으로 설정해야 할 수도 있습니다.
1. **os-prober 설치:**
`os-prober`는 다른 운영체제를 감지하는 데 사용되는 도구입니다. 설치되어 있지 않은 경우 설치합니다.
bash
pacman -S os-prober
2. **os-prober 실행:**
`os-prober`를 실행하여 다른 운영체제를 감지합니다.
bash
os-prober
3. **GRUB 설정 파일 재생성:**
`generate-grub-config` 명령을 다시 실행하여 GRUB 설정 파일을 재생성합니다. 이 과정에서 `os-prober`가 감지한 다른 운영체제가 부팅 메뉴에 추가됩니다.
bash
generate-grub-config -o /boot/grub/grub.cfg
## 14단계: 사용자 계정 생성 (선택 사항)
root 계정 대신 사용할 사용자 계정을 생성하는 것이 좋습니다. `useradd` 명령을 사용하여 새 사용자 계정을 생성합니다.
bash
useradd -m -g users -G wheel <사용자 이름>
`-m` 옵션은 사용자 홈 디렉토리를 생성합니다. `-g` 옵션은 기본 그룹을 지정합니다. `-G` 옵션은 추가 그룹을 지정합니다. `wheel` 그룹에 사용자를 추가하면 `sudo` 명령을 사용할 수 있습니다.
새 사용자 계정의 암호를 설정합니다.
bash
passwd <사용자 이름>
`sudo` 명령을 사용하려면 `/etc/sudoers` 파일을 편집하여 `wheel` 그룹에 대한 권한을 부여해야 합니다.
bash
vim /etc/sudoers
다음 줄의 주석(#)을 제거합니다.
%wheel ALL=(ALL:ALL) ALL
## 15단계: 종료 및 재부팅
시스템 설정이 완료되면 `exit` 명령을 사용하여 `chroot` 환경을 종료합니다.
bash
exit
파티션을 언마운트합니다.
bash
umount -R /mnt
시스템을 재부팅합니다.
bash
reboot
재부팅 후 GRUB 부팅 메뉴가 나타나면 Arch Linux와 기존 운영체제 중 하나를 선택하여 부팅할 수 있습니다.
## 16단계: 추가 설정 및 사용자 환경 구성
Arch Linux가 성공적으로 설치되면 사용자 환경을 구성하고 필요한 추가 설정을 수행할 수 있습니다.
* **데스크톱 환경 설치 (예: GNOME, KDE Plasma, XFCE):** 원하는 데스크톱 환경을 설치하고 구성합니다.
* **디스플레이 관리자 설치 (예: LightDM, GDM, SDDM):** 디스플레이 관리자를 설치하여 그래픽 로그인 인터페이스를 활성화합니다.
* **필수 애플리케이션 설치:** 웹 브라우저, 오피스 스위트, 미디어 플레이어 등 필요한 애플리케이션을 설치합니다.
* **시스템 업데이트:** `pacman -Syu` 명령을 사용하여 시스템을 최신 상태로 유지합니다.
## 결론
Arch Linux 듀얼 부팅 설치는 복잡하지만, 이 가이드를 따라하면 단계별로 쉽게 설치할 수 있습니다. Arch Linux는 사용자 정의가 뛰어나고 강력한 운영체제이므로, 듀얼 부팅 환경에서 다양한 가능성을 탐색해 보세요. 설치 과정에서 문제가 발생하면 Arch Linux 위키([https://wiki.archlinux.org/](https://wiki.archlinux.org/))를 참고하거나, Arch Linux 커뮤니티에 도움을 요청하세요.