먼저 Ubuntu Server의 iso 이미지를 다운로드 받아서 Oracle VirtualBox에 가상 머신을 만들었다.

설치 방법 및 기본 설정은 이전 게시글에 있으니 링크를 걸어둔다. 하지만 이번 실습에선 아래 글과 같이 하나하나 설정하지 않고 대부분 기본 설정으로 빠르게 만들었다. 또한 네트워크 인터페이스 카드도 NAT 하나만 설정했다.

 

https://yoonhoji.tistory.com/3?category=1042734 

 

210817 - 첫 수업 / 가상화 프로그램과 우분투 리눅스 설치

가상화 프로그램은 HostOS 위에서 GuestOS를 실행시켜 동시에 여러개의 OS를 사용할 수 있게 해주는 프로그램이다. Megazone Cloud에서 제공해 준 랩탑은 Windows 10 환경이며, 여러 가상화 프로그램 중 무

yoonhoji.tistory.com

 


Configure Ubuntu Server

먼저 인터넷 연결을 확인한다.

sudo apt update

 

NetworkManager를 설치한다.

sudo apt install -y network-manager

sudo systemctl status network-manager

 

포트 포워딩 적용을 위해 위에 첨부한 글을 참고해 설정해준다.

포트포워딩 & NAT Network 설정

 

시스템 설정 파일인 yaml 파일을 백업해둔다.

cd /etc/netplan

sudo cp 00-installer-config.yaml 00-installer-config.yaml.bak

 

sudo nano 00-installer-config.yaml

두 칸씩 들여쓰기에 주의하며 yaml 파일에 고정 IP 주소를 할당한다. 수정을 완료했다면 Ctrl+O로 덮어쓰고, Ctrl+X로 nano editor를 빠져나가면 된다.

 

sudo netplan try

(Enter)

sudo netplan apply

sudo systemctl stop network-manager

sudo systemctl start network-manager

sudo systemctl stop network-manager

sudo systemctl start network-manager

 

NetworkManager를 몇 번 재부팅 해 주고 난 뒤 인터넷 연결을 확인하기 위해 업데이트를 해본다.

sudo apt update

만약 여기서 인터넷 연결이 안 되었다고 나온다면 게이트웨이로 핑을 쳐 봐야 한다.

ping 10.0.2.1

ping 10.0.2.2

ping 10.0.2.3

이 정도로 확인해보면 첫 번째는 연결이 안 될 것이고 2번이나 3번에 핑이 닿는다면 아까 정적으로 IP 주소를 할당해 주었던 단계로 돌아가서 gateway4 부분을 수정해주고 이후의 과정을 수행하고 난 뒤 다시 업데이트를 해 본다.

sudo apt update

 

인터넷 연결이 정상적으로 되었다면 hostname을 수정한다.

cd $HOME

sudo nano /etc/hostname

위와 같이 설정하고 저장한다.

 

sudo nano /etc/hosts

위와 같이 두 번째 줄의 hostname을 변경하고 저장한다.

 

그리고 핑을 쳐서 호스트 네임이 정상적으로 인식되고 있는지 확인한다.

 

Client Tool로 접속하기 위해 SSH를 설치한다.

sudo apt install -y openssh-server

 

HOST를 잡아준다.

export HOST=docker-ubuntu

 

Firewall 설정은 생략했다.

 

그리고 클라이언트 툴(XShell, putty, SecureCRT 등)으로 접속한다.

127.0.0.1:105


Install Docker Engine

우분투 서버 환경 구성은 완료됐고 이제부터 Docker Engine을 설치한다.

 

Install Docker Engine on Ubuntu | Docker Documentation

 

Install Docker Engine on Ubuntu

 

docs.docker.com

아래 정리한 명령어들은 위의 문서에서 그대로 가져온 것이다.

복사, 붙여넣기로 진행하는 것을 추천.

 

 

sudo apt-get update 

sudo apt-get install ca-certificates curl gnupg lsb-release

 

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

sudo apt install docker-ce docker-ce-cli containerd.io

sudo systemctl status docker

sudo docker version

sudo docker run hello-world

 

Lab 1 - Ubuntu, Git in Docker Container

아래 이미지와 같이 Base Image로 Ubuntu Server를 Pull & Run하고 그 Ubuntu 위에 Git을 Install 한다.

sudo docker pull ubuntu

sudo docker image ls

 

Run 명령어로 Pull 까지 한 번에 한다.

sudo docker run -it --name git ubuntu:latest bash

(i : Interactive, t : Tty)

 

apt update

apt install -y git

git --version

exit (도커 프로세스 종료)

 

sudo docker ps -a

 

sudo docker commit git ubuntu:git

sudo docker images

 

sudo docker run -it --name git2 ubuntu:git bash

git --version

exit

 

sudo docker rm git2

sudo docker rm git

sudo docker rm 7e1 (CONTAINER ID의 앞 3자리)

 

Lab 2 - Nginx Web Server in Docker Container

(관리자 로그인)

su -

 

docker search nginx

docker pull nginx

 

이미지 레이어 확인하기

cd /var/lib/docker/overlay2

ls -l

Nginx는 총 6개의 레이어로 이루어져 있음을 알 수 있다 (l은 디폴트).

 

Nginx를 Run해서 메모리에 프로세스로 올려 Container로 만든다.

docker run -d --name webserver -p 80:80 nginx:latest

 

이제 실제 OS인 Windows에서 브라우저를 열고 192.168.56.100:80으로 접속하면 Nginx 웹 서버가 나온다.


파일의 종류

- : 일반 파일

d : 디렉토리 파일

b(block device) : 플로피 디스크, 하드 디스크 등의 장치 파일

c(character device) : 마우스, 프린터 등 입출력 장치 파일

l(link) : 바로가기 파일


몇 가지 파일 명령어

mkdir

디렉토리 생성 명령어

-p(parent) 옵션 : 생성하려는 경로의 상위 디렉토리가 없으면 한꺼번에 전부 만든다.


cd [argument]

절대경로 : 어디서나 접근할 수 있다 : cd /

상대경로 : 현재 위치 기준으로 접근한다 : cd ../../../..

상황에 알맞게 사용해야 한다.


rmdir [option] [argument]

반드시 해당 디렉토리가 비어 있어야만 지울 수 있다.

-p 옵션 : rmdir aaa/bbb/ccc 다 지운다.


rm [option] [argument]

이 명령어로 파일 및 디렉토리를 삭제하는 경우가 더 많다.

삭제를 진행할 경우 복구하기 어렵다.

-i(interactive) 옵션 : 삭제 전 한 번 더 확인한다.

-f(force) 옵션 : 강제로 삭제한다.

-r 옵션(recursive) : 디렉토리 내의 파일까지 모두 삭제하기 위해서 사용하는 중요한 옵션

(디렉토리 내부를 순회하면서 하나씩 삭제하는 원리)


cp [option] [argument1] [argument2]

원본과 복사할 파일(타겟)을 모두 지정해주어야 한다.

-r 옵션(recursive) : 디렉토리 내의 파일까지 모두 복사하기 위해서 사용하는 중요한 옵션

(디렉토리 내부를 순회하면서 하나씩 복사하는 원리)


mv [option] [argument1] [argument2]

이동과 이름변경 두 가지 기능이 있기에 사용하기 전에 잘 생각해야 한다.

mv date.txt now.txt : 두 아규먼트의 레벨이 같으므로(둘 다 파일) 이름 변경이 이루어진다.

mv Temp Temp1 : 디렉토리의 이름 변경.

mv now.txt Temp1 : argument1은 파일, argument2는 디렉토리이므로 이동.


chmod [option] [argument]

보안의 기초로,

r(read), w(write)(삭제 권한 포함), x(execute) 3가지의 속성으로 권한을 제한한다.

그룹별로 지정하기에 용이함.

 

파일 상세정보에서

-rwxrwxrwx

이런 식의 포맷을 확인할 수 있으며 앞의 문자 하나는 파일의 종류를 나타내고, 이후로 3글자씩 끊어서 읽는다.

첫 번째는 파일의 소유주, 두 번째는 소유주 그룹, 세 번째는 일반인이다.

 

2진수를 10진수로 치환해서

rw- r-- r-x

110 100 101

6    4    5

이렇게 표기할 수도 있다.

chmod 744 sample.txt : 소유주는 rwx 모두, 소유주 그룹은 r--, 나머지는 r-- 이다.

 

u(user), g(group), o(other), a(all) 4가지 속성으로 r, w, x 권한을 빼거나 추가할 수 있다.

chmod o+x sample.txt : 일반 사용자에게 실행 권한을 추가한다.


ln [option] [argument1] [argument2]

링크의 종류에는 hard link와 symbolic link가 있다.

 

hard link는 i-node(주민번호)까지 똑같이 복제한 파일이다.

또한 원본이 수정되면 같이 수정된다.

원본이 삭제되어도 그대로 사용 가능하다.

ln data.txt clone.txt

 

symbolic link는 원본 파일로 연결되는 바로가기 파일이다.

파일명만 같으면 기존 파일이 삭제되고 다른 파일이 생겨도 그 곳을 가리킨다.

원본이 삭제되면 사용할 수 없게 된다.

ln data.txt -s twin.txt


wc [option] [argument]

Word Counter.

 

-l 옵션 : 라인 수

-w 옵션 : 단어 수

-c 옵션 : 바이트 수

-m 옵션 : 문자 수


sort [option] [argument]

파일의 내용을 소팅해서 보여준다.


cmp [option] [argument1] [argument2]

두 파일의 차이점을 보여준다.

업그레이드 버전이 diff 명령어.

 


vsftpd(Very Secure FTPD) 서버와 FileZilla 클라이언트 설치

포트 포워딩 룰 추가.

이름바꿔 복제.

$ sudo nano /etc/netplan/00-installer-config.yaml

114로 수정한다.

try, apply 절대 하지 말고 IP 변경하면 바로 리부트.

PuTTY에서 설정 후 세이브.

접속이 잘 되고 IP가 바뀌었다.

윈도우즈 커맨드에서 Host-Only IP로 핑 날리기.

FTP 서버 설치 준비가 끝났다.

$ sudo apt update

$ sudo apt install -y vsftpd

다음 설정 파일을 나노 에디터로 열어 수정해 줄 것이다.

25라인: anonymous_enable=NO -> YES

31라인: #write_enable=YES -> 주석 제거

40라인: #anon_upload_enable=YES -> 주석 제거

44라인: #anon_mkdir_write_enable=YES -> 주석 제거

$ sudo systemctl restart vsftpd

$ sudo systemctl enable vsftpd

$ sudo systemctl status vsftpd

$ cd /srv/ftp

$ sudo mkdir pub

$ sudo chmod go+w pub

 

익명으로 접속되는 디렉터리는 /srv/ftp 이다.

pub 디렉토리를 생성하고 모든 사용자의 모든 권한을 허용했다.

$ touch today.txt

write 권한이 others에게도 생겼기 때문에 sudo 없이도 가능하다.

FTP 서버의 전용 회선인 21번 포트를 연다(하지만 이후 연결이 되지 않아 아예 방화벽을 비활성화했다).

FileZilla Client를 설치한다.

맨 왼쪽의 것을 다운로드한다.

설치 후 셋업 파일을 실행하고 Next로 쭉 진행한다.

Desktop Icon은 유용하기에 추가로 체크해줬다.

호스트 IP와 사용자명을 입력, 비밀번호는 아무거나 입력하고 빠른 연결을 클릭한다.

포트 넘버는 생략해도 디폴트가 21이기에 넣지 않아도 상관없다.

아까 잠깐 언급했듯이 연결이 잘 되지 않아 방화벽 자체를 disable 시켜버리니 연결이 되었다.

파일을 업로드 할 때는 왼쪽에서 오른쪽으로 드래그해서 올리면 된다.

 

FTP 환경 구축 완료.


MySQL 환경 구축

포트 포워딩 룰 추가 및 가상머신 복제.

IP 수정 후 try, apply 하지 말고 $ sudo init 6

PuTTY 설정

변경된 IP 확인 및 HostOS에서 핑 날려보기.

설치 준비 완료.

$ sudo apt update

$ sudo apt install -y mysql-server

$ sudo mysql_secure_installation

 

비밀번호 확인 플러그인 허용 : y

비밀번호 안전도 : 0

[8자리 패스워드 입력]

[패스워드 재입력]

루트 비밀번호 변경 : n

익명 사용자 삭제 : n

원격 연결 제한 : n

테스트 DB 삭제 : n

권한 테이블 새로고침 : y

$ sudo mysql -u root -p

[비밀번호 입력]

SELECT VERSION();으로 버전 확인 후 exit.

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 127.0.0.1로 된 것을 주석친다.

(로컬호스트에서만 접속 가능하게 하는 옵션이기 때문에 원격지에서 접속하기 위해서)

CREATE USER 'root'@'%' IDENTIFIED BY 'P@$$W0rd';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

 

root 계정을 새로 만들어야 원격지 접속이 가능하다고 해서 새로 만들고 권한을 준다.

$ sudo systemctl restart mysql

$ sudo ufw allow 3306/tcp

이제부터 DB 서버에 연결할 클라이언트를 준비할 것이다.

HeidiSQL 사이트에 접속해서 클라이언트 툴은 다운로드한다.

동의 사항 동의해주고 기타 등등 Next.

설치 후 restart는 하지 않았다.

좌측 하단 '신규' 클릭 후 오른쪽 화면처럼 설정을 한다.

암호는 PuTTY에서 설정했던 'P@$$W0rd' 로 하면 된다.

HeidiSQL로 MySQL Database 접속에 성공한 모습.


Virtualization(가상화)

물리적인 하드웨어 장치를 논리적인 소프트웨어 장치로 추상화하는 것.

 

가상화 방법

1. Host 가상화

2. HyperVisor 가상화 : VirtualBox, VMWare, VirtualPC

3. Container 가상화

 


오늘을 끝으로 우분투 리눅스 기초를 공부했고

내일부터 네트워크와 보안 솔루션에 대해 공부한다.

물론 리눅스는 계속 사용하며 공부한다.


SSH 연결 안 될 때 확인 사항

1. $ sudo ufw status

2. $ sudo systemctl status ssh

3. Hyper V 실행 여부


Ubuntu Server에 Host-Only 이더넷 설정

Ubuntu Desktop에 Host-Only 설정할 때와 같이

두 번째 이더넷 어댑터를 켜주고 호스트 전용 어댑터로 설정한다.

 

$ cd /etc/netplan 으로 들어와서

$ sudo cp 00-installer-config.yaml 00-installer-config.yaml.bak

으로 백업본 만들기(기존 백업본이 있다면 제거 후).

$ sudo nano 00-installer-config.yaml

nano 에디터를 통해 이더넷 설정 내용 추가

(Host-Only라서 DNS는 필요치 않음.)

cat으로 확인 후

$ sudo netplan try

$ sudo netplan apply

$ sudo systemctl stop network-manager

$ sudo systemctl start network-manager

$ sudo systemctl stop network-manager

$ sudo systemctl start network-manager

ip a를 쳐보면 정상적으로 고정 ip가 설정되었음을 확인 가능하다.

Windows 커맨드에서 핑을 쏘아보았다.


&&, || 함께 쓰기

시험 삼아 해 봤는데 if~else문처럼

명령어 && echo "Success" || echo "Failed"

이런 식의 사용이 가능하다.


$PS1

현재 프롬프트 표시

 

\u@\h:\w\$

username@hostname:working directory$

yoonho\@ubuntu-server:~$

 

원하는 대로 프롬프트를 설정할 수 있다.

PS1='\d \t > '

이런 식으로 하면 이후엔 프롬프트가

Tue Aug 24 11:24:12 >

이렇게 나온다.

 

Secondary Prompt

\(역슬래시)를 긋고 이어서 명령어를 입력할 때 나오는 프롬프트이다.

 

PS2='\h, \t > '

이렇게 하면

ubuntu-server, 11:26:39 >

이런 식으로 프롬프트가 나오게 된다.

 

* 앞에 export를 붙이면 .profile 파일에 저장이 된다.

환경설정 파일에 저장하지 않으면 로그아웃 시 초기화 된다.

 

.profile = 현재 사용자 전용 프로필

/etc/profile = 모든 사용자에게 적용

 


Apache Web Server 구축

기존의 우분투 서버를 이름만 바꿔 복제한다.

PuTTY에서 임시적으로 127.0.0.1:50107 로 타고 들어와서 두 이더넷 어댑터의 IP의 4번째 옥텟들을 변경한다.

변경 후에 try, apply 등 하지 않고 reboot한다.

VirtualBox 관리자 환경설정에서 포트 포워딩 설정에 들어온다.

apache-web-server에 대한 포트 포워딩 룰을 만든다.

108에 맞추어 PuTTY에서 Apache Web Server 프리셋을 하나 더 만들고 접속한다.

ip를 확인해보면 아까 reboot할 때 자동으로 적용이 되어 108이 된 모습이다.

윈도우즈의 커맨드에선 10.0.2.108로 핑을 때릴 수가 없기 때문에

Host-Only 네트워크인 192.168.56.108로 핑을 때려본다.

화면에 안 나왔지만 $ sudo apt update 먼저 하고 $ sudo apt install apache2 를 한다.

웹 서버 접속을 위해 80번 포트를 열어준다.

방화벽까지 열어주고 나면 웹 브라우저에서 IP 입력 시 기본 html 페이지로 접속이 된다.

여기서 프로토콜인 http:// 와 포트번호인 :80은 생략이 되어서 IP만 입력한다.

 

이 페이지는 apache에서 제공하는 기본 페이지이고,

이 화면은 /var/www/html 경로의 index.html 파일이므로 수정도 가능하다.

$ cd /etc/apache2

$ sudo nano -c apache2.conf

화면엔 -c 옵션이 안 나와있는데 이걸 해야 라인 수를 파악하기 편하기 때문에 해야 한다.

170라인의 <Directory /var/www/> 를 주석치고

그 밑에 <Directory /WebHome> 을 작성한다.

원래 /var/www/ 였던 html 디렉토리의 경로를 /WebHome으로 바꾸는 작업이다.

(현업에선 이렇게 한다고 한다.)

저장과 나가기를 한 후에

$ cd sites-available

$ sudo nano -c 000-default.conf

9번째 라인의 주석을 풀고 서버네임을 www.naver.com으로 바꾼다.

서버 어드민도 naver.com으로 바꾸고

DocumentRoot /var/www/html을 주석치고 DocumentRoot /WebHome으로 바꿔 경로를 읽도록 한다.

$ sudo systemctl restart apache2

$ sudo systemctl enable apache2

$ sudo systemctl status apache2

이제 아까 경로에 박아놨던 WebHome 디렉토리를 실제로 만든다.

디렉토리를 만들고 원래 위치에 있던 html파일을 복사해 넣는다.

 

Apache Web Server 설정 끝.


Local DNS

C:\Windows\System32\drivers\etc 경로의 hosts 파일을 연다.

이 파일이 도메인 네임 입력 시 최우선으로 확인하는 곳인데

이 곳에서 해당 도메인에 대한 IP를 발견하지 못하면 한국 DNS로 넘어가서 IP를 받아오는 것이고

이 파일에서 192.168.56.108 www.naver.com

이런 식으로 설정을 해주면 웹 브라우저에서 www.naver.com 입력 시 내 서버로 접속이 된다.

 

주의할 점은 .txt 파일이 되어버리면 안되며, 윈도우즈에서 기본적으로 수정을 할 수 없도록 락을 걸어놨기 때문에

파일을 수정해서 외부에 다른 이름으로 저장을 하고, 그 파일의 확장자명을 강제적으로 없앤 뒤

원래의 C:\Windows\System32\drivers\etc 경로에 덮어써버리면 된다.


Nginx Web Server 구축

설정 과정은 Apache Web Server랑 거의 같다고 보면 되기 때문에

대충 생략하며 일부 과정만 스크린샷으로 남길 것이다.

 

Apache와 Nginx의 가장 큰 차이점은

Apache는 서버에 리퀘스트가 들어오기만을 기다리면서 다른 일을 하지 못하지만

Nginx는 다른 작업을 수행하면서 서버에 리퀘스트가 감지되면 그때그때 리퀘스트도 처리한다는 점이다.

 

Apache는 편의점 문이 조용히 열리는 문이어서 알바생이 24시간 내내 손님이 오나 문만 보고 있어야 하는 것이고

Nginx는 편의점 문에 종이 달려 있어서 청소 등 다른 일을 하다가도 손님이 오면 그에 맞춰 응대를 할 수 있는 것이다.

PuTTY로 접속해서 IP 변경.

마찬가지로 try, apply 등 하지 않고 reboot.

포트 포워딩 룰 추가.

윈도우즈에서 112번으로 핑 날려보기.

PuTTY로 로그인한다.

업데이트 후 Nginx 설치를 진행한다.

$ sudo systemctl restart nginx

$ sudo systemctl enable nginx

$ sudo systemctl status nginx

 

enable 시에 서비스이름.service 파일이 생성된다.

Web Server 전용의 80번 포트 열기.

192.168.56.112에 성공적으로 접속됨.

nginx의 index 페이지 파일 또한 /var/www/html에 있으니 임의로 수정할 수 있다.

$ sudo nano /etc/nginx/sites-available/default

파일에 들어가서 설정을 해주어야 한다.

위는 IPv4, 아래는 IPv6인데 둘 다 포트 넘버를 80 -> 8080으로 변경한다.

Apache Web Server가 이미 80번 포트를 쓰고 있어서 겹치면 안 되기 때문.

아래 쪽으로 내려서 root /var/www/html; 를 주석치고

root /WebHome; 을 넣는다.

 

서버네임도 www.kakao.com; 으로 바꾼다.

설정한 8080포트를 방화벽에서 열어준다.

아까의 hosts 파일에서 또 한 번 Local DNS를 사용해본다.

www.kakao.com:8080 으로 접속이 되는 모습.

 

 


요약

1. 가상머신을 복제한다.

2. IP를 변경한다(reboot).

3. 포트 포워딩 룰을 추가한다.

4. PuTTY에서 프리셋을 만든다.

5. 아파치 혹은 엔진엑스를 설치한다.

6. 포트 방화벽을 열어준다(80 or 8080).

7. /var/www/html 경로의 index.html 파일을 수정해본다(필수 아님).

8. /etc 쪽 경로에서 각종 파일을 설정한다.

9. restart, enable, status 삼총사를 실행한다.

10. WebHome 디렉토리 생성 후 index.html을 복사해 넣는다.

가상화 프로그램은 HostOS 위에서 GuestOS를 실행시켜 동시에 여러개의 OS를 사용할 수 있게 해주는 프로그램이다. Megazone Cloud에서 제공해 준 랩탑은 Windows 10 환경이며, 여러 가상화 프로그램 중 무료로 사용 가능한 VMWare의 VirtualBox를 통해 CANONICAL 사에서 Linux 기반으로 개발한 Ubuntu Desktop을 설치한다고 한다. 강사님이 Ubuntu Desktop과 Ubuntu Server 두 가지가 있다고 하시는데 내가 아직 잘 모르기 때문에 그 부분은 추후에 정리하기로 하고 일단 설치와 셋업을 진행해보자.


www.virtualbox.org  주소로 들어가면 나오는 화면. 큼지막한 다운로드 버튼을 클릭해준다.

VirtualBox 6.1.26 platform packages에서 본인의 OS에 맞는 것으로 선택해 다운로드한다. 

또한 VirtualBox 6.1.26 Oracle VM VirtualBox Extension Pack에서 OS에 구애받지 않는 확장팩도 다운로드한다.

다운로드한 exe파일을 실행하면 VirtualBox Setup이 시작된다. 설치 경로, 설치 옵션 등을 원하는대로 선택한 후 설치를 끝낸다.

Extension Pack도 설치가 완료되었다.

바탕화면에 생긴 VirtualBox 아이콘을 눌러 실행시키면 나오는 초기화면이다. 파일 -> 환경설정으로 들어간다.

여기서 일반, 입력, 확장 이 3가지 부분을 세팅해 줄 것이다.

기본 머신 폴더의 경로를 지정해 줄 것이다. 가상 머신(ex Ubuntu, CentOS...)을 인식할 기본 위치인데, 가상화 프로그램을 포토샵 프로그램이라고 가정했을 때 이 가상 머신은 .psd 파일이 된다. 가상화 프로그램에서 가상 머신 파일을 실행시켜 GuestOS를 동작시키는 것이다.

C 드라이브에 새 폴더인 My Virtual Machines를 만들어 준 후에 그 위치를 잡아준다.

다음은 입력 설정이다. 가상 머신 탭으로 이동한 뒤 '호스트 키 조합'에 대응하는 키를 확인한다.

기본값은 Right Control로 되어 있을 것이다. 우리 교육 과정에서는 데스크탑과 별도의 키보드가 아닌 랩탑을 사용하기 때문에 Right Control 키가 없어 따로 재지정해주게 되었다. 강사님 말씀으로는 잘 안 쓰이는 키를 사용하는 편이 충돌을 막을 수 있다고 하신다.

확장 설정이다. 오른쪽에 작게 보이는 +버튼을 클릭한다.

아까 다운로드한 Extension Pack 파일이 잡힐 것이다. 이걸 선택해서 열기버튼을 누르면 된다.


가상화 프로그램 설치는 끝났으니 실행할 파일인 우분투를 다운로드 해야 한다.

www.ubuntu.com 에 접속하여 Download -> Ubuntu Desktop -> 20.04 LTS 를 클릭한다.

잠시 기다리면 다운로드가 시작된다. 용량이 어느 정도 있어서 설치에 시간이 좀 걸릴 것이다. iso 확장자명은 디스크 이미지를 말하는데 CD와 비슷한 개념이라고 생각하면 될 것 같다.

우분투 디스크 이미지의 다운로드가 완료되면 아까 설정을 마친 VirtualBox의 툴바에서 '새로 만들기'를 클릭한다.

머신 폴더는 아까 잡아둔 경로로 잡힐 것이고, 이름과 종류, 버전을 설정하면 되는데 이런 식으로 이름에 핵심 키워드가 들어오면 종류와 버전에서 자동으로 인식을 해 준다.

Ubuntu Desktop에 할당해 줄 메모리 크기이다.

우리 과정에선 지급받은 랩탑의 RAM이 16GB이므로 여유있게 4GB로 잡았다.

'만들기' 클릭

VirtualBox를 사용하고 있으므로 VDI로 선택하고 진행한다.

예를 들어 가상 하드 디스크의 크기를 100GB로 설정할 경우 '동적 할당'을 사용하면 초기에는 용량을 적게 잡아 먹고, Ubuntu Desktop에 프로그램, 파일 등이 설치됨에 따라 그만큼 늘어나는 용량을 가변적으로 커버해서 맥시멈 100GB까지 늘린다는 뜻이다. '고정 크기'는 말 그대로 시작부터 100GB를 할당해 주어서 용량이 많이 차기 전까지는 단편화(용량 낭비)가 많이 생긴다고 볼 수 있겠다.

가상 하드 디스크의 용량은 최대 100GB, 동적 할당으로 설정해 주었다.

성공적으로 사양 설정을 완료했다. 툴바에서 주황색 '설정' 버튼을 눌러 추가 설정을 하도록 하자.

시스템, 디스플레이, 저장소, 네트워크 총 4가지의 설정을 건드릴 것이다.

'시스템' 메뉴에 들어와 '마더보드' 탭의 '부팅 순서' 체크 리스트에서 '플로피'를 해제한다.

다음으로 '프로세서' 탭에 들어와서 프로세서 개수를 2개로 바꾼다. 듀얼 코어로 사용하기 위함이다.

'디스플레이' 메뉴에서 비디오 메모리를 최대인 128MB로 설정한다. GUI 환경에서 우분투를 사용하기 때문이다.

'저장소' 메뉴 -> 컨트롤러: IDE에서 비어 있음 선택 -> '광학 드라이브'는 'IDE 세컨더리 마스터' 선택 -> 옆의 파란색 디스크 아이콘 클릭 -> 디스크 파일 선택

다운로드했던 디스크 이미지 파일을 선택해서 열기를 누른다. 탐색기가 알아서 잡아주지 않을텐데 대체로 다운로드 폴더에 있다. 그렇지 않으면 파일 탐색기에 이름을 검색해서 찾으면 된다.

성공적으로 경로가 잡힌 모습.

마지막으로 '네트워크' 메뉴에서 '어댑터 1' 탭에 진입, 네트워크 어댑터 사용하기 체크 및 '다음에 연결됨'을 NAT로 설정해 주면 된다.

 

가상화로 시동되는 GuestOS가 인터넷에 접근하기 위해선 HostOS를 통해 Network Address Translation 과정을 거쳐 라우터를 통해 접근하는 NAT 방법과 직접 라우터를 통해 인터넷에 접근하는 Bridge가 있다고 한다.


툴바의 '시작' 버튼을 클릭한다.

상큼한 소리와 함께 우분투의 부팅이 완료되면 최초 세팅이 시작된다.

언어는 English 선택 후 Install Ubuntu를 클릭한다.

English(US) -> English(US) -> Continue

서드파티 소프트웨어도 설치하겠다는 체크박스만 추가적으로 선택한다.

Something else -> Continue

::: 중요한 부분 진입 :::

New Partition Table... 클릭 -> Continue

새로 생성된 free space 선택 -> 좌측의 +버튼 클릭 -> 화면에 보이는 것과 같이 swap area 할당.

같은 방식으로 /boot 할당.

*두 번째 파티션부터는 Type for the new partition이 기본적으로 Logical로 되어 있기 때문에 주의*

같은 방식으로 사이즈 건드리지 않고 나머지 공간 파티셔닝. 여기서도 Primary 부분을 잘 확인해야 한다.

사진과 같이 파티셔닝이 잘 되었는지 확인 후 Install Now -> Continue

 

지역 선택 - Seoul로 자동으로 잡힐 것이다. Next. (스크린샷은 못 찍음)

Your name - 본인 이름

Your computer's name - 우분투 리눅스를 사용한다는 점과 Desktop 버전임을 표기하면 알아보기 좋다.

username - 본인이 사용할 아이디

password - 비밀번호. 강력하게 설정하는 편이 좋지만 실습이기 때문에 간단하게 했다.

Continue;

패키지 인스톨이 끝나면 리스타트 창이 뜬다. 재시동이 되면 만들었던 계정으로 로그인하고 Welcome to Ubuntu라고 안내해주는 사항, 리포트 옵션 등을 선택하고 넘기면 세팅이 끝난다.

세팅 완료 후 뜨는 업데이트 창, X 버튼을 누른다.

 


 

이로써 모든 설치 과정과 설정이 끝났다.

+ Recent posts