본문 바로가기
네트워크/Linux

2. Partition & Boot Manager

by Testengineer 2021. 10. 30.
반응형

Partition , 파티션

파티션이란, 하나의 물리적 디스크를 여러 개의 논리적인 디스크로 분할하는 것이다. 다중 파티션의 장점은 파티션마다 독립적인 파일 시스템이 운영되기 때문에 파일점검 시간이 줄어들어 부팅시간을 단축 시킬 수 있고, 특정 파티션 파일 시스템이 손상되더라도 다른 파티션에 영향을 주지 않아 높은 안정성을 보장한다. 그리고 백업과 업그레이드가 편리하다. 파티션은 주 파티션, 확장 파티션, 논리 파티션, 스왑 파티션으로 구분된다.

분할된 파티션은 디스크의 장치 파일명 뒤에 숫자를 붙임. 

/dev/hd a 1
하드디스크 유형 지정 - sd : SCSI 또는 USB 방식 디스크
- hd : IDE 또는 ATA 방식 디스크
한 케이블에 묶인 하드디스크의 우선순위 마스터(master) 또는 슬레이브(slave)로 설정
- 첫번째 하드디스크 : a
- 두번째 하드디스크 : b
파티션 번호 - 1~4번 : primary 또는 extended parition
- 5번 이후 : logical partition

파일 시스템은 운영체제가 파일을 시스템의 디스크 파티션상에 구성하는 방식이다. 파티션에 파일 시스템이 없으면, 파일 시스템 생성을 거쳐야 사용이 가능하다. 리눅스는 고유 파일 시스템(ext,ext2,ext3,ext4)뿐만 아니라 다양한 파일 시스템(JFS, SMB, 레드햇 GFS, FAT 등)을 지원하고 있다.

 

LVM(Logical Volume Manager)

여러 개의 하드디스크를 합쳐서 사용하는 기술로 한 개의 파일 시스템을 사용한다. 작은 용량의 하드디스크 여러 개를 큰 용량의 하드디스크 한 개처럼 사용한다. 서버를 운영하면서 대용량의 별도 저장 공간이 필요할 때 활용한다. 다수의 디스크를 묶어서 사용함으로써 파티션의 크기를 줄이거나 늘릴 수 있다.

- 물리 볼륨 : 여러개의 물리적 하드디스크

- 볼륨 그룹 : 물리 볼륨을 합쳐서 하나의 물리적 그룹으로 만드는 것

- 논리 볼륨 : 볼륨 그룹을 나눠서 다수의 논리 그룹으로 나눔

 

RAID(Redundant Array of Independent Disks, 복수 배열 독립 디스크)

여러 개의 물리적 디스크를 하나의 논리적 디스크로 인식하여 작동하게 하는 기술이다.

- 하드웨어 RAID : 하드웨어 제조업체에서 여러 개의 하드디스크를 장비로 만들어 그 자체를 공금, 안정된 시스템일수록 고가임.

- 소프트웨어 RAID : 고가 하드웨어 RAID 대안, 운영체제에서 지원, 저렴한 비용으로 안전한 데이터 저장이 가능

 

파티션 분할

fdisk 는 파티션 테이블을 관리하는 명령어로, 리눅스 디스크 파티션을 생성, 수정, 삭제할 수 있는 일종의 유틸리티이다.

[fdisk 명령어]

- a : 부팅 파티션 지정

- l : 파티션 종류를 선택할때, 리눅스에 지원하는 파티션 목록 확인

- n : 새로운 파티션을 추가

- t : 파티션 종류를 변경

- w : 파티션 정보를 저장

- p : 파티션 정보를 확인

- q : 작업을 종료

 

부트 매니저(Boot Manager)

개략적인 리눅스 부팅과정

우선 전원이 켜지고 나면, ROM-BIOS를 실행하여 POST와 부트로더를 로딩한다. 그리고 부트로더를 실행하여 커널로드와 스와퍼 프로세스를 호출한다. 리눅스 부트로더는 LILO와 GRUB를 사용한다. 부트로더를 통해 리눅스 커널을 로딩하고 커널을 선택하여 메모리가 로드되는 순간부터 부팅이 진행된다. 스와퍼 프로세스가 실행되고 init 프로세스가 실행하여 파일 /etc/inittab을 읽어 들인다. 부팅레벨을 결정하고 /etc/rc.d/rc/sysinit 스크립트를 실행하여 시스템 초기화 작업을 실행한다. 이어서 /etc/rc.d/rcX.d 스크립트가 실행되어 부팅 레벨에 대해 디렉터리 내의 스크립트가 순차적으로 수행된다. 부팅레벨이 5일경우 GUI 사용자 환경으로 X-윈도우를 실행한다.

 

부트로더(Boot loader)

  • 부트스트랩 로더(bootstrap loader)의 줄임말, 컴퓨터를 사용자가 사용할 수 있도록 저장된 운영체제를 읽어 주기억장치에 적재해주는 프로그램
  • 부트로더는 운영체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영체제를 시동시키기 위한 프로그램
  • 임베디드 시스템 부트로더 : PC의 BIOS와 OS Loader의 기능을 수행하는 프로그램, 시스템이 부팅할 때 가장 먼저 수행됨
  • 부트로더는 부트 매니저라고도 부르며, 크기가 512바이트로 하드디스크 첫번째 섹터인 MBR에 위치함
  • 주 파티션마다 부트 섹터(디스크의 다른 부분에 저장되는 부팅 프로그램을 담을 수 있는 기억장치의 섹터)가 할당됨
  • 한 컴퓨터에 다수의 운영체제가 설치되어 있을 경우 작업 운영체제를 선택하여 부팅할 수 있음
  • x86 아키텍처에서 많이 사용되는 부트로더는 LILO(LInux LOader)와 GRUB(GRand Unified)임. LILO는 리눅스 운영체제에 한정되어 사용되고, GRUB는 다른 운영체제에서도 사용가능함. 모두 시스템 전원이 공급되면 가장 먼저 ROM-BIOS에서 시스템 제어권을 갖고 장착된 하드웨어에 대한 기본적인 점검과 인식을 함

 

GRUB(GRand Unified Bootloader)

GRUB 부트로더는 리눅스 부팅시 처음 나오는 선택화면으로 LILO의 단점을 보안해 설정 및 사용이 편리하다. 부트 정보를 사용자가 임의로 변경해 부팅할 수 있어 부트 정보가 올바르지 않아도 바로 수정하여 부팅할 수 있다. 다른 운영체제와 멀티부팅할 수 있다. 대화형 설정이므로 커널의 경로와 파일 이름만 알면 부팅할 수 있다.

구분 GRUB1 GRUB2
설정 파일 /boot/grub/menu.lst /boot/grub2/grub.cfg
파티션 첫 번째 파티션은 0부터 시작 첫 번째 파티션은 1부터 시작
root 파티션 지정 방법 root (hd0,0) set root=(hd0,msdos1)
커널 이미지 설정 옵션 kernel=옵션으로 커널 이미지 명시 linux=옵션으로 커널 이미지 명시

 

런레벨(run level)

리눅스 부팅 시 작동하는 서비스들이 있다. 런레벨에 따라 작동하는 서비스를 조정 가능하다.

리눅스 부팅의 마지막 단계에서 모든 프로세스의 부모 프로세스인 init이 생성된다. 프로세스 init이 참조하는 것이 런레벨이다. 프로세스 init이 수행해야 할 일련의 처리방법으로 0~6까지 총 7가지이다.

런레벨 기능
0 시스템 종료(shutdown), halt/init 0과 동일
1 - 단일사용자 모드(root만 로그인가능)
- 네트워크, 서버, 파일 공유 서비스를 제공하지 않음
- root 패스워드 분실, 파일 시스템 점검 및 복구, 시스템 점검을 할 때 접근
2 네트워크가 없는 다중 사용자모드
3 텍스트모드(CUI)에 의한 다중 사용자 모드
4 미사용
5 그래픽모드(GUI)에 의한 다중 사용자 모드
6 시스템 재시작(재부팅), reboot/init 6와 동일

 

반응형

'네트워크 > Linux' 카테고리의 다른 글

6. 리눅스 프로그램 & 주변장치 연결  (0) 2021.12.18
5. 프로세스 관리  (0) 2021.12.11
4. Shell  (0) 2021.12.04
3. 파일 시스템 관련 명령어  (0) 2021.11.27
1. 리눅스의 이해  (0) 2021.10.23

댓글