리눅스/Arch or Manjaro

아치 리눅스(Arch Linux) 설치 04 - 사용자에 의한 Base 시스템 완전 수동 설치[UEFI/systemd-boot/Swap File]

씨실과 날실 2021. 7. 5. 09:00

[관련 게시물]

2021.06.22 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 01 - Arch Linux에 대한 소개 및 ISO 파일 다운로드

2021.06.24 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 02 - archinstall 인스톨러를 통한 설치

2021.06.30 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 03 - 사용자에 의한 Base 시스템 완전 수동 설치[UEFI/GRUB2/Swap Partition]

2021.07.05 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 04 - 사용자에 의한 Base 시스템 완전 수동 설치[UEFI/systemd-boot/Swap File]

2021.07.09 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 05 - 데스크톱 환경 설치

2021.07.12 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 06 - 시스템 언어 환경 및 형식(포맷)과 한글 입력 설정(한글 폰트 설치, IBUS/Fcitx5 입력기 설치 및 한글 입력 설정)

2021.07.14 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 07 - 버추얼박스 게스트 확장(Guest Additions) 설치

2021.07.20 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 01

2021.07.23 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 02(archdi의 Update Menu)

2021.07.29 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 03(archdi의 Install Menu 중 필수 GUI 환경 구축 과정)

2021.08.02 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 04(archdi의 Install Menu 중 각종 응용 앱 설치 과정)

2021.08.04 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 05(주요 시스템 설정 작업 및 마무리 과정)

2021.08.06 - [리눅스/Arch or Manjaro] - 아치 리눅스 (Arch Linux) 주요 설정 파일 예시

 

 

안녕하세요. 씨실과 날실입니다.

위 링크의 글에서 아치 리눅스를 사용자가 직접 수동으로 설치하는 가장 일반적인 방법을 전반적으로 훑어보았습니다.

그런데 해당 글은 부팅 방식으로는 UEFI, 부트로더러는 GRUB 그리고 스왑 방식은 파티션을 기준으로 삼아 설명한 것입니다. 그런데 부팅 방식을 제외하고 나머지 두 조건들은 리눅스 시스템을 구축하는 전통적인 방법입니다.

그러나 컴퓨팅 환경의 변화로 요즘은 부트로더와 스왑 방식을 이전과 달리하여 시스템을 구축하는 경우가 점점 늘어나고 있습니다.

 

이글은 아치 리눅스 시스템을 수동으로 구축하는 일련의 과정들 중 기존 설명과 달라지는 과정만 따로 작성하도록 하겠습니다. 따라서 아치 리눅스 시스템을 수동으로 구축하는 전반적인 흐름은 위 링크의 글을 참고하시기 바랍니다.

 

[아치 리눅스 구축 환경]

가상머신 환경 : VirtualBox 6.1

가상 하드 디스크 용량 : 2T

아치 리눅스 설치 미디어 ISO : archlinux-2021.06.01-x86_64.iso

 

[구성 목표]

부팅모드 : UEFI

사용 네트워크 : 유무선 네트워크

사용 부트로더 : systemd-boot

스왑 방식 : 스왑 파일

 

 


파티션 구성 계획

시스템을 구축하려면 가장 먼저 시스템을 구축할 디스크의 파티션을 구성해야 합니다.

그리고 파티션은 시스템 관리자 또는 사용자의 목적에 맞게 구성되어야 합니다.

 

파티션 구성 1

파티션 구성 예시

파티션 테이블 : GPT

/dev/sda1 : EFI System  / FAT32 / 512M

/dev/sda2 : Linux Swap / Swap / 2G

/dev/sda3 : Linux Filesystem / ext4 / 나머지 용량

전통적인 파티션 구성입니다. 스왑 파티션을 따로 할당합니다.

이 구성을 기반으로 아치 리눅스를 수동으로 설치하는 방법은 아래 링크를 참고하시기 바랍니다.

 

파티션 구성 2

파티션 구성 예시

파티션 테이블 : GPT

/dev/sda1 : EFI System  / FAT32 / 512M

/dev/sda2 : Linux Filesystem / ext4 / 나머지 용량

스왑 파일 : 4G

근래의 파티션 구성입니다. 스왑 파티션을 따로 할당하지 아니하고 그 역할을 대신할 스왑 파일을 생성합니다.

 

과거에는 전통적으로 스왑 파티션을 따로 할당할 것을 권장하였지만 근래는 컴퓨팅 환경의 발전으로 파일로도 스왑 기능을 충분히 수행할 수 있게 되었으므로  자원의 유연한 활용을 위하여 스왑 파일 사용을 권장하는 편이며 우분투 등 일부 리눅스 배포판에서도 스왑 파일을 기본 설정으로 채택하고 있습니다.

 

이 글에서는 파티션 구성 2를 기준으로 설명하겠습니다.

 

파티션 구성

root@archiso ~ # cfdisk /dev/sda

파티션을 구성할 장치명을 인수로 삼아 cfdisk를 실행합니다.

 

Disk: /dev/sda
Size: 2 TiB, 2199022206976 bytes, 4294965248 sectors
Label: gpt, identifier: 

  Device        Start             End          Sectors     Size   Type
>>/dev/sda1      2048         1050623          1048576     512M   EFI System
>>/dev/sda2   1050624      4294965214       4293914591       2T   Linux filesystem  



Partition UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Partition type: Linux filesystem (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

[   New   ] [   Quit   ] [   Help   ] [   Write   ] [   Dump   ]

설정이 끝나면 위와 같이 표시될 것입니다.

Tab키를 눌러 Write메뉴로 이동한 다음 엔터키를 눌러줍니다.

 

Are you sure you want to write the partition table to disk? yes

Type "yes" or "no", or press ESC to leave this dialog.

그럼 위와 같이 위 설정과 같이 파티션 테이블을 디스크게 작성하겠느냐는 질문이 표시됩니다.

yes를 입력하고 엔터키를 눌러줍니다. 이때 y만 누르고 엔터키를 누르면 오류가 뜨므로 꼭 yes를 온전히 다 적어주도록 합시다.

 

그리고 Quit 메뉴로 이동해 엔터키를 눌러줍니다.

Quit program without writing changes
Syncing disks.
root@archiso ~ #

그러면 위같이 표시되고는 명령 입력 대기 상태로 돌아옵니다.

 

파티션 포맷

파티션 테이블을 구성한 다음에는 각 파티션이 사용할 파일시스템 포맷을 설정해주어야 압니다.

아래와 같이 각 파티션에 맞는 파일시스템을 구성해줍니다.

root@archiso ~ # mkfs.vfat -F32 /dev/sdal
mkfs.fat 4.2 (2021—01—31)

root@archiso ~ # mkfs.ext4 /dev/sda2
mke2fs 1.46.2 (28-Feb-2021)
Creating filesystem with 536739323 4k blocks and 134184960 inodes
Filesystem UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848, 512000000

Allocating group tables: done
Writing inode tables: done Creating journa1 (262144 blocks): done
Writing superblocks and filesystem accounting information: done

root@archiso ~ #

이번에는 스왑 파티션을 구성하지 않을 것이므로 UEFI 파티션과 root 파티션만 위와 같이 포맷해주시면 됩니다.

 

리눅스에서 포맷하는 방법에 대한 보다 자세한 내용은 위 링크의 글을 참고하시기 바랍니다.

 

파티션 마운트

root@archiso ~ # mount /dev/sda2 /mnt

향후 주 파티션(루트 파티션)으로 사용될 파티션인 /dev/sda2를 임시 마운트 지점인 /mnt에 마운트합니다.

 

root@archiso ~ # mkdir /mnt/boot

/mnt 디렉터리 안에 부트 파티션을 마운트할 부트 디렉터리를  만들어줍니다.

 

root@archiso ~ # mount /dev/sda1 /mnt/boot

위에서 생성한 부트 디렉터리(/boot)에 아까 생성했던 부트 파티션(/dev/sda1)을 마운트해줍니다.

 

root@archiso ~ # ls -F /mnt
boot/	lost+found/
root@archiso ~ #

마운트를 마치고 마운트 포인트인 /mnt 디렉터리 내용물을 확인해보면 자신이 만들이 않은 디렉터리가 생성되어 있는 것을 확인할 수 있습니다.  lost+found는 각 파일 시스템(즉 파티션)이 마운트된 곳마다 자동으로 생성되는 디렉터리로, 시스템 검사 도구(fsck, e2fsck 등)가 시스템을 검사하고 손상된 데이터에 대한 정보를 저장되는 특별한 디렉터리입니다.

 

root@archiso ~ # lsblk
NAME 	MAJ:MIN RM 	SIZE 	RO 	TYPE 	MOUNTPOINT
loop0 	7:0 	0 	638.7M 	1 	loop 	/run/archiso/airootfs
sda 	8:0 	0 	2T 	0 	disk
-sda1 	8:1 	0 	512M 	0 	part 	/mnt/boot
-sda2 	8:2 	0 	2T 	0 	part 	/mnt
sr0 	11:0 	1 	774.3M 	0 	rom 	/run/archiso/bootmnt
root@archiso ~ # 

위와 같이 파티션 마운트 정보를 확인할 수 있습니다.

 

fstab 파일 생성

fstab은 파일 시스템에 디스크 파티션, 그외 다른 다양한 블록 장치 또는 원격 파일 시스템을 마운트한 정보를 정의하

는 파일입니다.

root@archiso ~ # genfstab -U /mnt >> /mnt/etc/fstab

genfstab 명령을 실행하여 /mnt에 마운트한 장치를 UUID로 구분하여 /mnt/etc 디렉터리 안에 있는 fstab 파일에 내용을 추가하라는 의미입니다. 이때 현재 스왑 공간도 같이 작성됩니다.

 

-U 옵션은 장치를 UUID로 구분한다는 의미입니다. UUID 대신 다른 태그로 구분하도록 설정할 수 있습니다.

예를 들어 파티션에 레이블을 지정해주었다면 -L 옵션으로 레이블을 구분자로 설정할 수 있습니다.

 

위에서는 >>(Append - 추가 적성) 기호가 쓰였지만 실제로는 현 시점에서 /mnt/etc 디렉터리 안에는 fstab 파일이 존재하지 않습니다. 따라서 새로 작성하게 됩니다. touch 명령이 본래는 파일의 타임스탬프를 찍는 역할을 하지만 인수로 지정한 파일이 존재하지 않으면 지정한 이름을 가진 파일을 생성하는 역할을 하는 것과도 같은 맥락입니다.

 

rootParchiso ~ # genfstab -U /mnt » /mnt/etc/fstab
rootParchiso ~ # cat /mnt/etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.
# <file system〉 <dir> <type> <options> <dump> <pass>
# /dev/sda2
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx	/	ext4	rw,relatime	0 1

# /dev/sda1
UUID=xxxx-xxxx	/boot	vfat	rw,relatime,fmask=0022,dmask=002Z,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro	0 2

rootParchiso ~ #

 

 


패키지 전체 업그레이드

[root@archiso /]# pacman -Syu

가장 먼저 chroot 시스템의 패키지들을 업그레이드 해줍니다.

 

 EFI 파티션에  systemd-boot의 부트로더 복사

[root@archiso /]# bootctl --esp-path=/boot install
Created "/boot/EFI".
Created "/boot/EFI/systemd".
Created "/boot/EFI/BOOT".
Created "/boot/loader".
Created "/boot/loader/entries".
Created "/boot/EFI/Linux".
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/systemd/systemd-bootx64.efi".
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/BOOT/BOOTX64.EFI".
Created "/boot/32자리 영숫자".
Random seed file /boot/loader/random-seed successfully written (512 bytes).
Not installing system token, since we are running in a virtualized environment.
Created EFI boot entry "Linux Boot Manager".
[root@archiso /]#

부트로더 설치 경로 옵션 지정에 대하여 설명드릴 것이 있습니다.

과거 버전의 bootctl manpage를 확인해보면 설치 경로 지정 옵션으로 --boot만을 설명하는 경우가 있습니다. 그러나 최신 버전의 manpage를 확인해보면 --esp-path=와 --boot-path= 둘로 나뉘어 있는 것을 볼 수 있습니다.

우리는 부트 파티션으로 EFI 파티션을 사용하므로 원칙적으로 --esp-path= 옵션을 사용하는 것이 맞습니다. 그러나 과거의 옵션인 --boot=을 사용해도 문제 없이 설치가 됩니다.

심지어는 이 옵션을 지정하지 않아도 /efi, /boot 및 /boot/efi 디렉터리를 차례로 확인하여 먼저 발견되는 디렉터리에 부트로더가 설치됩니다.

 

bootctl의 manpage에서는 가능하면 ESP를 /efi 디렉터리에 마운트하는 것을 권장하고 있습니다만 다른 기본 확인 디렉터리에 마운트하더라도 큰 문제는 없습니다. 따라서 여기서는 아치 리눅스 수동 설치 전반 설명 글에서 사용한 /boot 디렉터리를 사용하였습니다.

 

부트로더 설정

[root@archiso /]# nano /boot/loader/loader.conf

systemd-boot EFI boot manager를 설치한 후에는 Systemd-boot의 부트로더 설정 파일을 구성해주어야 합니다.

처음에는 해당 파일이 없으므로 새로 생성됩니다.

 

처음 생성되는 loader.conf 파일에는 내용이 비어 있습니다. 거기에 각종 설정 변수들을 설정해주시면 됩니다.

default arch
timeout 3
editor 1

위는 가장 최소한의 설정 값입니다.

 

주요 변수들에 대한 간략한 설명입니다.

Systemd-boot의 부트로더 주요 설정 변수

default :

esp/loader/entries 디렉터리 안에 있는 설정 파일들(*.conf) 중 지정 파일 설정값들을 불러옵니다.

 

timeout :

기본 항목이 부트되기 전(즉 본격적으로 부트 작업이 진행 되기 전) 메뉴가 표시되는 시간(초)

 

editor :

커널 매개변수 편집기 사용 여부를 설정합니다.

manpage에서는 yes(기본값)와 no만 언급하고 있습니다만 숫자 1(기본값)과 0으로도 설정할 수 있습니다.

활성화되어 있다면부팅이 진행되기 전 e키를 눌러 커널 변수 및 부팅 환경을 조정할 수 있습니다.

사용자가 init=/bin/bash 구문을 추가하여 root 암호를 우회하여 루트 권한을 얻을 수 있으므로 시스템이 정상적으로 부팅 및 작동하는 것을 확인하고 추후 비활성화하는 것을 권장합니다.

 

auto-entries:

Windows, EFI Shell 그리고 기본 Loader에 대한 자동 항목 표시 여부를 설정합니다.

기본값은 1로 표시를 의미하고 0으로 지정하면 숨깁니다.

 

auto-firmware:

UEFI 펌웨어 설정으로 재부팅하기위한 항목 표시 여부를 설정합니다.

기본값은 1로 표시를 의미하고 0으로 지정하면 숨깁니다.

표시 설정이 되면 부팅 시 메뉴에 Reboot Into Firmware Interface 메뉴가 표시됩니다.

 

console-mode:

UEFI 콘솔 모드를 변경합니다.

0 : 80X25

1 : 80X50

2 : 장치 펌웨어에서 제공하는 비표준 모드

auto : 자동으로 적절한 모드 선택

max : 가능한 최대 모드

keep (기본값) : 펌웨어 선택 모드

 

random-seed-mode :

esp/loader/random-seed 파일에서 임의 시드를 읽을지 여부를 제어합니다. 
with-system-token (기본값)으로 설정하면 EFI 변수 LoaderSystemToken이 설정된 경우에만 파일에서 시드를 로드합니다.


always :

EFI 변수가 설정되지 않은 경우에도 파일에서 시드를 로드합니다. 
off로 설정하면 파일이 무시됩니다.

 

보다 자세한 내용은 위 링크들을 참고하시기 바랍니다.

 

부트로더 추가

[root@archiso /]# nano /boot/loader/entries/arch.conf

Systemd-boot의 부트로더 설정 파일인 loader.conf의 변수 default에 설정한 파일을 생성합니다.

앞에서 arch로 지정했으므로 /boot/loader/entries 디렉터리 안에 arch.conf을 생성합니다.

systemd-boot는 esp/loader/entries/*.conf 및 XBOOTLDR을 사용하는 경우 boot/loader/entries/*. conf에서 부팅 메뉴 항목을 검색합니다.

esp를 사용하는 시스템인 경우 esp의 파일 (예: 커널, initramfs, 이미지 등)만 사용할 수 있습니다.

 

title ArchLinux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda2 rw

 

/boot/loader/entries/*.conf 파일에서 사용되는 주요 변수

일반 변수

title : 필수 항목으로 운영 체제 이름을 적습니다. 일반적으로 ArchLinux를 씁니다.

 

version - 커널 버전

            동일한 이름의 title 항목이 여러 개있는 경우에만 표시되는 커널 버전입니다. (선택항목)

 

machine-id - /etc/machine-id의 컴퓨터 식별자

                 title과 version 같은 항목이 여러 개 있는 경우에만 표시됩니다. (선택 과목)

 

efi - 부팅 시 적용될 EFI 프로그램

      예 : /vmlinuz-linux. 이 매개 변수 또는 linux (아래 참조)가 필요합니다.

 

options – EFI 프로그램 또는 커널 매개 변수에 전달할 공백으로 구분 된 명령 줄 옵션입니다.

            선택 사항이지만 Linux를 부팅하는 경우 최소한 루트 파티션 지정(예 : root=/dev/sda2)가 필요합니다.

            이 매개 변수는 검색 가능한 파티션 사양에 정의 된대로 루트 파티션에 올바른 루트 파티션 유형 GUID가 할당되고 systemd mkinitcpio hook이 존재하는 경우 생략 할 수 있습니다.

 

리눅스 부팅 시 사용 변수

linux 및 initrd 다음에 ESP에서 사용할 파일의 상대 경로가 인수로 옵니다.

 

linux - 리눅스 부팅 시 efi 대신 사용 가능합니다.

         /vmlinuz-linux로 지정하면 efi의 경로로 자동 치환됩니다.

initrd - 리눅스 부팅 시 추가 가능한 변수(적용 이미지 등)입니다.

 

 

보다 자세한 내용은 위 링크를 참고하시기 바랍니다.

 


스왑 파일 생성

스왑 파일 생성

[root@study-virtualbox ~]# fallocate -l 4G /swapfile 

fallocate은 파일에 디스크 공간을 미리 할당하거나 할당한 공간을 해제하는 명령입니다.

어떤 목적으로 큰 용량의 파일을 만들어야 하는 경우 사용되는 명령입니다.

manpage에서는 -l 옵션은 생성할 파일의 범위의 길이를 지정하는 옵션이라고 설명하고 있는데 쉽게 설명하면 해당 파일의 용량을 지정하는 것이라 볼 수 있습니다.

 

위 명령은 study 사용자가 root 권한을 임시로 얻어 root디렉터리(/)에 swapfile이라는 이름을 가진(확장자 없음) 파일을 4GB 크기로 생성하라는 의미입니다.

 

스왑 파일 퍼미션 설정

[root@study-virtualbox ~]# chmod 600 /swapfile

해당 파일의 사용 권한(퍼미션 - permission)을 지정합니다.

chmod는 파일의 모드를 지정 하는 명령인데 주로 권한을 ㅣㅈ정할 때 사용됩니다.

숫자 600은 ls -l 명령에서 rw-------로 표시되며 해당 파일의 소유자(User)는 읽고(Read) 쓰기(Write)가 가능하되 실행(eXcute)은 불가능하고 그룹 사용자(Group)와 기타 일반 사용자(Others)들은 아무 권한도 없습니다.

즉 스왑 파일을 생성한 사람 외에는 아무도 손을 대지 못하게 권한을 막은 것입니다.

 

스왑 파일 스왑공간화

[root@study-virtualbox ~]# sudo mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
[root@study-virtualbox ~]#

생성된 정규 파일(= 일반 파일)을 스왑 포맷으로 변경합니다. 그리고 스왑 파일에 UUID를 부여합니다.

그러나 fstab에 이 UUID를 굳이 적어줄 필요는 없습니다.

 

스왑 파일 활성화

[root@study-virtualbox ~]# sudo swapon /swapfile

스왑 기능 활성화합니다.

여기서는 파티션이 아닌 스왑 포맷 파일을 기반으로 스왑 기능을 활성화합니다.

 

스왑 파일 정보 fstab 파일에 추가

[root@study-virtualbox ~]# echo '/swapfile none swap sw 0 0' >> /etc/fstab

스왑 파일 정보를 fstab에 적어줍니다.

fstab은 파일 시스템에 마운트된 장치들에 대한 정적 정보들이 담긴 설정 파일입니다.

이 파일에 해당 장치에 대한 정보가 담겨 있어야 시스템 부팅 시 해당 장치들을 인식되어 사용할 수 있습니다.

그 이야기는 이 파일이 망가지면 시스템이 아예 부팅이 안될 수도 있습니다.

위 명령은 굳이 문서 편집기를 사용하지 않고 터미널에서 간편하게 스왑 파일 정보를 /etc/fstab에 추가하는 명령입니다.

 

스왑 파일 사용 조건 설정

[root@study-virtualbox ~]# echo 'vm.swappiness=10' > /etc/sysctl.d/99-swappiness.conf

 

위 명령은 사용 가능한 메모리가 10% 미만인 경우에만 스왑 파일을 사용하도록 swappiness 값을 영구적으로 설정하는 명령입니다.

 

[root@study-virtualbox ~]# cat /etc/sysctl.d/99-swappiness.conf
vm.swappiness=10
[root@study-virtualbox ~]

설정 파일이 제대로 생성되었는지 확인하는 예시입니다.

 

보다 자세한 정보는 위 링크르 참고하시기 바랍니다.

 

스왑 파일 활성화 여부 확인

[root@study-virtualbox ~]# free -m
	total 	used 	free 	shared 	buff/cache 	available
Mem: 	  961 	  65 	 802 	     1 		93 	    778
Swap: 	 4095 	   0 	 

스왑 파일이 정상적으로 활성화되고 있는지 위와 같이 확인할 수 있습니다.

 

스왑 파일에 대한 전반적인 내용은 위 링크를 참고하시기 바랍니다.


systemd-boot 부트로더용 CPU별 마이크로코드 설치 및 설정

이번에는 시스템에 각 CPU별 마이크로코드 패키지를 설치하고 systemd-boot를 부트로더에 해당 내용을 설정, 적용하는 방법에 대해 알아보도록 하겠습니다.

 

[study@study-virtualbox ~]$ sudo pacman -Syu

먼저 패키지 업그레이드를 진행합니다.

 

## Intel Processor
[study@study-virtualbox ~]$ sudo pacman -S intel-ucode

## AMD Processor
[study@study-virtualbox ~]$ sudo pacman -S amd-ucode

자신의 시스템에 맞는 CPU의 마이크로코드 패키지를 설치해줍니다.

 

[study@study-virtualbox ~]$ sudo pacman -S intel-ucode
[sudo] password for study:
resolving dependencies...
looking for conflicting packages...

Packages (1) intel-ucode-20210608-1

Total Download Size: 3.67 MiB
Total Installed Size: 4.55 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages...
 intel-ucode-20210608-1-any
(1/1) checking keys in keyring 
(1/1) checking package integrity 
(1/1) loading package files 
(1/1) checking for file conflicts 
(1/1) checking auailable disk space 
:: Processing package changes...
(1/1) installing intel-ucode
:: Running post-transaction hooks... 
(1/1) Arming ConditionNeedsUpdate...
[study@study-virtualbox ~]$

위는 인텔 CPU의 마이크로코드 패키지 설치 과정입니다.

 

[study@study-virtualbox ~]$ ls -F /boot
EFI/ initramfs-linux-fallback.img* initramfs-linux.img* intel-ucode.img* loader/ vmlinuz-linux*

해당 패키지들을 설치하면 /boot 디렉터리 안에 intel-ucode.img 또는 amd-ucode.img 파일이 있는 것을 확인할 수 있습니다.

 

[study@study-virtualbox ~]$ sudo nano /boot/loader/entries/arch.conf

아까 생성한 arch.conf 파일을 편집기로 엽니다.

 

title ArchLinux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda2 rw

아까 작성한 기본 설정값들이 보입니다.

 

initrd /intel-ucode.img

initrd /initramfs-linux.img 줄 위에 위 항목을 작성해 주시면 됩니다.

사용 CPU가 AMD라면 intel-ucode.img 대신 amd-ucode.img를 적어주시면 되겠지요.

 

내용을 추가한 후 저장하고 빠져나와줍니다.

 

[study@study-virtualbox ~]$ $sudo bootctl update
[sudo] password for study:
copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/systemd/systemd-bootx64.efi".
copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/BOOT/BOOTX64.EFI".
[study@study-virtualbox ~]$

이제 해당 설정 내용이 적용되게끔 업데이트해줍니다.

 

[study@study-virtualbox ~]$ reboot

이제 시스템을 재부팅해주시면 됩니다.

 

이것으로 아치리눅스의 BASE 시스템 구축 작업은 마무리되었습니다.

그러나 일반 사용자를 위한 그래픽환경 구성을 위한 데스크톱 환경(DE) 구축 작업이 남아 있습니다.

해당 내용은 위 링크를 참고하시기 바랍니다.