728x90
반응형

서론

archiso 2022.01.01이 virtualbox에서 불가능한 관계로 그 이전 버전인 2021.12.01를 설치해보자

https://mirror.anigil.com/archlinux/iso/2021.12.01/

위 링크에서 iso를 다운로드하고 나면 나머지는 거의 똑같이 보인다

 

가상머신

가상머신 생성

새로만들기

 

이름 맘대로

 

메모리 1G 할당

 

디스크 20G 할당

 

가상머신 설정

설정 - 시스템 - EFI 사용하기 체크

 

저장소 - 비어있음 - CD아이콘 - 디스크파일 선택 - 2021.12.01 archiso 선택

 

시작

와우 한번에!

어제를 시원하게 날렸다!

 

Arch Linux Install medium (x86_64, UEFI)를 선택

검은 화면이 잠시 유지되었다가 뭔가 마구 뜨면서 시작된다

 

혹시 모르니 인터넷 연결 확인까지 해보자

ping google.com

 

Arch Linux 설치

파티션

먼저 현재 디스크를 확인

lsblk를 입력한다

가상머신을 만들때 할당했던 20G가 sda에 고스란히 들어가 있다

이걸 나누어줄 것이다

파티션 분할

파티션 편집기 중 cfdisk를 사용한다

cfdisk

gpt 선택

 

Free space로 20G가 있다

저번 글에도 있지만 세 영역으로 나눈다

boot: Linux 시작할 때 필요

root: Linux 동작할 때 필요

home: 사용자 계정 위치

 

[New] - 512M - Enter -[Type] - EFI System

512M가 할당된 EFI System boot영역 생성

 

10G와 나머지 두개로 분할

 

10G는 root영역이, 나머지는 home영역이 될 것이다

 

[Write] - yes입력 - [Quit]로 저장 후 닫기

 

파티션 포맷

sda1는 EFI System으로 다른 영역과 다른 FAT32형식으로 포맷한다

mkfs.fat -F32 /dev/sda1

 

다른 두 영역은 ext4 형식으로 포맷

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

 

파티션 마운트

마운트는 OS가 디스크에 접근할 수 있도록 하는 작업이다

먼저 root영역인 sda2를 /mnt에 마운트한다

mount /dev/sda2 /mnt

 

나중에 사용할 efi 디렉토리를 만들고 boot에 sda1를 마운트

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

mkdir에서 -p를 안붙이면 boot가 없어서 생성이 되지 않는다

-p가 없는 경로까지 다 만드는 인자인듯 하다

 

home영역도 마운트한다

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

 

필수 패키지 설치

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

필수 패키지와 vim(또는 nano)를 설치

pacstrap은 archlinux 밖에서 사용하는 패키지 매니저다

 

파티션 정보 기록

파티션에 관련된 정보는 fstab에 저장된다

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

cat으로 확인해보자

cat /mnt/etc/fstab

 

이제 root를 바꾸어 아치리눅스에 접속해보자

arch-chroot /mnt

 

CLI이 바뀌었다

 

기타 설정

하드웨어 시간 동기화

아래 명령어로 로케일 리스트를 확인할 수 있다

ls /usr/share/zoneinfo

 

하드웨어 시간 동기화

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

시스템 로케일 설정

다음으로 시스템 로케일을 설정한다

vim /etc/locale.gen

위 파일에서 en_US.UTF-8 UTF-8을 찾아 주석을 해제한다

저장하고 닫기

 

아래 명령어로 locale를 설정

locale-gen

 

사용할 로케일 설정

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

 

호스트 설정

호스트와 pwd를 설정

echo "arch" > /etc/hostname
passwd

 

부트로더

부트로더 관련 패키지 설치

pacman -S grub efibootmgr dosfstools openssh os-prober mtools

pacman은 아치리눅스 안에서 사용하는 패키지 매니저다

 

다시 아치리눅스에서 나가 boot영역을 다시 마운트해준다

exit
umount /dev/sda1
mount /dev/sda1 /mnt/boot/efi
arch-chroot /mnt

grub이 boot영역을 efi에서 찾기 때문이라고 한다

 

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

 

arch.conf

blkid 명령어 입력

여기서 나온 sda2의 UUID PARTUUID를 메모장 같은 곳에 적어둔다

 

 

arch.conf 생성

vim /boot/efi/loader/entries/arch.conf

빈 파일에 아래와 같이 입력

title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
option root=PARTUUID=[아까 sda2의 UUID] quiet loglevel=3 rw

 

네트워크 관련 매니저를 설치한다

pacman -S networkmanager dhcpcd

관련 서비스 활성화

systemctl enable dhcpcd.service
systemctl enable NetworkManager.service

 

모든 설정이 완료되었다고 하니 재부팅을 하자

exit
umount -a
reboot

 

UUID가 없다고 한다

아 UUID가 아니라 PARTUUID를 적었어야 했다

이제 어쩌지...

 

rootfs에서 뭔가 되질 않는다

vim도 설치되어있지 않다고 하고...

 

mount /dev/sda2 /new_root

로 해결된 것 같다

PARTUUID로 /new_root에 마운트해야하는데 PARTUUID를 잘못 입력했으니...

 

이후 exit

 

로그인화면이 출력된다

다만 재부팅시 다시 오류가 뜨는걸 보아 PARTUUID를 다시 설정할 필요가 있다

 

login은 root로 아까 설정했던 비밀번호로 로그인한다

 

시발 PARTUUID 다시 설정이 안돼서 그냥 또 처음부터 다시 시작한다

arch.conf에서 Can't open file for writing 오류가 나온다

sudo라던지 !sudo tee라던지 여러가지 해봤지만 안된다

오늘도 1승

 

물론 PARTUUID말고는 바꿀게 없기 때문에 딱히 더 적을 필요는 없어보인다

다음 과정부터 적어야지...

 

사용자 계정 설정

이제 성공했다

root 계정은 너무 위험하기 때문에 사용자 계정을 만들어주자

 

useradd -m [이름]
passwd [이름]

 

추가한 계정에 sudo 권한을 부여하자

vim /etc/sudoers

User privilege specification에 있는 root 밑에 사용자 계정을 추가한다

만약 readonly 오류가 뜨면 아래 명령어로 readonly를 풀어준다

sudo bash
chattr -i /etc/sudoers
chmod u+w /etc/sudoers

 

이제 추가한 계정으로 로그인해보자

exit로 나가고 추가한 계정으로 로그인

 

대충 성공한 것 같다

다음엔 GUI를 설치해보자