r47
r41

(r39으로 되돌림)
1##@ 가능하다면 사진을 삽입해 주세요 :)
r43
2[[분류:방법]][include(틀:접근 제한, 문서명=Arch Linux/설치 방법)]
r41

(r39으로 되돌림)
3[목차]
4설치가 어려운[* 그나마 LFS처럼 빌드 노가다 지옥에 같히거나 Gentoo처럼 설치가 오래 걸리는 것도 아니니~~AUR같이 ABS 쓰다보면 젠투의 악몽이 떠오른다~~ 설치가 ~~심연에 비해~~그리 어려운 편은 아니다.]Arch Linux의 설치 방법을 정리해 두었다. [[https://wiki.archlinux.org/title/Installation_guide|최신 정보는 여기에서 확인 가능하다.]][* 한국어 번역이 처참해서 그냥 번역기 쓰는 것이 더 좋다.]
5== 쉬운 방법? ==
6쉽게 설치하려면 Archinstall를 이용하거나, EndeavourOS, Manjaro Linux같은 쉬운 설치를 지향하는 Arch 파생 베포판을 사용하자.
7
8또한 설치중 파티션을 건드려야하는 등, 잘못하면 시스템이 날아갈 수도 있으니 미리 가상머신 등에서 미리 도전해보자.[* 보안부팅은 끄자]
9== 설치 환경 부팅하기 ==
10[[https://archlinux.org/download/#download-mirrors|다운로드 주소]]
11여기서 ctrl + F로 자신이 살고 있는 나라를 검색하자.[* 사실 다른 것을 골라도 상관 없지만 속도가 느리다] 여기에서 iso 파일을 다운로드 하자. 가능하면 체크섬도 다운로드하여 파일을 검증하면 좋다. [* 파일 변조를 방지하기 위해서이다.]
12=== Windows ===
13Windows 유저라면 [[https://rufus.ie/ko/|rufus]]를 다운받아 열면 된다. 창이 뜨면 장치 항목에 usb 목록이 뜨는데 필요 없는[* iso를 적용시키기 전에 데이터를 포멧해야하기 때문] 장치를 선택하고 부트 유형 항목에서 디스크 또는 ISO 선택 (please select)를 선택 후, 오른쪽에 있는 선택 버튼을 눌러 아까 다운로드 받은 iso파일을 선택한다.
14
15확인하고 선택 후에, 시작 버튼을 누른다. 이때 파일 기반으로 할지, dd이미지 모드로 쓸 지 선택하는 창이 뜨는데, dd를 선택한다.
16
17이제 펌웨어에서 부팅 항목에서 아까 만든 USB를 선택하면 부팅이 된다.
18[[#부팅후|부팅 후에 해야할 작업은 여기를 참조해주세요]]
19=== Linux[anchor(리눅스)] ===
20~~어쩌피 다 알잖아요~~
21
22coreutils 페키지가 있어야한다.[* gnu/linux라면 대부분 다 깔려있다.]
23
24터미널 에뮬레이터 혹은 bash를 사용해 lsblk를 입력하여 USB의 블럭 디바이스 확인.[* 아마 /dev/sd* 형태일 것이다.][* 햇갈리면 직접 마운트 해보자]
25{{{#!syntax shell
26sudo dd if=<아까 받은 iso 파일> of=<블럭 디바이스 주소> bs=4M status=progress oflag=sync
27sync
28}}}를 입력하면 된다.
29
30이제 펌웨어에서 부팅 항목에서 아까 만든 USB를 선택하면 부팅이 된다.
31[[#부팅후|부팅 후에 해야할 작업은 여기를 참조해주세요]]
32=== MacOS ===
33=== FreeBSD, NetBSD등 UNIX계열 OS[* 놀랍게도 리눅스는 Unix계열이 아니다.] ===
r45
34[[#리눅스|gnu의 coreutils가 unix의 응용 프로그렘들을 모방한 것임으로 이미 필요한 도구가 설치되어있을 것이다.]]
r41

(r39으로 되돌림)
35== 인터넷 연결[anchor(부팅후)] ==
36렌선을 사용중이라면 대부분 따로 셋팅은 안해도 된다. Wifi를 사용중이라면 iwd의 iwctl을 이용하여 연결 하자.
37
38iwctl을 입력하여 iwctl을 킨 후, station list를 이용해 네트워크 디바이스를 찾은 후(대부분 wlan0이라는 이름을 갖고 있음) station <디바이스> connect[* 숨겨진 네트워크라면 connect-hidden] <wifi 이름>을 입력후, 비밀번호가 있으면 비밀번호를 입력후에 quit을 쳐서 빠져나오자.
39
r46
40ping 8.8.8.8로 인터넷 연결을 테스트 할 수 있다.[* 근데 ~~그럴 일은 없지만~~ 구글 dns서버가 터지는 경우도 있으니, 0.0.0.0같은 다른 서버에도 핑을 날려보자][* ctrl + c조합으로 종료 가능하다]
r41

(r39으로 되돌림)
41== 파티션 만들기 ==
42fdisk <설치할 장치의 경로>를 입력해 fdisk를 킨다.[* lsblk를 입력하여 참고하자]
43
r47
44기존에 있는 파티션을 줄이거나[* EFI 1G, swap은 인터넷에 검색하며 알맞은 크기를 고르고, 루트 파티션도 자신이 필요한 만큼 고르자. 그리고 그만큼 기존 파티션을 줄이면 된다.] g, [*주의 {{{#red 데이터를 초기화 시키는 방법이니, 새 하드가 아니라면 사용하진 말자. 만약 사용했더하도, q를 눌러서 빠져나오면 괜찮다. 아직 실제로 디스크에 쓰지 않았기 때문}}}](GPT, UEFI), o[*주의](MBR, BIOS) 등을 입력하여 파티션을 만들 수 있게 한다.
r41

(r39으로 되돌림)
45|__'''파티션 레이아웃 추천'''__| EFI 파티션 || 루트 파티션 || Swap 파티션 ||
46|| 약 1G || 나머지 || 자신의 램의 크기 ||
47
48n을 입력하면 파티션을 만들 수 있다. 참고로 파티션의 끝을 할 때 +1G같이 상대적인 위치를 기반으로 정할 수도 있으니 참고 또한 이때 아무것도 입력하지 않고 엔터를 누르면 최대 크기로 파티션을 만들 수도 있다.
49
50p를 눌러 알맞은 파티션 레이아웃인지 확인 후, w를 입력해 디스크에 쓰자.
51
52이러한 cli툴이 어렵다면 Windows환경에서 Win + X를 눌러 디스크 관리에서 편집하거나, Linux 그레픽 환경이라면 Gparted, TUI 인터페이스를 원하면 cfdisk[* Arch Installation Media에 내장]를 사용하는 것을 추천한다.~~fdisk 나만쓰지...~~
53== 파일 시스템 만들기 ==
54mkfs.fat -F 32 <아까 만든 1G짜리 파티션>[* fdisk에서 p를 입력 시, 경로를 확인 가능하다.]를 입력하자.[*UEFI라면 시스템이 UEFI일 시에만 이 명령어를 실행하자]
55
56mkfs.swap <스왑 파티션 주소>를 입력해 SWAP 파티션을 포멧한다.
57
58mkfs.ext4 <루트 파티션>을 입력해 루트 파티션을 포맷하자.[* Windows와의 호환을 원한다면 fat계열 혹은 ntfs로 포멧도 고려해보자 ~~둘다 마소에서 만들었거든... fat은 빌게이츠가. 무려.~~]
59== 파일 시스템 마운트 ==
60mount /mnt <루트>
61mount /mnt/boot <EFI 파티션> --mkdir[*UEFI라면]
62swapon <swap 파티션>
63== pacstrap ==
64pacstrap -K /mnt base linux linux-firmware
65라는 명령어로 기본적인 페키지를 설치한다.
66== fstab ==
67genfstab -u >> /mnt/etc/fstab
68Fstab은 부팅 작업중에 디스크를 마운트 할 때 참조되는 파일인데, 결함이 있거나 없으면 부팅시 emergency 모드로 진입하니 주의.
69== chroot ==
70arch-chroot /mnt를 입력해 아까 설치한 아치리눅스에 진입하여 더 많은 작업을 해준다. chroot를 안 쓰는 이유는 arch-chroot는 dev(ice), proc(ess)등 가상 파티션을 한꺼번에 마운트해주기 때문.
71
72먼저 필요한 페키지를 설치한다.
73pacman -S vim bash-completion less sudo grub[*멀티부트] os-prober[*멀티부트] iwd(wifi) dhcpcd efibootmgr(UEFI)
74 * vim 텍스트 에디터. 익숙하지 않으면 nano 쓰는 것을 추천한다.
75 * bash-completion tap눌러서 명령어 자동완성 해주는 그거 맞다.[* bash 싫으면 zsh + ohmyzsh도 좋다]
76 * less cli 환경에서 유용하게 쓰인다. 너무 길어서 stdout이 잘리는 프로그렘 옆에 cat a.txt | less처럼 파이프라인을 연결해서 활용이 가능하다.
77 * sudo ~~Suit Up and DO~~ 권한상승 프로그램 최근에 보안 취약점이 발견되서인지는 몰라도, rust로 만든 sudo-rs가 나왔다.
78 * grub 멀티부팅 지원 부트로더. 멀티부팅 안할거면 LILO[* MBR], SystemDboot도 나쁘지 않은 선택. 이쁜 테마그 많다.
79 * os-prober 멀티부팅 시, grub 설정을 더 편하게 만들어주는 프로그렘
80 * iwd wifi 쓸 시 필요. networkmanager라는 대채품이 있다.[* plasma 쓸 예정이라면 iwd 대신 이걸 쓰자] dhcpcd랑 같이 쓰는 것을 추천한다.
81=== 부트로더 ===
82==== GRUB ====
83UEFI의 경우:
84grub-install --efi-directory=/mnt/boot
85레거시의 경우:
86grub-install --boot-directory=/mnt/boot
87
88usr/bin/grub-mkconfig를 편집하여 GRUB_DISABLE_OS_PROBER를 false로 바꾸고
89
90grub-mkconfig -o /boot/grub/grub.cfg를 실행하여 설정 파일을 만든다.
91==== SystemD boot ====
92bootctl install
93따로 뭐 설치할 필요가 없다.
94=== 나머지 ===
95/etc/hostname를 수정해 컴퓨터 이름을 정하고[* 기본은 Archlinux]
96
97passwd를 사용하여 루트의 비번을 바꾸고
98
99systemd enable로 dhcpcd, iwd 등등 여러 서비스를 활성화 한 후, exit을 입력해 빠져나온다.
100== reboot ==
101이제 설치가 완료되었으니 다시시작을 해서 아치리눅스로 부팅하자. [* ctrl + alt + del 혹은 reboot 명령어 입력]
102== 기본 셋팅 ==
103=== 유저 추가 ===
104루트로서 시스템을 운영하는 것은 큰 위험이 따르며, 임베디드 시스템 같은 특수한 경우가 아니라면 쓰지 않는 것을 추천한다. (또한 makepkg는 root로서의 실행을 거부) 이러한 문제를 해결하기 위해 사용자를 추가하고, 권한이 필요한 경우는 sudo를 사용하는 등 임시로 root로서 명령어를 실행하는 등의 사용이 추천된다.
105useradd -m <유저 이름>를 사용해 유저를 만들어 준다.
106
107passwd <유저 이름>을 사용하여 유저의 비번을 바꾼다.
108
109
110EDITOR=<vim, nano 등등> visudo를 입력하여 sudo 설정을 편집한다.
111
r44
112<유저 이름> ALL=(ALL:ALL) ALL를 추가해주면 된다.[* 비밀번호 입력이 귀찮으면 ALL=(ALL:ALL) NOPASSWD:ALL를 추가해주면 된다.]
r41

(r39으로 되돌림)
113=== YAY ===
114[[Arch Linux#s-5.3.1|여기 참고]]
115=== GUI ===
116리눅스 환경에서 한글을 쓰려면 그레픽 환경이 (거의)필수적이다.[* jfbterm등을 쓰면 유니코드를 볼 수 있다. 근데 처다리 이런거 쓸 바에 X랑 Xterm(터미널 에뮬레이터) 같이 사용하는게 더 나은게, 둘이서 하는 것이 비슷하지만 X가 기능이 더 많고 윈도우 메니저도 있고 한글 입력도 되고 리눅스의 모든 GUI프로그렘이 X를 사용한다는 전제 하에 만들어졌기 때문이다. ][* 프레임버퍼 터미널 에뮬레이터랑 libhangul 등을 써서 (그나마) 쉽게 한글 입력을 구현할 수도 있다. ~~참 쉽죠?~~] 디스플레이 서버로는 Xorg, Wayland정도가 있고, Desktop Environmant로는 plasma, Xfce, gnome, cinnamon, i3(wm) 등이 있다.(사실 DE 없이 Xorg 하나만 써도 된다.)
117==== 한글 입력(Xorg) ====
118한글 입력은 ibus, ibus-hangul을 많이쓴다. 옛날에 Wayland 환경에서는 특정 프레임워크를 쓰는 엡에서는 입력이 힘들었었다.
119
120Pacman으로 ibus와 ibus-hangul을 설치 후, .xprofile[* ~/.xprofile]을{{{
121export GTK_IM_MODULE=ibus
122export QT_IM_MODULE=ibus
123export XMODIFIERS=@im=ibus
124ibus-daemon -drx}}}로 수정 후 다시 로그인 한다.[* 인터넷 보면 .bashrc에 넣으라는 말도 많이 보이는데, 셸을 bash를 쓰지 않으면 먹통일 뿐더러 X환경에 진입 후에도 어찌어찌 터미널을 켜서 bash를 켜야지 된다. .xinitrc에 넣어도 딱히 상관 없다.]
125==== Plasma ====
126sudo pacman -S plasma
127
128sudo systemctl enable sddm[* 컴터 시작시 자동실행][* sddm이 싫으면 대안으로 lightdm을 사용 가능하다. sddm, lightdm은 로그인 화면이라 생각하면 된다.]
129sudo systemctl start sddm으로 로그인 화면을 띄운다.
130
131처음 plasma를 키면 한국어가 tofo로 표시될텐데, 그냥 인터넷에서 달무리, 네이버 나눔고딕코딩 등 한글 지원 폰트를 다운받아서 쓰면 된다.--뭐여 내 맑은고딕 돌려줘요--[* ms거다.]
132==== i3 ====
133[[https://i3wm.org/docs/userguide.html#_opening_terminals_and_moving_around|사용설명서]]
134진짜 간단한 윈도우 메니저. 너무 극단적으로 단순간단하여 가볍기로 소문난 xfce보다 가볍다 ~~근데 심각하게 못생겼고, 조작에 약간(?)의 제약이 있다. 그래서 gui에서 쓰는 사치가 싫은 사람에게 추천~~
135
136sudo pacman -S xorg i3-wm dmenu
137
138그리고 sddm, gdm, lightdm중 하나를 깔아준다 ~~사실 i3쓸정도면 lightdm을 쓰는 것을 추천한다.~~
139
140dmenu가 있어야 한다. 없으면 엡을 실행할 수 없기 때문이다(...)
141
142서비스를 키고 i3 세션을 선택한다.
143==== Xfce ====
144가볍기로 유명한 테스크톱 환경.~~극한의 i3은 못이긴다!~~
145
146pacman -S xfce4 xfce4-goodies[* 여러 유틸리티]
147를 이용해 xfce를 설치한다.
148
149~~startxfce4를 실행해 상남자답게 xfce를 실행한다.~~~/.xinitrc 마지막줄에 exec startxfce4를 삽입한 뒤에 startx를 입력하여 실행하거나, lightdm등을 깔아서 쉽게 쓸 수 있다.