본문 바로가기

Dev/linux

[Linux] Install Arch Linux on Virtual Box

Arch Linux

본 포스팅은 Virtual Box에서 Arch Linux를 설치하는 과정에 대한 기록입니다.

설치 환경은 Windows10에서 VirtualBox를 통해 UEFI 소프트웨어 인터페이스 상에서 진행되었습니다.

만약 BIOS 환경에서 구축을 진행하실 예정이라면 본 포스팅은 참고하기에 부적절합니다.

 

또한 본 과정은 PC에 Virtual Box가 이미 설치되어있음을 전제하고 있습니다.

만약 Virtual Box가 설치되어 있지 않다면 아래의 링크를 통해 PC에 설치 후 진행해주세요.

 

https://www.virtualbox.org/wiki/Downloads

 

Downloads – Oracle VM VirtualBox

Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt

www.virtualbox.org

 

본 포스팅은 아래의 유튜브 채널을 크게 참고했습니다.

 

https://www.youtube.com/watch?v=uPwECGzm3kQ

 

하지만 본 포스팅이 이 영상의 내용과 100% 일치하는 것은 아닙니다.

본 포스팅은 개인적으로 구축할 때 발생한 문제점들을 해결한 부분도 추가 했으며, 없는 내용도 다수 보강했습니다.

 

1. Arch Linux 다운로드

Arch Linux 설치 파일은 iso 규격입니다. 토렌트를 통해 받거나 FTP에 직접 접속해서 받을 수 있으니 편한 방법대로 설치 파일을 확보합니다.

 

https://www.archlinux.org/download/

 

Arch Linux - Downloads

 

www.archlinux.org

 

2. Virtual Box 가상 머신 생성

 

먼저 Virtual Box를 실행하고 새로 만들기 버튼을 클릭해 새 가상 머신을 생성합니다.

 

 

예시에서는 가상 머신의 이름은 MyArch로 했으며, 머신 폴더는 D드라이브에 두었습니다.

종류 항목에서 Linux를 선택하고 버전은 ArchLinux(64-bit)를 선택합니다.

메모리는 적절히 2GB 정도로 지정합니다. 만들기 버튼을 눌러 다음 과정으로 진행합니다.

 

 

파일 크기는 적당히 50기가 정도로 확보합니다. 더 크게 설정해도 무방합니다.

만들기 버튼을 눌러 가상 머신 생성을 완료합니다.

 

 

3. Virtual Box 가상 머신 설정

 

 

올바르게 가상 머신이 생성되었다면 관리자 창 좌측에 생성된 가상 머신이 보입니다.

방금 생성한 MyArch 가상 머신을 선택 후, 설정 버튼을 눌러 가상 머신을 상세히 설정합니다.

 

 

시스템 항목을 선택하면 마더보드 탭이 보입니다.

여기서 확장된 기능 항목의 EFI 사용하기 (지원하는 운영체제만)(E)를 체크합니다.

 

 

이제 저장소 탭으로 이동해 다운로드한 Arch Linux iso 파일을 삽입해 주어야 합니다.

저장 장치 -> 컨트롤러 IDE -> '비어 있음'으로 되어있는 항목을 선택하면 우측에 속성 탭이 활성화됩니다.

속성 탭의 CD 모양 아이콘 -> 가상 광 디스크 파일 선택을 클릭해 다운로드한 Arch Linux iso 파일을 삽입해줍니다.

 

이미지 삽입

설정창을 닫고 관리자 창에서 방금 생성하고 설정한 가상 머신을 더블 클릭해 실행합니다.

 

4. Arch Linux 설치

 

 

가상 머신이 실행되면 위와 같은 선택지 화면을 보여줍니다.

설치하기에 앞서, 대부분의 리눅스가 그러하듯, 인터넷이 연결되어있어야 합니다. 설치에 필요한 패키지들을 네트워크를 통해 받아오기 때문입니다. Virtual Box를 실행하는 호스트 PC에 인터넷이 연결되어 있는지 먼저 확인합니다.

 

첫 번째 항목인 Arch Linux install medium (x86_64, UEFI)에 커서를 두고 엔터 키를 누릅니다.

아마도 검은색 화면만 보일 텐데, 내부에서는 디스크 시동을 위해 계속 돌아가고 있는 중이니 안심하고 로드될 때까지 기다립니다. 시간이 다소 오래 걸립니다.

 

 

위와 같은 화면이 보이면 설치를 위한 준비가 완료된 것입니다.

 

 

ping google.com 명령어를 입력해 인터넷 연결 상태를 확인합니다.

위와 같은 로그가 지속적으로 출력된다면 정상적으로 인터넷이 연결되었음을 의미합니다.

Ctrl + C 로 명령을 중단합니다.

 

 

4-1. 파티션 설정

 

lsblk 명령어를 통해 인식되는 드라이브를 확인합니다.

본 예제에서는 초기에 설정한 50G의 저장소가 sda라는 이름으로 인식되고 있습니다.

이제부터 이 sda 디스크 영역에 Arch Linux를 구축할 겁니다.

 

 

파티션 구성은 본 포스팅에서는 cfdisk 명령어를 통해 진행합니다.

cfdisk 명령어를 터미널에 입력하면 위와 같이 레이블 타입을 선택하는 화면이 나옵니다.

첫 번째 항목의 gpt에 커서를 두고 엔터를 누릅니다.

 

 

파티션을 설정할 수 있는 화면에 접근했습니다.

device 칼럼에 Free Space는 아직 파티션이 설정되지 않은 영역을 의미합니다.

파티션은 boot 영역root 영역, home영역으로 나눕니다. boot 영역은 OS가 시동했을 때 최초로 거치는 영역이고 root영역은 리눅스 패키지, 명령어등 리눅스가 실질적으로 동작하는데 관여하는 소스들이 위치합니다.

home 영역은 사용자 계정이 위치하는 파티션입니다.

사실 boot 영역과 root 영역은 따로 파티션을 나누지 않아도 빌드 자체는 가능합니다만, 구축 과정은 다소 다를 수 있습니다.

하지만 Arch Linux측에서도 이와 같은 3개의 파티션 구성을 권장하고 있으므로 이에 따르도록 하겠습니다.

 

boot 영역 생성

 

boot 영역은 많은 용량을 요구하지 않기 때문에 512 메가바이트를 할당합니다.

 

생성이 완료되면 리스트에 방금 생성한 파티션이 /dev/sda1 이란 이름으로 나타납니다.

이 파티션의 파티션 타입을 변경합니다.

좌우 화살표 키로 Type 쪽에 커서를 맞춰 엔터를 누릅니다.

 

 

첫 번째 항목인 EFI System에 커서를 두고 엔터를 누릅니다.

 

 

타입 칼럼에서 제대로 변경되었는지 확인합니다.

 

root 영역 생성

Free space 항목에 커서를 두고 New로 root용 새 파티션을 만들어줍니다.

10G 정도로 생성해 줍니다.

 

home 영역 생성

home 파티션은 나머지 전체 영역을 모두 할당합니다.

 

 

 

write 항목 선택 후 yes를 입력해 설정한 대로 파티션을 작성합니다.

(write를 진행하지 않으면 파티션이 저장되지 않습니다.)

 

작성이 완료됐으면 quit를 선택해 cfdisk 명령어를 빠져나옵니다.

lsblk 명령어를 통해 제대로 파티션이 작성되었는지 확인합니다.

 

 

이제, Arch Linux를 설치하기 위해 각 파티션들을 포맷합니다.

 

512M을 할당했던 /dev/sda1은 파티션 타입을 아래의 명령어로 먼저 포맷합니다. 주의할 점은 sda1은 파티션 타입이 EFI System으로 sda2, sda3과는 다르기 때문에 포맷 명령어 또한 sda2, sda3과 다릅니다.

# mkfs.fat -F32 /dev/sda1

 

/dev/sda2, /dev/sda3 영역도 포맷합니다.

 

# mkfs.ext4 /dev/sda2
# mkfs.ext4 /dev/sda3

 

4-2. 파티션 마운팅

root 영역인 /dev/sda2를 아래의 명령어를 통해 /mnt에 마운팅 합니다.

 

# mount /dev/sda2 /mnt

 

boot 영역을 마운트 합니다. boot 영역은 /mnt 안에서 별도의 계층을 생성해주어야 합니다.

아래의 명령어로 디렉터리를 생성하고 /mnt/boot에 마운트 합니다.

efi는 나중에 사용할 디렉터리지만 여기서 미리 만들어둡니다.

# mkdir -p /mnt/boot/efi
# mount /dev/sda1 /mnt/boot

 

home 영역도 마운트 합니다.

 

# mkdir /mnt/home
# mount /dev/sda3 /mnt/home

 

pacstrap 명령어를 통해 /mnt에 필수 패키지를 설치합니다.

 

# pacstrap /mnt base base-devel linux linux-firmware vim nano

 

설정 파일을 수정하기 위해 vim, nano를 같이 설치해줍니다. 시간이 다소 걸립니다.

설치가 완료되었다면 genfstab 명령어로 설정한 파티션에 대한 정보를 /mnt/etc/fstab에 기록합니다.

 

# genfstab -U /mnt >> /mnt/etc/fstab

 

 

cat /mnt/etc/fstab 명령어로 확인해보니 파티션에 대한 정보가 잘 기록되었습니다.

arch-chroot 명령어로 /mnt에 접근합니다.

 

# arch-chroot /mnt

 

 

cli의 모양이 바뀌었다면 제대로 접속한 것입니다.

 

 

 

4-3. 시스템 설정

먼저, 저는 타임존을 서울로 맞추고 하드웨어 시간을 동기화하겠습니다.

 

# ln -sf /usr/share/zoneinfo/Asia/Seoul
# hwclock --systohc

 

다음으로 시스템 로케일을 설정하기 위해 locale.gen 파일을 수정합니다.

로케일은 언어와 날짜등 표시 형식과 연관이 있습니다.

아래의 명령어로 파일을 편집합니다.

 

# nano /etc/locale.gen

 

표시 언어 중 다음의 두 언어의 주석을 해제합니다.

  • en_US.UTF-8 UTF-8
  • ko_KR.UTF-8 UTF-8

설정한 locale.gen을 아래의 명령어로 적용합니다.

 

# locale-gen

 

아래의 명령어로 적용된 로케일 중 사용할 로케일을 지정합니다.

 

# echo LANG=en_US.UTF-8 > /etc/locale.conf

 

시스템 로케일을 영어로 지정했습니다.

한글 적용은 본 포스팅 후반부에 나올 gnome GUI 설치에서 다시 한번 다루겠습니다.

 

호스트를 생성하고 패스워드도 설정해 줍니다.

 

# echo "arch" > /etc/hostname
# passwd

 

패스워드는 두 번 입력해야 합니다.

 

 

이제 부트로더를 만들어야 합니다. 부트로더를 만들기 위한 패키지를 설치 및 설정합니다.

패키지 설치 직후 arch-chroot를 벗어난 후 /dev/sda1의 마운트 경로를 /mnt/boot에서 /mnt/boot/efi로 변경합니다.

왜냐하면 grub-install 명령어를 수행할 때 부트 디바이스를 efi에서 찾기 때문입니다.

 

# pacman -S grub efibootmgr dosfstools openssh os-prober mtools
# exit
# umount /dev/sda1
# mount /dev/sda1 /mnt/boot/efi
# arch-chroot /mnt

 

# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
# bootctl install

 

arch.conf 생성

설정 파일을 생성하기에 앞서 blkid명령어를 실행합니다.

 

 

여기서, root 파티션으로 설정한 /dev/sda2의 PARTUUID를 어딘가에 기록합니다.

 

이제 vim이나 nano 에디터로 arch.conf를 생성합니다.

 

# nano /boot/efi/loader/entries/arch.conf

 

 

빈 화면에 위와 같이 작성합니다.

여기서 PARTUUID는 아까 기록해둔 /dev/sda2의 UUID입니다.

 

vim을 사용할 경우

 

 

vim으로 문서를 열 경우, 콜론(:) r!blkid  명령으로 디스크 아이디를 확보할 수 있습니다.

 

재부팅 이후에도 네트워크를 사용할 수 있도록 dhcpcd 설치 및 설정해줍니다.

 

# pacman -S dhcpcd networkmanager
# systemctl enable dhcpcd.service
# systemctl enable NetworkManager.service

 

이제 모든 설정이 완료되었습니다.

아래의 명령어를 순차로 실행 해 시스템을 재 시작합니다.

 

# exit
# umount -a
# reboot

 

 

재부팅 이후 위와 같은 화면이 나왔다면 성공적으로 설치가 완료된 것입니다.

만약 로그인 화면이 출력되지 않는다면 설정의 순서 및 입력 내용에 오타가 있는지 검토한 후 다시 부트로더를 생성해주세요.

 

4-4. 사용자 계정 생성

현재 설치된 Arch Linux에는 root 계정밖에 없기 때문에 이대로 사용하기는 위험하고 또 어렵습니다.

사용자 계정을 생성해야 합니다.

보통은 sudo 패키지가 설치되어있지만, 설치 되어있지 않은 경우에는 설치해 줍니다.

 

# pacman -S sudo

 

 

root 계정으로 로그인한 후, useradd -m [계정명]으로 유저 계정을 하나 생성하고 패스워드도 설정합니다.

이제, 새로 생성한 계정에도 sudo 권한을 부여해야 합니다.

nano나 vim으로 sudoers 파일을 열어줍니다. 명령어는 아래와 같습니다.

 

# nano /etc/sudoers

 

만약 sudoers가 없다면 pacman -S sudo 명령어로 sudo 패키지를 설치해주세요.

 

sudo 권한 부여

 

문서가 열렸다면 User privilege spectification 항목을 찾습니다.

이 항목에는 root에 대한 정의만 있는데, 그 아랫줄에 다음과 같이 정의해 sudo 권한을 계정에 부여합니다.

 

[계정명] ALL=(ALL) ALL

 

문서를 저장한 후 닫습니다.

exit 명령어로 root 계정을 로그아웃 합니다.

 

 

로그인 화면으로 돌아오면, 방금 새로 생성한 계정으로 접속합니다.

이로써 Arch Linux를 사용하기 위한 최소한의 준비는 완료되었습니다.

 

5. GNOME GUI 설치

아래의 명령어로 xorg와 gnome을 설치한 후, gdm(gnome display manager)를 활성화합니다.

중간에 옵션을 묻는 구간이 나오는데 본 예제에서는 모든 설정은 디폴트로 진행했습니다.

 

$ sudo pacman -S xorg
$ sudo pacman -S gnome
$ systemctl enable gdm.service
$ systemctl start gdm.service

 

다음과 같은 로그인 화면을 출력하면서 gnome GUI 설치가 완료됩니다.

 

 

이제, 시스템 로케일을 한글로 바꿔주겠습니다.

하지만 바로 locale.conf 파일을 수정해도 한글은 출력되지 않고 깨진 문자만 출력해줍니다.

이는 한글 폰트를 설치 해 줌으로 해결됩니다.

먼저 계정에 로그인하고 터미널을 엽니다.

터미널은 화면 우측 상단에 Activities를 누르고 검색 창에 terminal을 검색해서 열 수 있습니다.

 

 

터미널에서 아래의 명령어로 한글을 지원하는 폰트를 설치합니다.

 

$ sudo pacman -S terminus-font noto-fonts-cjk ttf-dejavu

 

다음으로 locale.conf 파일을 편집해 시스템 로케일을 en_US.UTF-8 에서 ko_KR.UTF-8로 변경해줍니다.

지금은 사용자 계정이므로 sudo 권한으로 편집해야 합니다.

 

$ sudo nano /etc/locale.conf

 

sudo 권한으로 열어 en_US.UTF-8을 ko_KR.UTF-8로 변경한다.

 

이제 sudo reboot 명령으로 시스템을 재 시작합니다.

 

 

시스템 언어가 정상적으로 한글을 보여주고 있지만 아직 한글 입력은 안됩니다.

한글을 입력하기 위해서는 별도의 입력기 패키지를 설치해야합니다.

 

 

6. 한글 입력기 설치

한글 입력기는 여러 종류가 있지만, 이번 예제에서는 ibus를 설치하겠습니다.

입력기에 대한 자세한 내용은 아래의 링크를 참고해 주세요.

 

https://wiki.archlinux.org/index.php/Localization_(%ED%95%9C%EA%B5%AD%EC%96%B4)/Korean_(%ED%95%9C%EA%B5%AD%EC%96%B4)

 

Localization (한국어)/Korean (한국어) - ArchWiki

이 문서는 아치리눅스 설치 후 한국어 입력을 설정하는 방법을 다룹니다. 이 문서를 읽기 전에 X11 환경을 미리 설치하고 설정하십시오. 이 문서는 콘솔에서 한국어를 입력하는 방법을 다루지 않

wiki.archlinux.org

 

ibus-hangul 패키지를 설치해줍니다.

 

$ sudo pacman -S ibus-hangul

 

/etc 경로에 xprofile이라는 파일을 생성하고 입력기 설정을 작성하고 시스템을 재시작합니다.

 

$ sudo nano /etc/xprofile

//==== 아래의 내용을 입력합니다.  ====

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -d -x

//===================================

$ sudo reboot

 

 

부팅이 후, 로그인하고 좌측 상단에 '현재 활동'을 클릭하고 검색창에 setting을 입력해 설정 패널을 엽니다.

 

 

설정 패널이 활성화되었다면, 좌측 패널을 쭉 아래로 내려 지역 및 언어 항목을 찾아 클릭합니다.

그리고 입력 소스 부분에 + 버튼을 누릅니다.

 

 

한국어 선택 -> 한국어(Hangul)를 선택해 추가합니다.

 

 

작업표시줄 우측에 en으로 표시되어있는 아이콘을 누르고 한국어로 변경한 후, '한글 상태' 체크박스를 활성화 해줍니다.

 

터미널에서 한글 입력

 

이제 키보드로 한국어 입력이 가능해졌습니다.

이로써 Arch Linux를 사용하기 위한 최소한의 세팅은 마무리가 되었습니다. :)