메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

Linux 학습, 기초 과정: 하드 디스크 레이아웃

하드 디스크 파티션 계획

Ian Shields, 선임 프로그래머, IBM Japan
Ian Shields 사진
Ian Shields는 developerWorks 리눅스 영역을 위한 리눅스 프로젝트 다수를 수행하고 있다. Shields는 노스 캐롤라이나 주 소재 IBM 리서치 트라이앵글 파크에서 선임 프로그래머로 일한다. Shields는 1973년 시스템 엔지니어로 오스트레일리아, 캔베라에 있는 IBM 사무실에 들어갔으며 캐나다 몬트리얼과 노스 캐롤라이나 주 RTP에서 통신 시스템과 배포 컴퓨팅 부문에서 일해왔다. Shields는 특허 여러 건을 획득했으며, 논문 여러 건을 발표했다. Shields는 순수 수학과 철학 학사 학위를 오스트레일리안 국립 대학에서 받았다. 노스 캐롤라이나 주립 대학에서 컴퓨터 과학 분야를 대상으로 석사와 박사 학위를 받았다. 전자편지 주소는 ishields@us.ibm.com이다.
(An IBM developerWorks Contributing Author)

요약:  Linux® 시스템 상의 디스크에 대한 파티션 레이아웃 디자인 방법을 학습합니다. 본 기사의 자료를 활용하여 Linux 시스템 관리자 인증을 위한 LPI 기초 과정 시험에 대비한 공부를 하거나, 단순히 흥미로 배울 수도 있습니다.

이 연재 자세히 보기

원문 게재일:  2010 년 10 월 11 일
난이도:  중급 영어로:  보기 PDF:  A4 and Letter (46KB | 12 pages)Get Adobe® Reader®
페이지뷰:  4921 회
의견:  


이 시리즈의 정보

본 기사 시리즈를 통해 Linux 시스템 관리 작업을 배울 수 있다. 또한, 이 기사에 소개된 자료를 이용해 Linux Professional Institute Certification 레벨 1(LPIC-1) 시험 준비를 할 수 있다.

본 시리즈의 각 기사에 대한 설명과 링크는 series roadmap을 참조한다. 이 로드맵은 현재 진행 중이며, 최근(2008년 4월)의 LPIC-1 시험 목적을 반영한다. 기사 작성을 완료하면 해당 기사를 로드맵에 추가한다. 한편, LPI certification exam prep tutorials에서는 2009년 4월 이전의 LPIC-1과 관련된 유사한 자료의 이전 버전을 찾을 수 있다.

개요

이 기사에서는 Linux 시스템을 위한 디스크 파티셔닝 레이아웃을 디자인하는 방법을 학습한다. 구체적인 내용은 다음과 같다.

  • 파일 시스템을 할당하고 공간을 스왑하여 파티션이나 디스크 분리
  • 시스템의 사용 목적에 따른 맞춤형 디자인
  • 시스템을 부팅할 수 있는지 확인

이 기사는 Linux Professional Institute의 Junior Level Administration(LPIC-1) 시험 기초 과정의 Topic 102에서 Objective 102.1에 대비하는 데 도움이 된다. 이 목적의 가중치는 2이다.

주: 이 기사에서는 주로 레이아웃 계획에 대해 다룬다. 구현 절차는 Topic 104를 다룬 기사들을 참조한다(series roadmap에 설명되어 있음).

전제 조건

본 시리즈에 수록된 기사를 최대한 활용하려면 Linux에 대한 기본적인 지식과 이 기사에서 다루는 명령을 실습할 수 있는 Linux 시스템이 있어야 한다. 때때로 같은 프로그램이라도 버전이 다르면 출력 형식이 다르므로, 실습 결과가 이 기사에서 보여주는 Listing 및 그림과 항상 정확히 같지는 않을 수도 있다.


파일 시스템 개요

Ian과 연락하기

Ian은 가장 인기있고 많은 글을 쓰는 저자 중 한 명이다. developerWorks에 실린Ian의 모든 기사를 살펴보자. My developerWorks에서 Ian의 프로파일을 볼 수 있으며 Ian과 다른 저자 및 그를 좋아하는 여러 독자와 연락할 수 있다.

Linux 파일 시스템에는 디스크나 디렉토리에 있는 다른 블록 스토리지 장치에 배열된 파일이 들어 있다. 다른 많은 시스템과 마찬가지로, Linux 시스템 상의 디렉토리에는 서브디렉토리라는 다른 디렉토리가 포함될 수 있다. 다른 드라이브 문자(A:, C: 등)에 별개의 파일 시스템이 있는 개념으로 구성되는 Microsoft® Windows® 같은 시스템과는 달리, Linux 파일 시스템은 / 디렉토리를 루트 디렉토리로 가진 단일 트리이다.

파일 시스템이 단지 하나의 큰 트리라면 디스크 레이아웃이 뭐가 그리 중요한지 의아할 것이다. 실제로는 하드 드라이브 파티션, CD-ROM 또는 플로피 디스크와 같은 각각의 블록 장치에 파일 시스템이 있다. 마운트 지점이라는 트리 내의 한 지점에 있는 다른 장치들에 파일 시스템을 마운트하여 파일 시스템에 대한 단일 트리 뷰를 만든다.

일반적으로, 커널은 어떤 하드 드라이브 파티션에 파일 시스템을 /로 마운트함으로써 이 마운트 프로세스를 시작한다. 다른 하드 드라이브 파티션을 /boot, /tmp 또는 /home으로 마운트할 수도 있다. 예를 들어, 파일 시스템을 플로피 드라이브에는 /mnt/floppy로, CD-ROM에는 /media/cdrom1로 마운트할 수 있다. NFS와 같은 네트워크 파일 시스템을 사용하여 다른 시스템에서 파일을 마운트할 수도 있다. 다른 유형의 파일 마운트도 있지만, 이 유형으로 프로세스에 대한 개념은 파악할 수 있다. 마운트 프로세스에서는 실제로 어떤 장치에 파일 시스템을 마운트하지만 간단히 "장치를 마운트한다"고 말하는 것이 일반적이며, 이 말은 곧 "장치에 파일 시스템을 마운트한다"는 의미로 통한다.

이제, 방금 루트 파일 시스템(/)을 마운트했는데 마운트 지점 /media/cdrom에 CD-ROM인 /dev/sr0을 마운트하려는 경우를 생각해보자. 마운트 지점에 CD-ROM을 마운트하기에 앞서 우선 해당 마운트 지점이 존재해야 한다. CD-ROM을 마운트하면 CD-ROM 상의 파일과 서브디렉토리가 /media/cdrom과 그 이하의 경로에 있는 파일과 서브디렉토리가 된다. 이미 /media/cdrom에 있었던 모든 파일이나 서브디렉토리는 여전히 마운트 지점 /media/cdrom에 포함된 블록 장치에 있지만 더 이상 볼 수 없다. CD-ROM이 마운트 해제되면 원본 파일과 서브디렉토리를 다시 볼 수 있게 된다. 따라서 마운트 지점으로 사용할 목적으로 만든 디렉토리에 다른 파일을 넣지 않도록 주의하여 이런 문제가 생기지 않게 해야 한다.

표 1은 FHS(Filesystem Hierarchy Standard)에서 필수적인 디렉토리를 나타낸 것이다(FHS에 대한 자세한 내용은 참고자료 참조).


표 1. /에 있는 FHS 디렉토리
디렉토리설명
bin 필수 명령 2진 파일
boot부트 로더의 정적 파일
dev 장치 파일
etc 특정 호스트에 적합한 시스템 구성
lib 필수 공유 라이브러리 및 커널 모듈
media 이동식 매체용 마운트 지점
mnt 파일 시스템을 임시로 마운트하기 위한 마운트 지점
opt 추가 기능 애플리케이션 소프트웨어 패키지
sbin 필수 시스템 2진 파일
srv 이 시스템에서 제공하는 서비스를 위한 데이터
tmp 임시 파일
usr 보조 계층 구조
var 변수 데이터

파티션

첫 번째 SCSI 드라이브는 보통 /dev/sda이다. 이전의 Linux 시스템에서 첫 번째 IDE 하드 드라이브는 /dev/hda이다. 직렬 연결된 (SATA) IDE 드라이브의 등장과 함께, PATA/SATA 혼합 시스템에서는 때때로 첫 번째 PATA 드라이브에 대해서는 /dev/hda, 첫 번째 SATA 드라이브에 대해서는 /devsda를 사용한다. 그 이후에 나온 신형 시스템에서는 모든 IDE 드라이브의 이름이 /dev/sda, /dev/sdb 등으로 지정되었다. IDE 드라이브의 이름 변경은 최초로 USB 드라이브를 지원한 핫플러그 시스템의 결과다. 핫플러그 덕분에 새 장치를 플러그인하는 즉시 사용할 수 있으며, 현재 핫플러그는 장치가 시스템에 내장되어 있든 USB 또는 Firewire(IEEE 1394)를 사용하여 작동 중인 시스템에 나중에 플러그인하든 다른 유형의 연결을 하든 상관없이 모든 장치에 사용된다.

일반적으로, 하드 드라이브는 512바이트 섹터로 포맷된다. 헤드를 움직이지 않고 읽을 수 있는 디스크 플래터 상의 모든 섹터가 트랙을 구성한다. 디스크에는 보통 둘 이상의 플래터가 있다. 헤드를 움직이지 않고 읽을 수 있는 다양한 플래터 상의 트랙 콜렉션을 실린더라고 한다. 하드 드라이브의 구조는 실린더 수, 실린더당 트랙(또는 헤드) 수, 트랙당 섹터 수로 표현된다. 이 기사를 쓰는 현재, 드라이브 제조업체들은 4K 섹터를 가진 디스크를 출시하기 시작하고 있다. 파일 시스템에서 여전히 512바이트 섹터로 받아들이는 경우, 파티션이 4K 경계에 있는 섹터에서 시작하지 않으면 성능이 저하될 수 있다.

PC 시스템에 있는 DOS 운영 체제에서 사용되는 실린더, 헤드 및 섹터에 대해 가능한 크기에 대한 제한으로 BIOS 변환 구조 값이 생겼고, 이로 인해 더 큰 하드 드라이브가 지원될 수 있다. 결국, 이런 방법들도 충분치 못했다. 보다 최근에 이루어진 디스크 드라이브 기술의 발전으로 논리적 블록 주소 지정(LBA)으로 이어졌고, 이에 따라 CHS 구조 측정의 중요성이 떨어지고 현대적 디스크의 구조는 실제의 물리적 섹터 레이아웃과 거의 또는 아무런 관계가 없을 수도 있다. 오늘날 사용 중인 대용량 디스크들은 섹터 번호를 위해 최대 48비트까지 예약해서 LBA48이라고 알려진 LBA로까지 확장되었다.

하드 드라이브 상의 공간은 파티션으로 분리된다(파티션된다). 파티션은 겹칠 수 없다. 파티션에 할당되지 않는 공간을 여유 공간이라고 한다. 파티션에는 /dev/hda1, /dev/hda2, /dev/hda3, /dev/sda1 등의 이름이 있다. IDE 드라이브는 IDE 드라이브를 위한 핫플러그 지원을 이용하지 않는 시스템에서는 파티션 수가 63개로 제한된다. 핫플러그가 지원되는 SCSI 드라이브, USB 드라이브 및 IDE 드라이브는 파티션 수가 15개로 제한된다. 파티션은 종종 실린더의 총 개수로 할당된다(실린더에 대한 부정확한 개념을 바탕으로 함).

서로 다른 두 파티셔닝 프로그램에서 명목 디스크 구조를 다르게 이해하는 경우, 한 파티셔닝 프로그램이 다른 파티셔닝 프로그램에서 만든 파티션에 오류가 있거나 문제 발생 가능성이 있는 것으로 보고할 수 있다. 특히 BIOS 기능이 서로 다른 두 시스템 간에 디스크를 이동하는 경우에도 이런 종류의 문제가 발생할 수 있다.

parted 또는 fdisk 도구를 사용하면 Linux 시스템에서 명목 구조를 볼 수 있다. 이전 버전의 Linux 시스템에서는 /proc 파일 시스템, /proc/ide/hda/geometry와 같은 파일, 최신 버전의 시스템에는 없을 수도 있는 파일에서 구조를 보고하기도 했다. Listing 1은 fdisk 명령을 사용하여 SATA가 연결된 IDE 하드 드라이브의 파티션과 구조를 표시하는 방법을 나타낸 것이다. fdisk-v 매개변수로 버전을 확인할 수 있다. 파티션 테이블을 표시하거나 조작하려면 여기에 나타낸 것처럼 루트 사용자이거나 sudo를 통해 루트 권한을 가지고 있어야 한다.


Listing 1. 하드 디스크 구조
ian@attic4:~$ fdisk -v
fdisk (util-linux-ng 2.16)
ian@attic4:~$ sudo fdisk /dev/sdb
[sudo] password for ian: 

The number of cylinders for this disk is set to 30401.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000404d6

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          25      200781   83  Linux
/dev/sdb2              26       12965   103940550   83  Linux
/dev/sdb3           12966       30401   140054670   83  Linux

Command (m for help): 

Listing 1에서 fdisk를 통해 실린더 1024의 끝을 나타내는 명목 위치에 대한 경고가 인쇄된다는 점을 유심히 살펴보자. 실린더 1024는 BIOS가 디스크의 첫 1024개의 실린더 내에 완전히 자리를 잡고 있는 파티션만 부팅할 수 있는 일부 이전 시스템에서 중요하다. LBA 지원 기능이 없는 BIOS나 일부 이전 부팅 매니저에서 이런 경고가 인쇄된다. 한계가 존재할 수 있다는 점은 인식해야겠지만, 이는 보통 현대식 시스템에서 나타나는 문제는 아니다.

fdisk-u 옵션을 사용하여 섹터 내 유닛을 표시하거나 대화식 모드에서 u 하위 명령을 사용하여 섹터와 실린더 간에 전환할 수 있다. parted 명령에서는 여러 가지 다른 유닛을 지원한다. Listing 2는 Listing 1에서 사용한 것과 같은 디스크에 대해 parted에서 다른 유닛을 사용하는 것을 나타낸 것이다.


Listing 2. parted에서 다른 유닛 사용
ian@attic4:~$ sudo parted /dev/sdb
[sudo] password for ian: 
GNU Parted 1.8.8.1.159-1e0e
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help u                                                          
  unit UNIT                                set the default unit to UNIT

	UNIT is one of: s, B, kB, MB, GB, TB, compact, cyl, chs, %, kiB, MiB,
        GiB, TiB
(parted) p                                                                
Model: ATA HDT722525DLA380 (scsi)
Disk /dev/sdb: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size   Type     File system  Flags
 1      32.3kB  206MB  206MB  primary  ext3
 2      206MB   107GB  106GB  primary  ext4
 3      107GB   250GB  143GB  primary  ext3

(parted) u s                                                              
(parted) p                                                                
Model: ATA HDT722525DLA380 (scsi)
Disk /dev/sdb: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start       End         Size        Type     File system  Flags
 1      63s         401624s     401562s     primary  ext3
 2      401625s     208282724s  207881100s  primary  ext4
 3      208282725s  488392064s  280109340s  primary  ext3

(parted) u chs                                                            
(parted) p                                                                
Model: ATA HDT722525DLA380 (scsi)
Disk /dev/sdb: 30401,80,62
Sector size (logical/physical): 512B/512B
BIOS cylinder,head,sector geometry: 30401,255,63.  Each cylinder is 8225kB.
Partition Table: msdos

Number  Start      End           Type     File system  Flags
 1      0,1,0      24,254,62     primary  ext3
 2      25,0,0     12964,254,62  primary  ext4
 3      12965,0,0  30400,254,62  primary  ext3

(parted)

partedfdisk 출력으로 표시되는 시작 실린더와 종료 실린더 사이의 명백한 차이점은 parted는 실린더 계수를 0부터 시작하지만 fdisk는 1부터 계수하기 시작한다는 사실로 인한 것이다. Listing 3은 fdisk의 시작 및 종료 섹터가 parted와 같음을 나타낸 것이다.


Listing 3. 시작 및 종료 섹터 번호 확인
ian@attic4:~$ sudo fdisk -ul /dev/sdb

Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x000404d6

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63      401624      200781   83  Linux
/dev/sdb2          401625   208282724   103940550   83  Linux
/dev/sdb3       208282725   488392064   140054670   83  Linux
ian@attic4:~$ echo $(( 208282725 / 255 / 63 ))
12965

파티션 유형

IDE 드라이브에는 기본, 논리확장 파티션이라는 세 가지 유형의 파티션이 있다. 파티션 테이블은 디스크의 MBR(Master Boot Record)에 있다. MBR은 디스크 상의 첫 번째 섹터이므로, 파티션 테이블이 디스크의 매우 큰 부분을 차지하지는 않는다. 따라서 디스크에 있는 기본 파티션의 수는 4개로 제한된다. 그런 일이 자주 있겠지만, 5개 이상의 파티션이 필요할 때는 기본 파티션 중 하나가 대신 확장 파티션이 되어야 한다.

확장 파티션은 단순히 하나 또는 대개의 경우 그 이상의 논리 파티션을 위한 컨테이너일 뿐이다. 이런 파티셔닝 스킴은 원래는 MS DOS와 PC DOS에서 사용되었는데, 이를 통해 DOS, Windows 또는 Linux 시스템에서 PC 디스크를 사용할 수 있다. 한 디스크에는 확장 파티션이 하나만 포함될 수 있다. 데이터는 확장 파티션 내부의 논리 파티션에 저장된다. 우선 확장 파티션 내에 논리 파티션부터 만들어야 확장 파티션에 데이터를 저장할 수 있다.

Linux에서는 기본 또는 확장 파티션을 1에서 4까지 번호를 지정하므로, dev/sda에는 4개의 기본 파티션, 즉 /dev/sda1, /dev/sda2, /dev/sda3 및 /dev/sda4가 있을 수 있다. 또는 기본 파티션 /dev/sda1 하나와 확장 파티션 /dev/sda2가 있을 수도 있다. 논리 파티션이 정의되어 있는 경우 이 파티션은 5부터 시작해서 번호가 지정되므로, 디스크에 기본 파티션이 없고 확장 파티션(/dev/sda1)만 하나 있더라도 /dev/sda에서 첫 번째 논리 파티션은 /dev/sda5가 된다. 따라서 IDE 드라이브에 5개 이상의 파티션을 원하는 경우 파티션 번호 하나는 확장 파티션에 내주게 될 것이다. IDE 드라이브에서 이론적인 최대 파티션 수는 이제 핫플러그를 포함한 커널에 대해 15개로 제한되지만, 마지막 몇 개를 만들거나 만들지 못할 수 있다. 한 드라이브에서 12개를 넘는 파티션을 사용할 계획이라면 모든 것이 올바로 작동할 수 있는지 조심스럽게 확인한다.

앞서 제시한 예제들에 사용되는 디스크에는 3개의 기본 파티션이 있으며, 이들은 전부 Linux용으로 포맷되어 있다. 두 기본 파티션에서 ext3 파일 시스템을 사용하고, 나머지 한 기본 파티션에서는 ext4를 사용한다. Listing 4는 Ubuntu 9.10 시스템에 기본, 확장 및 논리 파티션이 있는 내부 드라이브와 Fedora 12 시스템에 연결된 USB 드라이브에 대해 parted 명령 p를 사용하여 얻은 출력 결과를 나타낸 것이다. 다른 파일 시스템 유형에 유의한다. 또한, 명령행에서 하나 이상의 parted 명령을 지정하면 대화식 모드를 피할 수 있다.


Listing 4. parted로 파티션 테이블 표시
                    
ian@attic4:~$ sudo parted /dev/sda u s p
[sudo] password for ian: 
Model: ATA WDC WD6401AALS-0 (scsi)
Disk /dev/sda: 1250263728s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start       End          Size         Type      File system     Flags
 1      63s         2040254s     2040192s     primary   ext3
 2      2040255s    22523129s    20482875s    primary   linux-swap(v1)
 4      22523130s   1250258624s  1227735495s  extended                  boot
 5      22523193s   167397299s   144874107s   logical   ext3
 6      167397363s  310761359s   143363997s   logical   ext3
 7      310761423s  455442749s   144681327s   logical   ext3
 8      455442813s  600092009s   144649197s   logical   ext3
[root@echidna ~]# parted /dev/sdc p
Model: WD My Book (scsi)
Disk /dev/sdc: 750GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size    Type      File system  Flags
 1      32.3kB  135GB  135GB   primary   fat32        lba
 2      135GB   750GB  616GB   extended
 5      135GB   292GB  157GB   logical   ext3
 6      292GB   479GB  187GB   logical   ext3
 7      479GB   555GB  76.5GB  logical   ext3
 8      555GB   750GB  195GB   logical   ext3


디스크 공간 할당

앞서 언급했듯이, Linux 파일 시스템은 /에 루트가 있는 단일 대형 트리이다. 플로피 디스크나 CD-ROM 상의 데이터를 마운트해야 하는 이유는 아주 명백하지만, 하드 드라이브에 저장된 데이터의 분리를 고려해야 하는 이유는 아마 덜 분명할 것이다. 파일 시스템을 분리해야 하는 몇 가지 합당한 이유는 다음과 같다.

  • 부트 파일. 부팅 시 BIOS 또는 부트 로더에서 일부 파일에 액세스할 수 있어야 한다.
  • 다중 하드 드라이브. 일반적으로 각각의 하드 드라이브는 하나 이상의 파티션으로 나뉘며, 각 파티션에는 파일 시스템 트리의 어느 지점에서는 마운트해야 하는 파일 시스템이 있다.
  • 공유 가능한 파일. 여러 시스템 이미지가 실행 가능 프로그램 파일과 같은 정적 파일을 공유할 수 있다. 사용자 홈 디렉토리나 메일 스풀 파일 같은 동적 파일도 공유될 수 있으므로, 사용자는 네트워크 상의 여러 시스템 중 어느 하나에 로그인하고 계속 같은 홈 디렉토리와 메일 시스템을 사용할 수 있다.
  • 오버플로우 가능성. 파일 시스템이 용량의 100%까지 가득 찰 수 있는 경우, 일반적으로 시스템을 실행하는 데 필요한 파일에서 이것을 분리하는 것이 좋은 방법이다.
  • 할당량. 할당량에 따라 사용자나 그룹이 파일 시스템에서 차지할 수 있는 공간의 양이 제한된다.
  • 읽기 전용 마운트. 저널링 파일 시스템이 등장하기 전에는 시스템 충돌 후 파일 시스템 복구에 오랜 시간이 걸렸었다. 따라서 (실행 가능 프로그램의 디렉토리와 같이) 거의 변경되지 않은 파일 시스템은 시스템 충돌 후 이를 확인하느라 시간을 낭비하지 않도록 읽기 전용으로 마운트할 수 있었다.

지금까지 다룬 파일 시스템의 용도 외에, 디스크 상의 할당 스왑 공간도 고려할 필요가 있다. Linux 시스템의 경우, 이 공간은 보통 하나의 전용 파티션이거나 여러 개의 전용 파티션일 수도 있다.


선택

최소한 하나 이상의 하드 드라이브가 있는 시스템을 설정하여 하드 드라이브에서 부팅하려는 경우를 생각해보자. (이 기사에서 LAN을 통해 부팅되는 디스크 없는 워크스테이션에 대한 설정이나 라이브 CD 또는 DVD Linux 시스템을 사용하기 위한 고려사항을 다루지는 않는다.) 이후에 파티션 크기를 변경하는 것도 가능하겠지만, 이를 위해서는 보통 약간의 작업이 필요하므로 미리 올바로 선택하는 것이 중요하다. 이제 시작해 보자.

첫 번째 고려사항은 시스템을 부팅할 수 있을 것인지 확인하는 것이다. 일부 이전 시스템의 경우, BIOS가 디스크의 첫 1024개의 실린더 내에 온전히 있는 파티션에서만 부팅할 수 있는 제한이 있다. 그런 시스템을 가지고 있다면 시스템 부팅에 필요한 키 파일을 보유하고 있을 /boot로 결국 마운트될 파티션을 반드시 만들어야 한다. 이들 파일이 로드된 후, Linux 시스템은 디스크의 작업을 인계받고 1024 실린더 한계가 시스템의 추가 작업에는 영향을 주지 않게 된다. /boot용 파티션을 만들어야 하는 경우에는 보통 약 100MB로 충분하다.

다음으로는 필요한 스왑 공간의 양을 고려해야 할 것이다. 현재의 메모리 가격을 고려할 때, 스왑 공간은 매우 느린 보조 메모리라 할 수 있다. 한 가지 일반적인 경험칙은 실제 RAM과 같은 용량의 스왑 공간을 만드는 것이었다. 지금은 워크스테이션에 알맞게 실제 RAM의 1배 또는 2배로 구성하기를 원할 수 있으므로, RAM 용량이 고갈되지 않고 여러 개의 큰 프로그램을 사용할 수 있다. 이들 프로그램 간의 전환 속도가 느리더라도, 아마 주어진 시간에 한두 개의 프로그램에서만 작업할 것이다.

또한, 메모리가 매우 작은 시스템에는 큰 스왑 공간을 사용하는 것이 좋다. 서버의 경우 다른 값을 권장하는 애플리케이션을 실행하는 것이 아니라면 RAM의 절반 정도에 해당하는 스왑 공간을 사용하면 된다. 어떤 경우든, 필요할 때 실제 RAM을 추가하거나 다른 서버에 워크로드를 분배할 수 있도록 서버 메모리 사용량을 모니터해야 한다. 지나치게 많은 스와핑이 서버에서 좋은 경우는 거의 없다. 스왑 파일을 사용할 수 있지만, 전용 파티션의 성능이 더 낫다.

이제 확산 지점에 이르렀다. 개인용 워크스테이션 사용이 서버 사용보다 예측 가능성이 훨씬 떨어지는 경향이 있다. 필자의 환경 설정, 특히 새 사용자에 대한 환경 설정은 대부분의 표준 디렉토리(/usr, /opt, /var 등)를 단일 대용량 파티션에 할당하는 것이다. 이것은 특히 무엇이 설치될 것인지 완전히 알지 못할 수도 있는 새 사용자에게 유용하다. 그래픽 데스크탑과 적당한 수의 개발 도구를 실행 중인 워크스테이션에는 5GB 이상의 디스크 공간과 사용자 요구에 맞는 공간이 필요할 것이다. 더 큰 몇몇 개발 도구에는 각각 수 기가바이트가 필요할 수 있다. 필자는 보통 운영 체제당 40GB-60GB 정도를 할당하고 디스크의 나머지 공간은 다른 애플리케이션을 로드할 수 있도록 남겨둔다.

서버 워크로드가 더 안정적일 것이며, 특정 파일 시스템의 공간이 부족해지면 더욱 치명적인 결과가 발생할 것이다. 따라서 이런 워크로드를 위해, 일반적으로 아마 하드웨어 또는 소프트웨어 RAID 또는 논리 볼륨 그룹을 사용하여 파티션을 여러 개 만들고 여러 디스크에 이들 파티션을 분산할 것이다.

특정 파일 시스템 상의 워크로드와 해당 파일 시스템을 여러 시스템 간에 공유할지, 아니면 한 시스템에서만 사용할지 여부도 고려하고 싶을 것이다. 경험, 용량 계획 도구 및 예상 성장률을 종합적으로 이용해 자신의 시스템에 최상의 할당량을 결정할 수 있다.

워크스테이션이나 서버의 구성 여부에 상관없이, 로컬 드라이브에 있는 각 시스템에 대해 고유한 파일을 가지고 있을 것이다. 일반적으로, 시스템 매개변수에 대한 /etc, 부팅 중 필요한 파일에 대한 /boot, 부팅 또는 시스템 복구에 필요한 파일에 대한 /sbin, 루트 사용자의 홈 디렉토리에 대한 /root, 잠금 파일에 대한 /var/lock, 실행 중인 시스템 정보에 대한 /var/run, 이 시스템의 로그 파일에 대한 /var/log가 포함된다. 사용자 홈 디렉토리에 대한 /home, /usr, /opt, /var/mail 또는 /var/spool/news 같은 다른 파일 시스템은 설치 요구와 환경 설정에 따라 별개의 파티션에 있거나 네트워크 마운트될 수 있다.


참고자료

교육

  • developerWorks roadmap for LPIC-1을 통해 2009년 4월의 시험 목적을 바탕으로 LPIC-1 인증 시험 공부에 도움이 되는 developerWorks 기사를 찾을 수 있다.

  • LPIC Program 사이트에서는 Linux Professional Institute에서 실시하는 세 가지 레벨의 Linux 시스템 관리 인증 시험에 대비한 자세한 시험 목적, 작업 목록 및 샘플 문제를 찾을 수 있다. 특히, LPI exam 101LPI exam 102에 대한 2009년 4월 시험 목적을 확인한다. 항상 LPIC Program 사이트를 참조하여 최신 목적을 확인한다.

  • Linux 기초를 학습하고 2009년 4월 이전의 LPI 시험 목적을 바탕으로 한 시스템 관리자 인증 시험을 준비하려면 developerWorks에서 전체 LPI exam prep series를 검토한다.

  • Filesystem Hierarchy Standard 홈 페이지에서 FHS에 대한 자세한 내용을 알 수 있다.

  • "Basic tasks for new Linux developers"(developerWorks, 2005년 3월)에서 터미널 창이나 쉘 프롬프트를 여는 방법 등을 학습할 수 있다.

  • Linux Documentation Project에는 다양한 종류의 유용한 문서, 특히 HOWTO 문서가 있다.

  • 리눅스에서 Linux 개발자와 시스템 관리자를 위한 추가 참고자료를 찾을 수 있다.

  • developerWorks 기술 행사 및 웹 캐스트를 통해 최신 정보를 얻을 수 있다.

  • Twitter의 developerWorks 페이지를 살펴보자.

제품 및 기술 얻기

  • 크래시 발생 후의 시스템 복구에 도움을 주기 위해 온라인으로 제공되는 수많은 도구 중 하나인 시스템 복구 CD-ROM을 다운로드한다.

  • developerWorks에서 직접 다운로드할 수 있는 IBM 시험판 소프트웨어를 사용하여 Linux와 관련된 후속 개발 프로젝트를 구현해 볼 수 있다.

토론

필자소개

Ian Shields 사진 developerWorks Contributing author level

Ian Shields는 developerWorks 리눅스 영역을 위한 리눅스 프로젝트 다수를 수행하고 있다. Shields는 노스 캐롤라이나 주 소재 IBM 리서치 트라이앵글 파크에서 선임 프로그래머로 일한다. Shields는 1973년 시스템 엔지니어로 오스트레일리아, 캔베라에 있는 IBM 사무실에 들어갔으며 캐나다 몬트리얼과 노스 캐롤라이나 주 RTP에서 통신 시스템과 배포 컴퓨팅 부문에서 일해왔다. Shields는 특허 여러 건을 획득했으며, 논문 여러 건을 발표했다. Shields는 순수 수학과 철학 학사 학위를 오스트레일리안 국립 대학에서 받았다. 노스 캐롤라이나 주립 대학에서 컴퓨터 과학 분야를 대상으로 석사와 박사 학위를 받았다. 전자편지 주소는 ishields@us.ibm.com이다.

잘못된 도움말 신고

부정사용 신고

감사합니다. 이 항목은 운영자가 관심을 표시했습니다.


잘못된 도움말 신고

부정사용 신고

제출실패 신고. 나중에 다시 실행해주세요.


디벨로퍼웍스 로그인


IBM ID가 필요하세요?
IBM ID를 잊으셨습니까?


비밀번호를 잊으셨습니까?
비밀번호 변경

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

화면상에 보여지는 닉네임을 정하세요.

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

3개의 &이나 대쉬를 포함해주시고 31글자내로 제한해주세요.


developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


아티클 순위

의견

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=리눅스
ArticleID=549773
ArticleTitle=Linux 학습, 기초 과정: 하드 디스크 레이아웃
publish-date=10112010
author1-email=ishields@us.ibm.com
author1-email-cc=

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.