데비안 10(buster) 설치
Westporch에 의해 작성된 <데비안 10(buster) 설치>는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
목차
서문
Buster?
Buster는 애니메이션 Toy Story 시리즈에 등장하는 강아지입니다.
데비안 10(buster) 설치 방법에 대한 안내
데비안 10(buster)와 기존 데비안(jessie, stretch 등)의 설치 방법은 동일합니다. 크게 달라진 점이 없습니다.
객체 지향의 캡슐화(encapsulation)라는 개념을 데비안 인스톨러에 적용해 볼까요? 프로그래머가 기존 프로그램의 내부 로직 등을 변경해도 사용자에게 기존과 동일한 인터페이스를 제공한다면 사용자는 기존과 동일하게 프로그램을 사용할 수 있습니다. 예를 들어 새로운 차(車)가 기존의 모델보다 성능이 뛰어난 엔진을 장착했다고 해서 우리가 새로운 운전 방법을 익힐 필요는 없습니다. 평소처럼 차(車)를 운전하면 됩니다. 차(車)와 데비안의 관계를 아래와 같이 유사코드(pseudo-code)로 나타내 봤습니다.
새로운 차(車) ← 데비안 10(buster) 뛰어난 엔진 ← buster에 적용된 커널 운전 방법 ← 데비안 10(buster)의 설치 방법
마찬가지로 major 버전이 릴리스된 데비안이 나와도 평소와 동일하게 데비안을 설치하면 됩니다. 저는 데비안 4.x(etch)를 처음 접하고 지금까지 사용하고 있습니다. 버전 4.x 부터 버전 10까지 데비안의 설치 방법은 동일합니다. 크게 달라진 점이 없습니다. 만약 약간의 달라진 점이 있다면 기존과 동일한 인터페이스를 제공했기 때문에 제가 미처 느끼지 못한 것이라 생각합니다. 또한 앞으로 major 버전의 릴리스가 있어도 데비안 설치 방법은 기존과 동일할 것이라고 예상하며 그래야만 한다고 생각합니다.
설치 환경
Windows 10(host)에서 버추얼박스를 사용하여 데비안 buster(guest)를 텍스트 모드로 설치했습니다.
Host HW 정보
CPU | 메모리 | 디스크 | NIC | 노트북 제조사/모델명 |
---|---|---|---|---|
Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz | 4G * 2ea (DDR3) | SSD 120G | Realtek PCIe GBE Family Controller | SAMSUNG/NT900X4C |
Host 기본 정보
OS | Virtualbox | Network | IP |
---|---|---|---|
Windows 10 Enterprise (64bit) | v5.2.8 r121009 (Qt5.6.2) | DHCP | 192.168.0.5/24 |
Guest 기본 정보
OS | Kernel | RAM | Disk | Network | IP |
---|---|---|---|---|---|
Debian GNU/Linux testing (buster)/alpha2 | 4.13.13-1 | 1GB | 8GB (가상 하드디스크, vdi) | 어댑터에 브리지 | 192.168.0.11/24 |
설치 이미지 다운로드
위 주소에서 데비안 10(buster) iso 파일을 내려받습니다. Intel CPU(64bit)를 사용한다면 amd64 아키텍처를 선택하면 됩니다. 저는 debian-buster-DI-alpha2-amd64-DVD-1.iso를 다운로드 했습니다. 저처럼 꼭 DVD 이미지를 다운로드할 필요는 없습니다. 대부분의 사람들은 netinst(network install) iso를 주로 사용합니다.
netinst iso는 buster를 설치하기 위한 최소한의 설치 이미지라고 생각하면 됩니다. 그래서 iso 파일의 용량은 150~280MB 정도입니다. netinst로 설치시 나머지 시스템 운영에 필요한 프로그램들은 네트워크를 통해 설치합니다.
반면에 DVD iso는 시스템을 운영하기 위한 기본 패키지들을 대부분 포함하고 있습니다. 그래서 꼭 네트워크를 통해 설치하지 않아도 DVD iso 자체만으로도 buster를 설치할 수 있습니다. 그래서 netinst iso에 비해 용량이 매우 큽니다 (대략 3.6 ~ 4.4G). 대신에 네트워크를 통해 추가 패키지를 설치하더라도 대부분의 패키지들이 DVD iso에 있기 때문에 추가로 다운로드할 패키지들을 적기때문에 netinst 보다 buster를 빠르게 설치할 수 있습니다.
결론은 자신이 선호하는 유형(netinst 또는 DVD)의 iso를 다운로드하면 됩니다.
iso 파일의 무결성 검증
다운로드한 iso 파일이 서버에 있는 iso 파일과 동일한지 무결성(integrity)을 검증해볼 필요가 있습니다. 왜냐하면 다운로드를 하면서 오류가 발생할 수도 있기 때문입니다. 물론 우리가 다운로드한 iso 파일은 대부분 원본과 동일할 것 입니다. 하지만 꼼꼼해서 나쁠 것은 없습니다.
데이터 통신에서 전송된 데이터의 오류를 검출하기 위해서 패리티 비트(parity bit) 또는 해밍 코드(hamming code)를 사용합니다. 해밍 코드는 오류의 검출 뿐만 아니라 오류의 수정도 가능하기 때문에 ECC(Error-Correcting Code) 메모리에서도 사용합니다. ECC 메모리를 사용할 경우에는 일반 메모리와는 달리 오류의 검출 및 수정을 할 수 있습니다. 파일(file)에 대한 무결성을 검증하기 위해서는 해시(hash) 함수를 사용합니다. 서버에 있는 iso 파일과 우리가 다운로드한 iso 파일의 해시 값이 같다면 올바른 파일이므로 안심하고 사용해도 됩니다. 만약 해시 값이 서로 일치하지 않다면 iso 파일을 다시 다운로드 해야합니다. 참고로 해시 값은 메시지 다이제스트(message digest) 또는 핑거프린트(fingerprint)라고도 부릅니다.
리눅스에서 해시 값을 검증하는 도구로 md5sum을 사용합니다. md5sum은 데비안에 기본적으로 내장되어 있기 때문에 별도로 설치할 필요가 없습니다. md5sum은 MD5라는 해시 알고리즘을 사용합니다. 참고로 MD는 Message Digest를 의미하며 해시 알고리즘에는 MD5 뿐만 아니라 MD4, SHA 등도 있습니다.
서버에 iso 파일이 저장된 위치에 있는 MD5SUMS파일에서 iso 파일의 해시 값을 확인할 수 있습니다. MD5SUMS의 내용은 다음과 같습니다.
3b0b59c40f896c881b9e53635815907f debian-buster-DI-alpha2-amd64-DVD-1.iso
2a319f3ec24ce80e48777b6bfac5cc58 debian-buster-DI-alpha2-amd64-DVD-10.iso
7f8c7aeed55b8a89f2937127f4388714 debian-buster-DI-alpha2-amd64-DVD-11.iso
a7fab3afe9da26f8f2c217b80cc95f44 debian-buster-DI-alpha2-amd64-DVD-12.iso
8f6dc89a5b24c832ba7900113752f555 debian-buster-DI-alpha2-amd64-DVD-13.iso
44996983766328a49dd0651a3b9ca463 debian-buster-DI-alpha2-amd64-DVD-14.iso
fb19033593e82b077663dcfcfc788b93 debian-buster-DI-alpha2-amd64-DVD-2.iso
16f810a06a30827361d82ac3643e0c55 debian-buster-DI-alpha2-amd64-DVD-3.iso
112d8c1aae30a04acd17f632fee41625 debian-buster-DI-alpha2-amd64-DVD-4.iso
8f64206cbeb701f01ce326a6f80e7cd4 debian-buster-DI-alpha2-amd64-DVD-5.iso
b0bd852b08b8d70529ef18e7734abd6f debian-buster-DI-alpha2-amd64-DVD-6.iso
dd9a6778429755030e3431b41dfc2bfb debian-buster-DI-alpha2-amd64-DVD-7.iso
223b459188cd67a5528bd8fa81e242ae debian-buster-DI-alpha2-amd64-DVD-8.iso
be484010a192d5b11b0709033553c721 debian-buster-DI-alpha2-amd64-DVD-9.iso
위 화면에서 정상적인 debian-buster-DI-alpha2-amd64-DVD-1.iso 파일의 해시 값은 3b0b59c40f896c881b9e53635815907f임을 알 수 있습니다.
이제 다운로드한 debian-buster-DI-alpha2-amd64-DVD-1.iso 의 해시 값을 아래와 같이 구합니다. 프롬프트에 md5sum debian-buster-DI-alpha2-amd64-DVD-1.iso을 입력하면 됩니다.
# md5sum debian-buster-DI-alpha2-amd64-DVD-1.iso
3b0b59c40f896c881b9e53635815907f debian-buster-DI-alpha2-amd64-DVD-1.iso
서버에 있는 iso 파일과 다운로드한 iso 파일의 해시 값이 서로 같으므로 해당 파일을 안심하고 사용해도 됩니다.
만약 USB로 buster를 설치한다면 윈도우에서는 Win32 Disk Imager를 사용하거나 리눅스에서는 dd 명령어를 사용해서 이미지를 구우면 됩니다. Win32 Disk Imager나 dd 명령어의 구체적인 사용법은 생략합니다.
인스톨러 부트 메뉴
debian-buster-DI-alpha2-amd64-DVD-1.iso로 부팅하면 아래와 같은 화면이 나타납니다. GUI가 아닌 텍스트 모드(Text mode)로 데비안을 설치할 것이므로 두 번째 항목의 'Install'을 선택한 후 엔터 키를 누릅니다. 반드시 텍스트 모드로 설치할 필요는 없습니다. 만약 GUI 환경으로 데비안을 설치하고자 한다면 첫 번째 항목의 'Graphical install'을 선택한 후 엔터 키를 누르면 됩니다.
언어 선택
'한국어'를 선택합니다. 이제 설치 과정 및 향후 시스템에 사용할 기본 언어는 한국어로 설정됩니다.
'예'를 누르고 한국어로 설치를 진행합니다.
위치(지역) 선택
'대한민국'을 선택합니다.
키맵 설정
키맵으로 '한국어'를 선택합니다.
네트워크 설정(호스트 이름 설정)
저는 DHCP를 사용하고 있어서 네트워크는 자동으로 설정되었습니다. 따라서 네트워크 설정 단계에서는 호스트 이름만 설정하면 됩니다. 호스트 이름은 'debian-buster'로 설정했습니다. 호스트 이름은 아래의 조합으로 구성하는 것이 좋습니다.
- 알파벳 소문자 a ~ z
- 숫자 0 ~ 9
- 하이픈 (-)
도메인 이름은 별도로 설정하지 않아도 됩니다. '<계속>'을 선택한 후 엔터 키를 누릅니다.
계정 설정
root 비밀번호 설정
루트(root·최고 관리자) 계정에서 사용할 비밀번호를 입력합니다.
다시 한 번 루트의 비밀번호를 입력합니다.
일반 사용자 계정 생성
새로 생성할 사용자의 전체 이름을 적습니다. 이 단계에서 입력하는 이름은 /etc/passwd 파일의 다섯 번째 필드에 저장됩니다. 이 필드에는 주로 사용자 정보(사용자의 실제 이름, 전화번호 등)가 저장됩니다.
root@debian-buster:~# cat /etc/passwd | grep westporch westporch:x:1000:1000:westporch,,,:/home/westporch:/bin/bash
위 명령의 실행 결과는 buster 설치를 완료한 후에 확인한 모습입니다. 사용자의 전체 이름을 'westporch'로 설정했지만 실제로는 ',,,'가 붙어서 'westporch,,,'로 저장됩니다. westporch 계정의 비밀번호가 'x'라는 뜻이 아닙니다. 두 번째 필드의 'x'는 비밀번호(평문)를 해시 함수로 암호화하여 /etc/shadow의 두 번재 필드에 암호문이 저장되었음을 의미합니다. 쉽게 말하자면 C언어의 포인터를 떠올리면 될 것 같습니다. /etc/passwd의 두 번째 필드 x는 /etc/shadow의 두 번째 필드(암호문)를 가리킨다!
(/etc/passwd).[1] -> (/etc/shadow).[1] // 배열의 인덱스는 0부터 시작한다고 가정, 각 필드의 콜론은 배열에 저장하지 않는다고 가정
새로 만들 계정의 사용자 이름은 리눅스 시스템에서 로그인할 때 사용합니다. 즉 사용자 ID를 지정합니다.
저는 'westporch'로 설정했습니다. 여기서 설정하는 이름(ID)은 /etc/passwd 파일의 첫번 째 필드에 저장됩니다.
root@debian-buster:~# cat /etc/passwd | grep westporch westporch:x:1000:1000:westporch,,,:/home/westporch:/bin/bash
새로 생성할 계정(westporch)의 비밀번호를 입력합니다.
새로 생성할 계정(westporch)의 비밀번호를 다시 한 번 입력합니다.
파티션 설정
파티션은 특수한 경우가 아니라면 수동으로 설정하지 않고 '자동 - 디스크 전체 사용'으로 설정해도 무방합니다. 그러면 특수한 경우는 언제일까요? 시스템을 조금 더 안정적으로 운영하고자 할때가 아닐까 싶습니다. DB서버를 mysql 또는 mariaDB로 운영한다면 이들 DBMS는 /var/lib/mysql에 데이터 파일을 저장합니다. 만약 루트(/) 파티션에 통째로 사용하다가 시스템에 치명적인 문제가 생긴다면 /var/lib/mysql도 영향을 받겠지만 /var/lib/mysql 파티션을 별도로 생성했다면 /var/lib/mysql의 데이터는 안전하게 보존할 수 있습니다. 물론 디스크 자체가 물리적으로 손상된 경우라면 파티션 분할로 데이터를 보존할 수는 없습니다. 중요한 데이터를 다뤄야 한다면 반드시 백업 정책을 세워야 합니다. 여담이지만 '운영에 실패한 관리자는 용서할 수 있어도 백업에 실패한 관리자는 용서할 수 없다.'라는 말도 있지요.
파티션을 수동으로 설정하여 별도의 파티션들을 만들 경우의 단점은 관리의 효율성이 떨어지거나 디스크의 용량 낭비가 발생할 수 있다는 것 입니다. (용량 낭비가 걱정이라면 LVM을 사용해서 파티션 용량을 늘리거나 줄일 수도 있습니다.) 반면에 루트(/) 파티션을 통째로 사용하면 관리상 편합니다. 실제로 현업에서도 swap(가상 메모리)을 설정하고 루트(/) 파티션에 swap을 제외한 나머지 디스크 용량을 통째로 할당합니다. 파티션 설정은 시스템 관리자의 주관이 많이 반영되는 부분입니다. 자신이 시스템을 잘 관리할 수 있는 방법으로 파티션을 설정하는 게 가장 좋다고 생각합니다.
파티션할 디스크를 선택한 후 엔터 키를 누릅니다.
버추얼박스에서 생성한 가상 하드디스크(vdi)는 8GB로 설정했지만 실제로 시스템에서 인식한 디스크 용량은 8.6GB입니다. 실제 설정한 용량보다 0.75%가 증가했습니다. Xen에서 가상 디스크(qcow2)에 데비안을 설치할 때도 디스크 용량이 0.75% 정도가 증가했습니다. 왜 디스크 용량이 0.75%가 증가하는지는 잘 모르겠습니다.
어쨌든 저는 모두 한 파티션에 설치했습니다. 'Simple is the best!'. 만약 여러 사용자들에게 추가로 계정을 발급해야 한다면 /home 파티션은 별도로 분리하는 게 좋습니다. 또한 /var 디렉토리에 시스템 로그(웹 서버, 메일 서버 등)가 많이 쌓인다면 /var 파티션을 별도로 분리하는 게 좋겠지요. 물론 logrotate를 적용하여 로그 파일이 커지는 것을 막을 수 있습니다. 앞에서도 말씀드린 것 처럼 자신이 시스템을 잘 관리할 수 있는 방법으로 파티션을 설정하는 게 가장 좋다고 생각합니다.
'파티션 나누기를 마치고 바뀐 사항을 디스크에 쓰기'를 선택하고 엔터 키를 누릅니다.
바뀐 점을 디스크에 쓰기 위해서 '<예>'를 선택하고 엔터 키를 누릅니다.
데비안 설치
베이스 시스템 설치
베이스 시스템이 설치됩니다. 베이스 시스템에는 가장 최소 한의 패키지들이 설치됩니다.
패키지 관리자 설정
다른 CD나 DVD 검사
별도의 CD/DVD가 없다면 '<아니요>'를 선택합니다.
네트워크 미러 사이트
외부와 통신이 된다면 미러 사이트를 사용하는 것이 좋습니다. '<예>'를 선택합니다. 앞에서 설치한 베이스 시스템에 패키지들을 추가로 설치하기 위해 미러 사이트를 사용합니다.
국가 선택
'대한민국'을 선택합니다. 미러 사이트로 반드시 대한민국을 선택할 필요는 없습니다. 예들 들어 독일을 선택할 경우 우리나라에서 멀리 떨어져 있기 때문에 속도가 우리나라보다 느립니다.
미러 사이트 선택
자신이 선호하는 미러 사이트를 선택합니다.
HTTP 프록시 정보는 별도로 설정할 필요는 없습니다. '<계속>'을 선택합니다.
아래 화면은 미러 사이트와 통신이 되는지 확인하고 있는 상태입니다. 만약 미러 사이트가 네트워크 및 기타 문제로 인해
접속이 불가능하다면 다른 미러 사이트를 선택하면 됩니다.
미러 사이트에서 파일을 받아옵니다.
popularity-contest 설정
패키지 인기 투표에 참여할지 선택합니다. 설치 화면에 안내된 것 처럼 온라인에서 통계 자료를 확인할 수 있습니다.
설치할 소프트웨어
선택
설치할 소프트웨어를 선택합니다. 저는 GUI는 안쓰고 콘솔 환경만 사용할 것이므로 'SSH server'와 '표준 시스템 유틸리티'를 선택했습니다.
설치
선택 패키지들을 미러 사이트에서 받아온 뒤 설치합니다.
부트로더(GRUB) 설치
이 단계까지 왔다면 디스크에 buster는 설치되었습니다. 이제 시스템을 부팅할 때 디스크에 있는 OS 정보를 메모리에 올리기 위해서 부트로더(boot loader)를 설치해야 합니다. 데비안에서 부트로더로 GRUB을 사용합니다.
GRUB 설치가 완료되면 모든 설치 작업이 끝납니다. '<계속>'을 누르면 리부팅합니다.
리부팅
리부팅하면 GRUB를 볼 수 있습니다. 첫 번째의 'Debian GNU/Linux'로 부팅하면 됩니다.
로그인
buster의 로그인 화면이 나타났습니다.
루트 또는 사용자 계정으로 로그인 합니다. 첫 로그인할 때 캡처를 하지 못하고 나중에 캡처를 해서 아래와 같이 'Last login'에 접속 정보가 기록되었습니다.
로그인까지 성공했으니 이제 buster를 사용하면 됩니다. Buster라는 강아지를 앞으로 잘 다뤄주세요. Linux world~!