전체 글 661

02_05 부트 매니저(Boot Manager)

부트 매니저(Boot Manager) 부트 매니저의 개요 부트 매니저란 말 그대로 부팅을 도와주는 역할을 하는 프로그램으로 특히 한 컴퓨터에 리눅스, 윈도우 등 여러 운영체제가 설치되어 있는 경우에 OS를 선택하여 부팅할 수 있도록 도와준다. 브트 매니저 프로그램은 부트로더(BootLoader)라고도 부르며, 하드디스크의 맨 앞쪽 영역인 MBR(Master BootRecord)에 설치된다. MBR은 하드디스크의 첫 번째 섹터인 512바이트 부트 섹터로 부트 매니저 프로그램과 파티션 정보가 기록된다. 하드디스크에 설치된 운영체제 부팅과정 전원을 켜면 바이오스(BIOS)는 컴퓨터에 장착된 하드웨어를 점검한다. 바이오스는 하드웨어가 검사가 끝나면 CMOS에 설정된 첫 번째 부팅 하드디스크를 확인한다. 첫 번째..

02_04 LVM과 RAID

LVM과 RAID LVM(Logical Volume Manager) LVM 개요 리눅스 설치할 때나 하드디스크를 추가하면 파티션을 분할하고 공간을 할당한다. 이때 설정한 공간의 크기는 고정되어서 변경이나 증설이 어렵다. 이 문제점을 해결할 수 있는 방법이 LVM이다. 여러 개의 하드디스크를 하나로 뭉쳐서 하나의 디스크처럼 만들 수도 있고, 2개의 하드디스크를 3개의 하드디스크인 것처럼도 만들 수 있다. 사용 중인 파티션의 크기를 줄이거나 늘릴 수 있는데, 파티션 확장은 디스크를 추가한 뒤에 간단한 명령만으로 데이터 이전 없이 손쉽게 가능하다. LVM 구성도와 관련 용어 물리적 볼륨(PV: Physical Volume): 실제 디스크에 물리적으로 분할한 파티션으로 예를 들면 /dev/sdb1, /dev/s..

02-03 스왑(Swap)

스왑(Swap)의 개요 시스템이 물리 메모리를 모두 소모하였을 때 스왑을 활용하면 부족한 메모리 공간을 극복하는데 도움이 된다. 시스템이 물리 메모리를 모두 소진하고 더 많은 메모리 공간이 필요할 때 메모리상의 비활성화된 메모리를 스왑 공간으로 이동하여 메모리 공간을 확보하는 기술을 '스왑'이라 한다. 스왑은 물리 메모리보다 액세스 속도는 느리나 가격이 저렴한 하드 용량을 사용한다. 스왑 공간은 swap partition이나 swap file 형태로 만든다. 과거에는 스왑의 크기가 RAM의 크기와 비례해서 증가했다. 요즘 시스템 RAM은 넉넉하기 때문에 스왑 공간의 크기는 시스템이 실제 사용하는 메모리의 양에 근거하여 설정하면 효과적이다. 보통 스왑 공간의 크기는 리눅스 설치 시에 결정한다. 스왑 파일 ..

02_02_파일 시스템 점검

파일 시스템 점검 fsck(file system consistency check) 파일 시스템을 점검하고 손상된 영역을 복구하는 명령어이다. 부팅할 때 특정 조건이 되면 fsck를 실행한다. 가령 파일 시스템의 일관성이 깨졌음을 의미하는 더티(dirty) 상태이거나 파일 시스템 없이 여러 번 마운트되었다면 fsck를 실행한다. 형식: fsck [option] device 옵션 -a: 사용자 확인 없이 파일 시스템을 자동으로 복구한다. -r: 파일 시스템을 복구할 때 사용자의 확인을 받는다. 다수의 fsck 명령어를 동시에 실행 중일 때 이 옵션을 사용하는 것은 불편하다. -A: /etc/fstab 파일에 정의된 모든 파일 시스템에 대하여 점검을 수행한다. -P: -A 옵션과 함께 사용할 때 루트 파일 시..

02_01_파일 시스템 관리 및 복구

파일 시스템 관리 및 복구 파일 시스템 생성의 개요 하드디스크를 새로 추가하거나 기존 하드디스크 중 아직 사용하지 않은 영역이 있다면 파일 시스템을 생성하여 정보를 저장하는 데 사용할 수 있다. fdisk -l을 통해 하드디스크가 시스템에 정상적으로 인식되었는지 확인한다. 파티션 생성 fdisk 명령어로 원하는 파티션을 생성할 수 있다. mkfs 명령어로 원하는 파일 시스템으로 포맷을 한 뒤 mount 명령어로 시스템상 마운트 할 수 있다. 시스템 리부팅 후에도 계속 마운트가 유지될 수 있도록 /etc/fstab 파일에 파일 시스템을 등록한다. fdisk를 통한 파티션 관리 디스크 상에서 파티션을 생성, 삭제, 수정할 수 있다. 형식: fdisk [option] device 옵션 -l: 지정한 디스크의 ..

01_02_06_텍스트 관련 명령어

텍스트 관련 명령어 텍스트 관련 명령어에는 cat, head, tail, more, less, grep, wc, sort, cut, split 등이 있다. cat 텍스트 파일의 내용을 보거나 텍스트 파일을 다른 새로운 파일로 복사하거나 또는 기존의 텍스트 파일과 합치는 기능을 수행한다. 형식: cat [option] file 옵션 -b, --number-nonblank: 빈 줄을 제외하고 행 번호를 붙여준다. -n, --number: 모든 줄에 행 번호를 붙인다. -E, --show-ends: 각 줄의 끝에 '$'를 표시한다. -T, --show-tabs: 탭 문자로 '^'로 표시한다. -v --show-nonprinting: 인쇄 불가한 문자도 표시한다. -A, --show-all: -vET 명령어와 ..

01_02_05_파일 시스템 관리_파일 관리

파일 관리 ls 지정한 경로에 존재하는 파일과 디렉터리의 리스트를 출력한다. 파일의 크기, 소유자, 수정한 시간 등 다양한 정보도 함께 보여준다. 옵션 지정이 없으면 현재 디렉터리의 파일 및 디렉터리를 알파벳 순서로 보여준다. 형식: # ls [optison] file ... 옵션 -a, --all -d, --directory: 디렉터리 자체에 대한 정보를 출력한다. -F, --classify: 각 파일명마다 파일의 유형을 뜻하는 문자를 붙여 준다. @: 심볼릭 링크 *: 실행 파일 =: 소켓 |: 파이프 /: 디렉터리 -t: 마지막 수정 시간을 최신 기준으로 정렬하여 출력한다. -u: -lt 옵션과 함께 마지막 수정 시간 대신 접근 시간을 출력한다. -i, --inode: 각 파일의 아이노드 번호를 출..

01_02_04_파일시스템 관리_디렉터리 관리

디렉터리 관리 pwd 현재 파일 시스템상 어떤 디렉터리에 있는지 출력한다. 이 디렉터리를 보통 작업 디렉터리(working directory)라고 부른다. 현재 작업 디렉터리를 확인하기 위해서는 옵션 없이 명령어 'pwd'를 입력한다. pwd는 셸에 내장된 명령어와 bin 디렉터리에 위치한 외부 명령어의 2가지가 있다. 현재 사용하는 pwd가 무엇인지 알고자 할 때는 'type' 명령어를 사용한다. cd 작업 디렉터리를 변경하기 위해 사용한다. 디렉터리 변경 시 상대 경로, 절대 경로, 현재 경로, 부모 경로, 홈 디렉터리, 이전 디렉터리 등으로 이동이 가능하다. '/'는 루트 디렉터리다. 디렉터리가 '/'로 시작하면 루트 디렉터리를 기점으로 생성된 경로를 의미한다. 이를 '절대 경로'라 부른다. '/'..

01_02_03_리눅스 파일 시스템 관리_파일 링크

파일 링크(File link) 파일 링크 개요 리눅스에는 윈도의 바로가기 기능과 같이 시스템에 이미 존재하는 파일에 대한 포인터를 갖는 파일 링크 기능을 제공한다. 리눅스의 파일 링크는 크게 하드 링크(Hard link)와 심볼릭 링크(Symbolic link)가 있다. 하드 링크는 해당 파일의 아이노드를 가리키고 심볼릭 링크는 해당 파일의 경로를 가리킨다. 하드 링크의 경우 대상 파일이 사라지더라도 해당 파일에 대한 참조가 0이 아니기 때문에 삭제되지 않으므로 링크를 통해 실제 파일에 접근이 가능하다. 심볼릭 링크는 소프트 링크(Soft link)라고도 한다. 심볼릭 링크의 경우 단순히 경로만을 참조하므로 대상 파일이 삭제되면 심볼릭 링크는 존재하지 않는 파일을 가리키게 된다. 스티키 비트를 설정하지 ..

01-02-02 파일 시스템 관리_특수 권한

특수 권한 특수 권한의 개요 파일의 소유자 허가권, 그룹 허가권, 다른 사용자 허가권, 사용자 소유권, 그룹 소유권 그리고 읽기, 쓰기, 실행 권한만으로는 시스템을 운영할 때 한계가 있다. 이를 위해 Set-UID 권한 비트, Set-GID 권한 비트, 스티키 비트라는 특수 권한이 존재한다. Set-UID 권한 비트(Set User ID bit) 파일에 Set-UID 비트가 설정되면 사용자가 파일을 실행했을 때 해당 사용자의 권한이 아닌 파일의 소유자 권한으로 실행된다. 대표적인 예로 /usr/bin/passwd 프로그램 파일은 root만이 읽기 가능한 /etc/shadow 파일에 접근할 수 있도록 설정되어 있다. 이 설정대로라면 일반 사용자는 passwd 프로그램을 사용하지 못한다. 그러나 passwd..