CentOS (4)

우선 다음과 같이 ip link 명령을 통해 네트워크 설정을 할 대상 인터페이스명을 확인한다.

1
2
3
4
5
[root@localhost ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:f3:94:f3 brd ff:ff:ff:ff:ff:ff
cs


위와 같이 확인된 ens192라는 인터페이스(랜포트)에 네트워크 설정을 해보겠다.



1. 설정파일 확인

/etc/sysconfig/network-scripts 경로에 보면 위에서 확인된 ens192와 관련된 설정파일인 ifcfg-ens192 파일을 찾을 수 있다.

1
2
[root@localhost ~]# ls -al /etc/sysconfig/network-scripts/ifcfg-ens192 
-rw-r--r--1 root root 203 Apr  6 10:59 /etc/sysconfig/network-scripts/ifcfg-ens192
cs



2. 설정파일 수정

1
2
3
4
5
6
7
8
9
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
DEVICE=ens192
ONBOOT=yes
IPADDR=192.168.20.10
NETMASK=255.255.255.0
GATEWAY=192.168.20.1
DNS1=168.126.63.1
cs

해당 설정파일의 내용이 기본값으로 이미 작성되어 있을 수도 있다.

필요 없는 항목들은 삭제하고 위 내용 정도로만 작성해도 충분하다.

각 설정항목의 이름은 대문자로 작성되어야 하며, 항목의 값은 대/소문자를 구분하니 유의해야 한다.



3. 설정항목의 의미와 설정될 수 있는 값

3-1. TYPE

1
TYPE=Ethernet
cs

해당 인터페이스의 유형을 지정할 수 있는 항목이며 설정될 수 있는 값은 Ethernet, Wireless, Bridge, Bond 등이 있다.

일반적인 유선 LAN 인터페이스에서는 Ethernet으로 설정하면 된다.


3-2. BOOTPROTO

1
BOOTPROTO=none
cs

해당 인터페이스가 활성화 될 때 어떤 프로토콜을 사용해서 네트워크 정보를 얻을 것인지 지정할 수 있는 항목이며 설정될 수 있는 값는 none, bootp, dhcp가 있다.

none으로 설정하면 해당 인터페이스가 활성화 될 때 아무런 프로토콜도 사용하지 않으며, 그렇기 때문에 사용자가 정적(static)으로 구성한 정보만 참조하게 된다. 흔히 none 대신 static으로 지정하는 경우가 많은데 RHEL/CentOS 계열에서는 static이라는 값은 존재하지 않는 값이다. BOOTPROTO 항목의 기본값이 none이기 때문에 static이라고 입력된 값이 무시되고 그냥 none으로 적용되는 것 뿐이다.

bootp는 dhcp와 흡사한 기능을 했던, 지금은 거의 사용되지 않는 프로토콜이다.

dhcp로 설정하면 해당 인터페이스가 활성화 될 때 dhcp 서버로 부터 네트워크 정보를 가져와서 적용하게 된다.


3-3. DEFROUTE

1
DEFROUTE=yes
cs

해당 인터페이스가 기본 라우팅 경로로 사용될 것인가를 지정할 수 있는 항목이며 기본값은 yes이다.

기본값이 yes인 탓에 인터페이스가 여러 개이고, 각각의 인터페이스마다 라우팅 정보가 설정되어 있을 경우 가장 마지막 순번의 인터페이스가 기본 라우팅 경로로 지정되어 버린다. 그렇기 때문에 인터페이스가 여러 개일 경우 특정 인터페이스만 기본 라우팅 경로로 사용하고 싶다면 해당 인터페이스에만 DEFROUTE=yes로 설정하고, 나머지 인터페이스에는 DEFROUTE=no로 설정해야 한다.

인터페이서의 순번은 ip link 명령을 통해 확인할 수 있으며 가장 맨 앞 열이 인터페이스 순번을 나타낸다.


3-4. DEVICE

1
DEVICE=ens192
cs

해당 인터페이스의 디바이스명을 지정할 수 있는 항목이며 일반적으로 ip link 명령으로 확인된 인터페이스명을 그대로 설정하면 된다.


3-5. ONBOOT

1
ONBOOT=yes
cs

시스템이 부팅될 때 해당 인터페이스를 활성화할 것인지를 지정할 수 있는 항목이다.

기본값은 no이기 때문에 ONBOOT=yes로 설정하지 않으면 시스템이 부팅될 때, 또는 네트워크 서비스를 시작할 때 해당 인터페이스가 활성화되지 않는다.


3-6. IPADDR

1
IPADDR=192.168.20.10
cs

해당 인터페이스에 정적으로 IP 주소를 설정하는 항목이다.

IP 주소가 필요없을 경우(bootp, dhcp, 그 밖에) 해당 항목을 삭제하면 된다.


3-7. NETMASK

1
NETMASK=255.255.255.0
cs

해당 인터페이스에 정적으로 네트워크마스크를 설정하는 항목이다.

필요없을 경우 해당 항목을 삭제하면 된다.


3-8. GATEWAY

1
GATEWAY=192.168.20.1
cs

해당 인터페이스에 정적으로 게이트웨이 주소를 설정하는 항목이다.

필요없을 경우 해당 항목을 삭제하면 된다.


3-9. DNS1

1
DNS1=168.126.63.1
cs

해당 인터페이스에 정적으로 DNS 주소를 설정하는 항목이다.

DNS 주소를 여러 개 설정해야 할 경우 DNS2, DNS3, DNS4 식으로 추가하면 된다.

필요없을 경우 해당 항목을 삭제하면 된다.



4. 위와 같이 설정파일을 수정한 후에는 네트워크 서비스를 재시작하거나 시스템을 재부팅해야 변경된 설정이 적용된다.

4-1. 네트워크 서비스 재시작으로 적용

1
[root@localhost ~]# service network restart
cs


4-2. 시스템 재부팅으로 적용

1
[root@localhost ~]# reboot
cs






호스트명을 확인하고 변경하는 방법에는 두 가지 방법이 있다.

명령어를 사용하는 방법과 /etc/hostname 파일을 직접 조회 및 수정하는 방법.



1. 호스트명 확인

1-1. hostname 명령 사용

1
2
[root@localhost ~]# hostname
localhost.localdomain
cs


1-2. /etc/hostname 파일 조회

1
2
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
cs



2. 호스트명 변경

2-1. hostnamectl 명령 사용

1
[root@localhost ~]# hostnamectl set-hostname e-cloudlab.com
cs

→ 현재 세션(쉘)을 종료하고 재접속하면 바뀌어 있다.


2-2. /etc/hostname 파일 수정

1
2
[root@localhost ~]# vi /etc/hostname
e-cloudlab.com
cs

→ 위와 같이 변경하고 저장한 후 시스템을 재부팅해야 적용된다.



3. 호스트명 변경 후 추가 작업(권장)

3-1. /etc/hosts 파일 확인

1
2
3
[root@localhost ~]# vi /etc/hosts
127.0.0.1    localhost localhost.localdomain
::1            localhost localhost.localdomain
cs


3-2. 다음과 같이 변경된 호스트명 입력하고 저장

1
2
127.0.0.1    localhost e-cloudlab.com
::1            localhost e-cloudlab.com
cs






우선 설치 과정과 방법은 대부분 Legacy Bios에서와 동일하니 다음 글을 참조하도록 한다.


이전글 참조 : 2018/03/17 - [Linux/RHEL/CentOS] - [설치] CentOS 7.x Minimal 설치(Legacy Bios)



다만, 다른점이 좀 있다면 디스크 파티션 구성이 좀 다르다.


다음은 Legacy Bios에서의 파티션 구성이다.



다음은 UEFI에서의 파티션 구성이다.



그렇다. UEFI에서는 "/boot" 파티션 안에 "/efi" 파티션이 하나 더 구성되어야 한다.

"/efi" 파티션이 추가로 구성되지 않을 경우 CentOS 설치가 더 이상 진행되지 않으며, 설치되었다 해도 부팅 과정 중에 에러가 발생하면서 부팅이 멈추게 된다.


파티션 구성을 "Click here to create them automatically." 항목을 선택하여 자동으로 구성되도록 했다면 "/boot"와 "/boot/efi" 파티션이 자동으로 알아서 구성되었을 테지만 수동으로 구성할 경우에는 다음과 같이 구성해야 한다.



1. "+" 버튼을 클릭하여 다음 화면과 같은 내용으로 "/boot" 파티션을 생성해 준다. (마운트 포인트는 "/boot", 용량은 500~1024MB)



2. "/boot" 파티션의 파일시스템은 CentOS 7.x에서 기본값으로 사용하는 "xfs"로 설정해 준다.



3. 다시 "+" 버튼을 클릭하여 다음 화면과 같은 내용으로 "/boot/efi" 파티션을 생성해 준다. (마운트 포인트는 "/boot/efi", 용량은 200MB)

 



4. "/boot/efi" 파티션의 파일시스템은 "EFI System Partition"로 설정해 준다.



위와 같이 파티션을 구성하면 UEFI를 사용하는 최신 PC와 서버에서도 문제없이 CentOS 7.x를 사용할 수 있다.






Minimal 설치는 정말 딱 Minimal 기준의 패키지만 필요로 할 때 사용되는 설치 방식이다.

Minimal 설치 후 추가적으로 설치해야 할 패키지가 있을 경우 필요한 패키지를 외장 디스크나 USB메모리 등에 별도로 준비하여 설치하거나, 인터넷 연결을 통한 yum 설치 등의 방법을 취해야 한다. 별도로 패키지를 준비한다 해도 패키지 의존성에 의해 준비된 패키지 외에 추가적인 패키지 설치가 필요할 수도 있고, 공공기관 등 인터넷 연결이 용의치 않은 폐쇄적 환경에서는 대략 난감한 상황이 발생할 수 있으니 Minimal 설치가 적용될 PC나 서버의 정확한 용도와 환경을 파악하고 있기 전엔 함부로(?) Minimal 설치를 시도하지 않는 것이 좋다.



1. CentOS 7.x 설치 이미지(iso)를 다운로드 받는다.

필자는 빠른 다운로드를 위해 다음카카오 미러 사이트를 이용했으며, 가장 최신 버전인 7.4 버전을 다운로드 받았다.


다운로드 링크 : http://ftp.daumkakao.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso



2. 다운로드 받은 이미지를 CD, 또는 DVD 미디어로 레코딩한다.

또는, 설치 대상인 PC나 서버가 가상드라이브를 지원한다면(iLO/iDRAC 등) USB메모리 등을 이용하여 마운트한다.

Minimal 버전이라 해도 그 용량이 약 790MB나 된다. 그렇기 때문에 800MB 용량을 가진 공CD로 레코딩하거나 아예 용량이 넉넉한 공DVD에 레코딩해야 한다.



3. PC 또는 서버의 전원을 켜고 위에서 제작된 미디어를 삽입하거나 가상드라이브로 마운트한다.

이후 PC 또는 서버의 Bios 설정에서 부팅 순서를 CD-ROM이나 DVD로 우선 부팅이 되도록 설정한다.

PC나 서버 제조사에 따른 부팅 순서 변경 방법은 제조사 메뉴얼, 홈페이지 가이드, 구글 등의 검색을 통해 쉽게 찾아볼 수 있다.



4. 위 과정까지 정상적으로 진행되었다면 다음과 같은 화면을 볼 수 있을 것이다.



5. 위 화면에서 제작된 미디어나 가상드라이브로 마운트된 이미지의 결함 여부를 확인하고 싶다면 "Test this media & install CentOS 7" 메뉴를 선택하고, 확인이 필요 없다면 "Install CentOS 7" 메뉴를 선택하여 CentOS 설치 화면으로 진입한다.

필자는 빠른 진행을 위해 "Install CentOS 7" 메뉴를 선택하여 결함 여부 확인을 생략했다.

만약 결함 여부 확인을 하지않고 설치를 하다가 설치 과정 중간에 에러가 발생하게 된다면 2번 과정부터 다시 시작해야 하는 대략 난감한 상황이 발생하게 되느로 첫 제작된 미디어에 대해서는 결함 여부를 확인하고 넘어가는 것이 좋다.

Minimal 버전은 결함 여부 확인에 그리 많은 시간을 필요로 하지 않는다.



6. 잠시 기다리면 다음과 같은 화면을 볼 수 있으며...



7. 다음과 같이 설치 화면에 진입하게 된다.



8. 위 화면에서 영문 GUI로 설치를 계속 진행하려면 그냥 오른쪽 아래 "Continue" 버튼을 클릭하면 되고, 한글 GUI로 설치를 진행하려면 메뉴에서 한국어를 선택한 후 "Continue" 버튼을 클릭하면 된다. "Continue" 버튼이나 앞으로 나오게 될 "Done" 버튼의 단축키는 F12 키이다.



9. 다음과 같이 "INSTALL SUMMARY" 화면을 볼 수 있을 것이다.

가장 먼저 할 것은 "DATE & TIME" 항목을 클릭하여 시간대와 시각을 설정하는 것이다.



10. 다음과 같은 화면의 세계지도에서 한반도를 클릭하면 시간대가 "Asia/Seoul"로 적용되며 현재 날짜와 시각은 화면 아래에서 각각 설정하면 된다.

설정이 완료되었다면 왼쪽 위에 있는 "Done" 버튼을 클릭하여 이전 화면으로 돌아간다.



11. "INSTALL SUMMARY" 화면으로 돌아와서 조금 아래에 위치한 "INSTALLATION DESTINATION" 항목을 클릭하여 디스크 파티션을 설정한다.



12. 다음과 같은 화면에서 CentOS를 설치할 대상 디스크를 선택할 수 있으며, 파티셔닝 방법을 선택할 수 있다.

필자의 환경에서는 로컬 디스크 20GB 밖에 없으므로 자동으로 해당 디스크에 체크가 되어 있는 상태이다.

만약 로컬 디스크가 여러 개 장착되어 있는 환경이라면 체크를 하거나 체크를 해제해서 CentOS를 설치할 대상 디스크를 지정한다.

필요에 따라서는 "Specialized & Network Disks" 항목을 통해 SAN스토리지나 NAS스토리지의 디스크를 이용하여 CentOS를 설치할 수도 있다.

디스크 선택이 완료되었다면 "Other Storage Options" 항목을 통해 파티셔닝 방법을 선택한다.

"Automatically configure partitioning"을 선택하면 설치 프로그램이 알아서 적절한 파일시스템과 크기로 파티셔닝을 진행한다.

직접 파티셔닝을 진행하고 싶다면 "I will configure partitioning"을 선택하면 된다.

필자는 "I will configure partitioning"을 선택하였다.

왼쪽 위에 있는 "Done" 버튼을 클릭하여 다음 화면으로 넘어간다.



13. 위에서 "I will configure partitioning"을 선택하였으므로 "MANUAL PARTITIONING" 화면을 만나게 된다.

여기서 한번 더 파티셔닝 방법을 선택할 수 있다. 가장 먼저 보아야 할 부분은 볼륨 유형 선택 항목이다.

기본값은 "LVM"이며 해당 메뉴를 클릭하면 "Standard Partition", "Btrfs", "LVM", "LVM Thin Provisioning" 중 하나의 볼륨 유형을 선택할 수 있다. 일반적으로 특수한 경우가 아니고서는 "Standard Partition"과 "LVM"을 많이 사용한다.

필자는 "Standard Partition"을 선택하였다.





14. 이제 마운트 포인트별로 파티션을 나누고 적절하게 용량을 배분해 줘야 한다.

윈도우 계열로 보자면 디스크를 C:\, D:\로 나누는 것과 같은 이치이다.

일반적으로 리눅스 계열에서는 크게 세가지 파티션을 기본으로 설정한다.

리눅스 부팅에 필요한 파일이 위치하게 되는 "/boot", 일반적인 파일들이 위치하게 될 최상위 경로 "/", 가상메모리 영역인 "swap".

그 외에 필요에 따라서 "/home", "/usr", "/var" 등을 추가로 나누기도 하지만 일반적으로 "/boot", "/", "swap" 세개의 파티션만 나눠서 사용한다. 이 세 파티션을 설정하지 않고 넘어가게 될 경우 문제가 생길 수 있다는 경고창을 만나게 된다.

참고로 "swap" 파티션의 경우 메인 메모리가 부족할 때 디스크의 영역을 메모리 처럼 사용하는 가상메모리 영역이기 때문에 PC나 서버의 메인 메모리가 충분히 많다면 "swap" 파티션을 생성하지 않도 넘어가도 된다. 단, 일부 응용프로그램의 경우 무조건 가상메모리의 일부를 사용하는 경우가 있다. 이러한 경우를 대비하여 조금이라도 "swap" 파티션을 설정해 주도록 한다.

왼쪽 아래에 있는 "+" 버튼은 새로운 파티션을 생성하고, "-" 버튼은 생성된 파티션을 삭제한다. "+" 버튼을 클릭하면 화면과 같이 마운트 포인트와 용량을 설정하는 창이 나온다.



15. 비록 세개의 파티션만 설정하면 된다고 하지만 일일이 마운트 포인트를 입력하고, 용량을 정하고, 파일시스템을 지정하는 것은 귀찮은 일이 아닐수 없다. 그래서 CentOS 7.x부터는 "Click here to create them automatically."라는 항목이 생겼다.

클릭하게 되면 기본적으로 생성되어야 하는 세가지 파티션과 그 외 "/home" 정도는 자동으로 생성해 준다.



16. 다음 화면과 같이 총 20GB의 디스크를 "/boot"는 약 1GB(1024MiB), "swap"은 약 2GB(2048MiB), "/"는 나머지 용량인 약 17GB로 적절하게 배분된 파티션이 자동으로 생성되었다.

필요에 따라서 필요 없는 파티션을 삭제하거나, 파티션의 용량을 조절하거나, 파티션에 사용될 파일시스템 종류를 변경할 수 있다.

일반적으로 "/boot"는 500~1024MB면 충분하다. "swap"의 경우 "대체 얼마나 할당해야 하는가?"에 대해 여기저기 의견이 분분하지만 필자는 항상 2~4GB 정도만 설정한다. "swap"의 경우 앞서 말한대로 어디까지나 메인 메모리가 부족할 때 가상메모리로 활용하는 공간이기 때문에 메인 메모리가 부족하다면 메인 메모리를 우선적으로 증설하는 것이 올바른 조치라고 생각한다. 어마어마하게 좋아진 성능의 CPU를 상대로 굳이 느려터진 디스크를 메모리로 활용할 이유는 없다고 본다.

단, 일부 응용프로그램의 경우 "swap"을 무조건 적으로 요구하는 경우가 있으니 이 부분은 반드시 확인하여 요구되는 "swap" 용량을 할당해 주도록 한다.



17. 일반 파티션의 경우 CentOS 7.x부터는 xfs 파일시스템이 기본값으로 사용된다.

xfs 외에 ext3, ext4 등의 파일시스템을 사용하고자 한다면 파일시스템 항목의 메뉴를 클릭하여 변경할 수 있다.



18. "swap"의 경우 사용될 파일시스템을 반드시 "swap"으로 설정해야 한다는 것만 알아두도록 하자.



19. 파티션 구성이 완료되었다면 왼쪽 위에 "Done" 버튼을 클릭한다.

다음 화면과 같이 파티셔닝 작업한 내용을 보여주며 최종적으로 승인할 것인지 물어보는 창이 나온다.

"Accept Changes" 버튼을 클릭하여 파티셔닝을 완료한다.



20. 다시 "INSTALL SUMMARY" 화면으로 돌아와서 "SECURITY POLICY" 항목을 클릭한다.



21. CentOS가 설치된 후 적용될 보안설정(방화벽)을 선택하는 화면이다.

일반적으로 CentOS 설치 후 사용자 정의로 된 firewalld나 iptables 설정을 적용하여 사용하는 경우가 많기 때문에 "Apply security policy" 항목의 "ON" 버튼을 클릭하여 "OFF"로 변경해 준다.

설정이 완료되었다면 왼쪽 위에 있는 "Done" 버튼을 클릭하여 이전 화면으로 돌아간다.



22. 필요한 모든 설정이 끝났으니 "Begin Installation" 버튼을 클릭하여 본격적인 패키지 설치 화면으로 넘어가도록 한다.



23. 다음 화면과 같이 Minimal 기준의 패키지들이 설치되기 시작한다.

패키지 설치중에 "root" 계정의 패스워드를 설정할 수 있으며 필요에 따라서 그 밖에 계정들을 미리 생성하고 패스워드를 설정할 수 있다.

"root" 계정은 리눅스 계열에서 사용되는 "Administrator(최고 관리자)" 계정이다.

"root" 계정의 경우 이 화면에서 패스워드를 설정하지 않을 경우 설치과정이 완료되지 않으므로 반드시 설정해 주도록 한다.



24. "ROOT PASSWORD" 항목을 클릭하면 다음과 같이 패스워드를 설정하는 화면이 나온다.

"root" 계정에 사용될 패스워드를 입력하고 왼쪽 위에 "Done" 버튼을 클릭한다.



25. 그 밖에 계정을 미리 생성하려면 "USER CREATION" 항목을 클릭한다.



26. 생성될 계정의 "Full name", "User name", "Password"를 입력한다.

"Full name"은 일종의 별칭이라고 생각하면 되고, "User name"은 실제 사용될 계정 ID라고 생각하면 된다.

"Make this user administrator" 항목을 체크하게 되면 해당 계정이 "root" 계정의 일부 권한을 가질수 있게 된다. 정확히 말하자면 sudo 등의 명령으로 "root" 계정으로의 전환하거나, "root" 계정으로만 수행할 수 있는 작업을 간접적으로 수행할 수 있도록 하는 등의 권한을 주는 것이다.

일반적으로 리눅스에서는 보안상의 이유 등으로 "root" 계정의 로그인을 막아두고, 일반 계정으로 로그인하게 한 후 sudo 등의 명령으로 "root" 권한을 획득할 수 있도록 한다. "Make this user administrator" 항목을 체크하지 않은 경우 생성된 일반 계정은 sudo 등의 "root" 계정 권한 획득 명령을 사용할 수 없게 된다.

설정이 완료되었다면 왼쪽 위에 "Done" 버튼을 클릭하여 이전 화면으로 돌아간다.



27. 패키지 설치가 완료되었다면 왼쪽 아래 "Reboot", 또는 "Finish configuration" 버튼이 활성화 된다.

해당 버튼을 클릭하면 설치 미디어나 가상드라이브가 자동으로 마운트 해제되고 PC나 서버가 재부팅된다.



28. 다음 화면과 같이 CentOS 부팅 메뉴가 활성화 되고 잠시 기다리면...



29. 다음 화면과 같이 CentOS 로그인 프롬프트 화면이 나온다.



30. 설치 과정 중 설정한 "root" 계정 정보로 로그인해 본다.



CentOS 7.x Minimal 설치가 완료되었으니 본격적으로 CentOS를 활용하여 무언가를(?) 해보도록 하자.