새로운 파티션을 추가하기 위해 n(new)로 진입한다. 이 하드웨어에서는 총 4개의 primary타입을 만들 수 있고 이중 하나에만 extended를 적용할 수 있다. extended를 적용하면 최대 12 부분으로 분할이 가능하다. 이렇게 총 15개의 파티션으로 나눌 수 있는 것이다.
따로 적지 않으면 default 값인 primary로 적용된다.
2. Using default response P.
1) 파티션 넘버 지정 : 1~4번까지 지정이 가능하고 따로 적지 않는다면 맨 앞번호부터 순차적으로 부여된다.
2) 시작 섹터 : 어느 부분부터 사용을 시작할지 지정할 수 있고 단위는 byte다. 지정하지 않는다면 2048번으로 지정된다.
3) 마지막 섹터 : 파티션을 사용할 용량을 지정하는 것으로 K, M, G 와 같이 용량단위로 간편하게 설정이 가능하다. 공백으로 둔다면 남은 공간을 모두 지정한다.
파티션 타입 변경하기
LVM(Logical Volume Management)
리눅스에서의 파티션 타입 'LVM'은 논리 볼륨 관리(Logical Volume Management)의 약자로, 전통적인 파티션 기반의 저장소 시스템 관리 방식 대신 논리 볼륨을 생성하고 이를 마치 디스크 파티션처럼 파일 시스템에 쉽게 마운트할 수 있게 해주는 방식이다.
LVM은 디스크 용량을 개별적인 디스크 용량 기반에서 사용 가능한 드라이브들의 용량을 결합하거나 풀링함으로써 관리한다. LVM 파티션을 사용하기 위해서는 fdisk 파티셔닝 툴을 이용해 파티션 타입을 'Linux LVM'으로 설정하고, 이를 LVM 환경에서 사용 가능한 물리 볼륨로 변환해야 한다. 물리 볼륨은 각각의 파티션과 일대일 매핑이 된다.
LVM을 사용하면 물리적인 하드 드라이브와 파티션들이 기존에 존재했던 드라이브와 파티션들에 바인딩되는 것이 아니라, 추상화 레이어에서 서로 분리되어 다루어진다. 이러한 LVM 파티션의 크기를 조정하는 것은 간단한 작업으로 이루어질 수 있으며, 서버의 다운 타임 없이 크기를 조정할 수 있다.
앞으로 다룰 mount 명령어와 파티션 조정을 위해 이 페이지에서는 LVM으로 파티션 타입을 변경할 것이다.
파티션 확인하기(p)
파티션 지우기(d)
파티션은 하나일 경우 바로 지워지고, 여러 개라면 지정해서 지울 수 있다. 파티션이 여러개이고 지울 때 파티션을 지정하지 않는다면 앞에서부터 1개씩 지워진다.
리눅스에서 서버와 클라이언트는 서로 통신하며 작업을 수행하는 시스템이다. 서버는 서비스를 제공하는 컴퓨터를 의미하며, 클라이언트는 서비스를 요청하는 컴퓨터를 의미한다. 클라이언트는 서버에게 요청을 보내고, 서버는 그 요청에 응답하여 요청된 서비스를 제공하며 이러한 구조를 클라이언트-서버 모델이라고 한다.
리눅스에서는 DHCP(Dynamic Host Configuration Protocol) 서버를 사용하여 클라이언트의 IP 주소를 할당할 수 있다. 또한 NFS(Network File System)를 사용하여 클라이언트가 서버에 저장된 파일에 접근할 수 있다.
서버는 주로 파일 서버, 인증 서버, 이메일 서버, 웹 서버 등으로 사용된다. 클라이언트는 이러한 서버에서 제공되는 서비스를 이용하는 것뿐만 아니라, 로컬 컴퓨터에서 다른 컴퓨터로 파일 전송, SSH 연결, 원격 데스크톱 등의 작업도 수행할 수 있다.
DHCP
DHCP(Dynamic Host Configuration Protocol)는 네트워크 내의 모든 호스트들에게 IP 주소를 동적으로 할당하는 프로토콜이다.
DHCP는 호스트들의 IP 주소 할당뿐만 아니라 서브넷 마스크, 게이트웨이, DNS 서버 정보 등을 자동으로 구성할 수 있으며, 네트워크 관리자가 중앙에서 네트워크를 구성하고 관리할 수 있도록 한다. DHCP를 사용하면 새로운 사용자의 쉬운 처리와 IP 주소의 재사용을 쉽게 할 수 있지만, IP 충돌 문제가 발생할 수 있다는 단점이 있다.
Linux에서 DHCP 서버를 설정하기 위해서는 일반적으로 dhcpd(DHCP Daemon) 패키지를 설치하고, 설정 파일을 수정한 후에 DHCP 서버를 시작하면 된다. DHCP 클라이언트를 구성하려면, dhclient 패키지를 사용하여 DHCP 서버에서 자동으로 IP 주소를 받아올 수 있다.
DORA 과정을 통해 DHCP 서버가 클라이언트에게 IP 주소를 할당하고, 클라이언트가 IP 주소를 요청하고 수락하는 과정에서 네트워크 상에서 다양한 메시지 교환을 수행한다.
리눅스에서 Foreground와 Background를 이해하는 것은 중요한 개념이다. 기본적으로 리눅스에서 프로그램을 실행하면 해당 프로세스는 유니크한 ID(PID)로 생성되며 Foreground에서 실행된다. Foreground 프로세스는 사용자와 스크린 및 키보드를 통해 통신할 수 있다. Background 프로세스는 터미널과 연결되지 않으므로 사용자와 통신할 수 없다. 그러나 다른 명령을 실행할 수 있다. Background에서 프로세스를 실행하는 것은 터미널을 해제하거나 SSH 세션을 종료해야 할 때 유용하다.
리눅스에서 Foreground와 Background 프로세스는 터미널과의 연결 여부에 따라 구분된다. 연결된 프로세스를 Foreground Job이라고 하며 연결되지 않은 프로세스를 Background Job이라고 하다. Foreground 프로세스는 사용자와 상호작용하며 Background 프로세스는 사용자와 상호작용하지 않다.
Background 프로세스를 실행하면 해당 프로세스는 키보드 입력을 대기하며, 필요한 경우 기다릴 수 있다. Background에서 프로세스를 실행하는 장점은 프로세스가 완료되기를 기다리지 않고 다른 명령을 실행할 수 있다는 것이다.
foreground
리눅스에서 'foreground'란 용어는 사용자가 직접 터미널과 상호작용할 수 있는 프로세스를 의미한다. 즉, 사용자가 명령을 실행하면 해당 프로세스는 기본적으로 foreground에서 실행되며, 해당 프로세스의 작업이 완료될 때까지는 터미널을 사용할 수 없다. 그러나 프로세스를 중지하거나 종료하면 터미널에 다시 액세스할 수 있다.
프로세스가 foreground에서 실행되면 키보드로부터 입력을 받아들이고 스크린에 출력을 보낼 수 있지만, 만약 foreground 프로세스가 종료되지 않고 계속 실행되면 해당 터미널에서는 다른 작업을 수행할 수 없다.
리눅스에서는 background에서 실행하는 것이 필요한 경우가 있다. 이 경우, 프로세스는 터미널과 분리되어 실행된다. 이렇게 실행되는 경우, 프로세스는 사용자와 상호작용하지 않고 자신이 할 일을 마치면 종료된다.
fg 명령어는 현재 백그라운드로 실행중인 작업을 다시 포그라운드로 전환할 때 사용한다. 이때, 실행중인 백그라운드 작업의 PID(Process ID)를 확인한 뒤, 해당 PID 앞에 %를 붙여 명령어를 입력하다. 예를 들어, 현재 백그라운드에서 실행중인 작업의 PID가 1234라면, 다음과 같이 명령어를 입력한다.
fg %1234
background
리눅스에서 백그라운드(background)란 사용자와 상호작용 없이 터미널에서 실행되는 프로세스이다. 터미널을 사용하여 명령이나 프로세스를 백그라운드에서 실행하면 터미널을 계속해서 사용할 수 있다.
백그라운드에서 실행된 프로세스는 쉘 세션이 종료되어도 계속해서 실행될 수 있다. 백그라운드에서 실행 중인 작업을 확인하려면 "jobs" 명령어를 사용한다.
jobs (옵션x)
사용자가 키보드 입력을 요구하는 프로세스는 백그라운드에서 실행되지 않고 대기한다. 리눅스에서 백그라운드에서 실행되는 대표적인 프로세스로는 웹 서버인 Apache나 Nginx 등이 있다. 백그라운드에서 명령어나 프로세스를 실행하려면 명령어나 프로세스 뒤에 "&" 기호를 붙이다.
리눅스에서 RPM(Red Hat Package Manager)은 소프트웨어 패키지를 만들고 설치하고 검증하고 갱신하며 제거할 수 있는 패키지 관리자로 리눅스 시스템에서 사용되는 모든 소프트웨어를 설치 및 삭제, 업그레이드하는 관리 툴이다.
RPM 패키지의 구성 요소는 패키지 이름, 버전, 릴리즈, 아키텍처로 이루어져 있으며, 예를 들어 "mysql-5.0.22-2.1.i386.rpm"과 같은 형식으로 구성되어 있다. RPM 패키지를 설치하면 파일의 의존성을 자동으로 해결해주므로 패키지 설치 과정이 간편해지며, 설치된 패키지 정보는 "rpm -qa" 명령어를 통해 확인할 수 있다.
RPM 패키지와 다르게 소스 패키지는 일반적으로 설치 경로를 수동으로 지정하여 설치한다. 이로 인해 RPM 패키지와 소스 패키지를 동일한 서버에 설치할 수 있지만, 같은 80 포트를 점유하기 때문에 동시에 하나만 열 수 있다. RPM 패키지를 설치할 때는 "rpm -i 패키지명" 혹은 "rpm -Uvh 패키지명" 명령어를 사용하며, 설치된 패키지는 "rpm -qi 설치된패키지명" 명령어를 통해 확인할 수 있다 .
RPM은 프로그램을 설치한 후에 바로 실행할 수 있는 설치 파일을 제공한다. 이러한 설치파일의 확장명은 *.rpm이며, 이를 패키지라고 부르기도 한다. RPM을 사용하면 각 패키지의 필요 요소를 전부 따로 다운로드해야 하는 번거로움이 있다. 또한 RPM의 문제점으로는 의존성을 들 수 있는데, 예를들면 페도라의 기본 웹 브라우저인 Firefox는 X윈도우에서 가동된다면, X윈도우가 설치 되지 않는 상태에서 Firefox를 설치하면 설치가 되지 않다.
옵션
RPM 패키지는 rpm 명령어나 yum 명령어를 통해 설치 가능하다. 주요 4개 명령어에 대해서는 설치, 업그레이드, 삭제, 정보 확인이 있다. RPM 설치 관련 옵션은 다양하다. 예를들어 설치 관련 옵션 중 -i(--install)은 패키지 설치 시엔 -i 옵션을 사용한다. v(verbose), h 등의 옵션과 함께 사용 가능하다.
RPM 명령어의 사용법은 설치 모드, 갱신 모드, 제거 모드, 질의 모드, 검증 모드 등이 있다. RPM의 주요 기능 중 하나는 패키지 설치 및 업그레이드이며, 이 기능을 위해 i와 U 옵션을 사용한다.
rpm (옵션) (패키지명)
설치 관련 옵션
-i(--install) : 패키지를 설치할 때 사용하는 옵션입니다. v, h 옵션과 함께 사용 가능하다.
v (verbose) : 설치 시 상세 내용을 함께 출력한다.
h (hash marks) : 설치 시 진행 상황을 #으로 표시한다.
예시 : rpm -ivh [패키지명]
업그레이드 관련 옵션
-U(--upgrade) : 기존에 설치된 패키지를 업그레이드할 때 사용하는 옵션이다. v, h 옵션과 함께 사용 가능하다.
예시 : rpm -Uvh [패키지명]
삭제 관련 옵션
-e(--erase) : 패키지를 삭제할 때 사용하는 옵션이다. --nodeps 옵션과 함께 사용 가능하다.
--nodeps : 의존성 무시하고 강제로 삭제한다.
예시 : rpm -e [패키지명]
정보 확인 관련 옵션
-q(--query) : 패키지 정보를 확인할 때 사용하는 옵션입니다. i, p, l, c, d 옵션과 함께 사용 가능하다.
i (info) : 패키지 정보를 출력한다.
p (provides) : 패키지가 제공하는 파일 목록을 출력한다.
l (list) : 패키지에 포함된 파일 목록을 출력한다.
c (changelog) : 패키지의 변경 내용을 출력한다.
d (docfiles) : 패키지 설치 시 생성되는 문서 파일 목록을 출력한다.
예시 : rpm -qi [패키지명]
의존성 문제
의존성 문제가 발생하면 해당 패키지를 설치할 수 없다. 따라서 이를 해결하기 위해서는 필요한 라이브러리나 패키지를 먼저 설치해야 한다. 의존성을 확인하는 방법으로는 다음과 같은 방법들이 있다.
Shell 접속하여 bash 명령어로 $ rpm -qR [라이브러리명] 을 입력한다. 해당 라이브러리가 의존하는 다른 라이브러리나 패키지들을 확인할 수 있다.