Trans:GentooX86Handbook1-4

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기

디스크 준비하기

블록 장치 소개

블록 장치

이제 우리는 젠투 리눅스의 디스크 측면의 모습과 리눅스 파일 시스템, 파티션, 블록 장치를 포함한 일반적인 리눅스의 모습을 취할 것입니다. 그 다음 디스크와 파일시스템의 이모저모에 익숙해지고 나면 젠투 리눅스 설치를 위한 파티션과 파일 시스템의 처리과정을 안내받을 것입니다.

시작에 즈음하여 블록 장치를 소개하도록 하겠습니다. 가장 잘 알려진 블록 장치는 아마도 리눅스 시스템에서 첫 번째 드라이브로 나타나는 /dev/sda가 아닌가 싶습니다. SCSI와 직렬 ATA 드라이브들 모두 /dev/sd*로 표시합니다. 게다가 커널의 새로운 libata 프레임워크에서는 IDE 드라이브 조차도 /dev/sd*로 표시합니다.만약 오래된 장치 프레임워크를 사용한다면, 첫번째 IDE 드라이브는 /dev/hda 입니다.

위에 나타난 이 블록장치는 디스크의 추상 인터페이스입니다. 사용자 프로그램은 드라이브가 IDE인지 SCSI인지 그 말고 다른 장치인지 전혀 신경쓰지 않고 디스크와 상호작용하기 위해 이 블록 장치를 사용할 수 있습니다. 프로그램은 연속된, 임의 접근가능한 512 바이트 블록의 모음으로 디스크의 저장소에 주소를 지정할 수 있습니다.

파티션

리눅스 시스템을 저장하기 위해 이론적으로 디스크의 전체 구역을 사욜할 수 있지만 실제로는 거의 그렇게 하지 못합니다. 대신 전체 디스크 블록장치는 작은 부분으로 나뉘어 좀 더 관리하기 쉬운 블록 장치가 됩니다. x86 시스템에서는 이를 파티션이라고 부릅니다.

파티션은 주 파티션, 확장 파티션, 논리 파티션 세 가지 형태로 나눕니다.

주 파티션은 MBR(주 부트 레코드)에 정보를 저장하는 파티션입니다. MBR 이 매우 작은(512 바이트) 만큼 네 개의 주 파티션만을 지정할 수 있습니다. (예를 들어 /dev/sda1 부터 /dev/sda4 까지 입니다).

확장 파티션은 더 많은 파티션을 포함할 수 있는 특별한 주 파티션(가능한 네 개의 주 파티션 중에 하나는 반드시 확장 파티션이 되어야 한다는 의미)입니다. 본래 어떤 파티션의 경우 존재할 수 없지만 네 개로는 부족할 때, 이전 호환성을 잃지 않고 구성계획을 확장할 수 있는 기회를 가져왔습니다.

논리 파티션은 확장 파티션 내부에 있는 파티션입니다. 이들 설정 내용은 MBR 안에 들어가 있지 않고 확장 파티션 안에 들어가 있습니다.

고급 저장장치

x86 설치 CD는 LVM2를 지원합니다. LVM2는 파티션 설정을 통해 유연성을 증대시킵니다. 설치 설명 중에, 우리는 "일반" 파티션에 초점을 맞추겠지만, LVM2을 지원한다는 사실에 대해 알고 있는 것 또한 좋습니다.

파티션 형태 설계

기본 파티션 형태

여러분의 시스템에 대한 파티션 형태를 그려보는데 관심이 없다면, 이 책을 통해 우리가 사용한 파티션 형태를 사용해보실 수도 있습니다.

파티션 파일 시스템 사이즈 설명
/dev/sda1 ext2 32M 시동 파티션
/dev/sda2 (swap) 512M 스왑 파티션
/dev/sda3 ext3 디스크 나머지 공간 루트 파티션

파티션의 크기가 얼마나 되어야 하는지 심지어 얼마나 많은 파티션이 필요한지 알고 싶으시다면 계속 읽어내려가시기 바랍니다. 그렇지 않다면 디스크를 분할하기 위해 fdisk 사용하기 또는 디스크를 분할하기 위해 parted 사용하기 (둘 다 파티션 도구인데, fdisk는 잘 알려져 있고 안정적이며, parted는 좀 최근에 나왔는데 2TB이상의 파티션을 지원합니다)를 읽어 분할을 계속 진행하도록 합니다.

얼마나 많이, 얼마나 크게 할까요?

많은 파티션들은 환경에 크게 의존합니다. 사용자가 많이 있다면 보안성을 증대하고 백업을 쉽게하기 위해 /home 을 따로 나누고 싶어할 것입니다. 젠투 시스템을 메일서버로 동작하게끔 하려면 /var에 모든 메일이 저장되므로 /var를 나눌 것입니다. 파일시스템에 대한 좋은 선택은 여러분이 가진 시스템의 성능을 극대화 할 것입니다. 게임서버라면 대부분의 게임 서버가 /opt에 설치 되므로 이것을 나눌 것입니다. 이유는 /home 과 비슷합니다. 보안과 백업이죠. /usr 는 커지는 그대로라도 유지하고 싶어할 것입니다. 주요 프로그램들이 들어가 있을 뿐만 아니라 다양한 소스코드를 제외한 500MB 가량의 포티지 트리들이 이 곳에 저장됩니다.

여러분이 아시는 바와 같이 여러분이 무엇을 저장하고 싶은지에 크게 달려있습니다. 각각의 파티션과 볼륨은 다음 장점을 지니고 있습니다

  • 각각의 파티션과 볼륨에 대해 가장 잘 동작하는 파일 시스템을 선택할 수 있습니다.
  • 어떤 기능을 상실한 도구가 계속 파일을 기록하는 경우 빈 공간이 부족해져 전체 시스템을 동작할 수가 없습니다.
  • 필요한 경우 파일시스템 점검을 동시에 여러 부분에 대한 검사를 수행하여 시간을 줄입니다 (여러 파티션이 있을 때보단 여러 디스크가 있을 수록 좋겠지만).
  • 일부 파티션이나 볼륨을 읽기 전용, nosuid(setuid 비트를 무시합니다), noexec(실행 비트를 무시합니다) 등으로 마운트하여 보안성을 향상할 수 있습니다.

그러나 이 뿐만 아니라 여러 파티션을 나누면 단점이 있가도 합니다. 제대로 설정하지 않으면 어떤 파티션은 남은 공간이 많지만 어떤 파티션은 그렇지 않을 것입니다. 다른 귀찮은 것 하나는 나누어 놓은 파티션인데 특히 /usr나 /var같은 중요한 마운트 지점은 종종 관리자가 다른 시동 스크립트를 시작하기 전에 파티션에 마운트 하게끔 initramfs로 시동하는 것이 필요합니다. 비록 항상 일어나는 일은 아니지만요. 이렇게 다양한 이득이 있습니다.

SCSI 와 SATA에서는 GPT 레이블을 사용하지 않는한 15개의 분할구역 갯수 제한이 있습니다.

(웹서버, 메일서버, 그놈 등이 들어있는)시연 랩탑에서 보여드리기 위해 20GB 디스크에 대한 구역 분할의 예를 보여드리겠습니다:


코드 예제 2.1: 파일시스템 사용 예제
$ df -h

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/sda5     ext3    509M  132M  351M  28% /

/dev/sda2     ext3    5.0G  3.0G  1.8G  63% /home

/dev/sda7     ext3    7.9G  6.2G  1.3G  83% /usr

/dev/sda8     ext3   1011M  483M  477M  51% /opt

/dev/sda9     ext3    2.0G  607M  1.3G  32% /var

/dev/sda1     ext2     51M   17M   31M  36% /boot

/dev/sda6     swap    516M   12M  504M   2% <not mounted>

(Unpartitioned space for future usage: 2 GB)


디스크를 분할하기 위해 fdisk 사용하기

디스크를 분할하기 위해 parted 사용하기

파일 시스템 만들기

마운트