오래전 이야기/Server

하드디스크 증설

리눅스 엔지니어였던 2008. 9. 15. 16:52

리눅스를 사용하다보면, 하드디스크를 추가해야 하는 경우가 생길 수 있다. 꼭 하드디스크 추가 뿐만이 아니더라도 다른 파티션을 포맷하거나하여 리눅스에 마운트시켜서 사용할 필요가 생긴다면, 오늘의 강좌를 눈여겨 보도록 하자.


대략적인 설명 순서는.... 아래와 같다.

---------------------------------------------------

① 하드디스크 파티셔닝 (fdisk 사용)

② 파티션 포맷 (파일시스템 생성)

③ 파티션 마운트

---------------------------------------------------


이제 주변에 굴러다니는 하드디스크를 하나 준비해서 리눅스 하디드스크 증설을 시도해보자.


하드디스크 파티셔닝

추가할 하드디스크를 찾았다면 컴퓨터에 해당 하드디스크를 부착하고 부팅한다.

리눅스에서 파티션 설정을 해주는 대표적인 프로그램으로 fdisk가 있다. fdisk는 Dos나 Windows에서도 같은 이름으로 많이 사용되는 프로그램이지만, 리눅스에서는 리눅스용 fdisk를 사용하게 된다. 일반적으로 리눅스 설치시 fdisk도 같이 설치되므로, 콘솔을 열고 fdisk 명령으로 바로 사용할 수 있다.

fdisk를 실행하기 전에 내가 부착한 하드디스크의 장치명이 무엇인지 확인하자. IDE 형태의 일반 하드디스크를 부착했다면, hda, hdb, hdc, hdd 중 하나일 것이다. 보통 기본 하드디스크가 hda로 설정되어 있으므로, 부착된 하드디스크는 hda 이외의 것들 중 하나일 것이다.


-------------------------------------

- hda : Primary Master

- hdb : Primary Slave

- hdc : Secondary Master

- hdd : Secondary Slave

-------------------------------------


부착한 하드디스크에 할당된 장치명을 모르겠다면, 아래와 같은 명령으로 현재 시스템에 부착되어 있는 장치명을 파악할 수 있다.


# fdisk -l

[root@localhost ~]# fdisk -l


Disk /dev/hda: 20.4 GB, 20496236544 bytes
255 heads, 63 sectors/track, 2491 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot  Start    End     Blocks   Id  System
/dev/hda1   *       1   2360   18956668+  83  Linux
/dev/hda2        2361   2491    1052257+  82  Linux swap / Solaris


Disk /dev/hdc: 40.0 GB, 40020664320 bytes
16 heads, 63 sectors/track, 77545 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot  Start    End     Blocks   Id  System
/dev/hdc1           1  77545   39082648+  83  Linux


위의 예에서는 20.4GB의 하드디스크(hda) 하나와, 40.0GB의 하드디스크(hdc) 하나가 부착되어 있음을 알 수 있다. 이는 사용자의 컴퓨터에 따라 다르게 나타나므로 각자의 내용을 참고하기 바란다. 부착한 하드디스크가 hdc라고 가정한다면, 아래와 같은 명령으로 hdc 장치의 파티셔닝을 실행한다.


# fdisk /dev/hdc

※ 참고로 fdisk를 사용한 파티셔닝 작업을 하는 경우, 해당 하드디스크(또는 파티션)이 현재 시스템에 마운트 되어 있으면 안된다. 반드시 마운트가 해제된 상태에서 작업을 해야함을 명심하자. 마운트의 여부는 # df -h 명령으로 간단히 확인할 수 있다.


fdisk가 동작되면, 하드디스크의 기존 파티션 정보를 삭제하고 새롭게 파티셔닝을 해야 한다.

※ 참고로 사용 가능한 명령의 종류를 확인하는 것은 `m`키(menu)이고, 많이 사용되는 키는 아래와 같다.

------------------------------------------------

- p : 현재 파티션의 내역을 확인

- d : 파티션 삭제

- n : 파티션 생성

- q : 저장하지 않고 종료

- w : 저장후 종료

------------------------------------------------


그럼 먼저 `p`를 입력하여 현재의 파티션 내역을 확인해보자. 기존 사용하던 파티션이 있다면 `d` 명령으로 삭제하고, 아무런 파티션이 없다면, 바로 다음 단계인 파티션 생성(n 키)으로 넘어가자. 만약 새롭게 파티셔닝을 하지 않고 기존 파티션 상태를 그대로 사용하고자 한다면 파티셔닝 과정은 생략하라. 파티셔닝은 오로지 자신의 판단에 의해 설정하는 것이다.


Command (m for help) :  d

Partition number (1-4) : 4

먼저 d 명령으로 파티션 삭제를 명령한다. 그러면 fdisk가 현재 시스템의 파티션 상태를 확인하고 삭제할 파티션을 물어올 것이다. 위의 화면에서보면 1부터 4까지의 파티션 넘버가 있으며 이 중에서 어느 것을 삭제할 것인지를 묻는다. 여기서는 4를 선택하여 마지막 파티션을 삭제하겠다. 이런 방식으로 4, 3, 2, 1을 삭제하면 모든 파티션이 삭제될 것이다. (작업 중간중간에 `p`키를 눌러서 현재의 파티션 상황을 확인해 보는 것도 좋은 방법이다.)


이제 파티션 생성단계이다. 앞서 불필요한 파티션을 삭제하였고, 새롭게 파티셔닝을 하기 위해, `n`키(new)를 누른다.

필자는 추가된 하드디스크를 하나의 파티션으로 모두 할당하여 사용하고자 하므로 모든 영역을 잡도록 하겠다. 파티셔닝은 개인의 자유 이므로, 자신이 원하는 형식대로 파티셔닝을 진행하자. 1개, 2개, 3개... 등 여러가지로 나누어 사용할 수 있으며, 그 용량 또한 각자 임의로 지정해도 된다.


Command (m for help) :  n

Command action

    l    logical (5 or over)

    p    primary partition (1-4)

1

어떤 파티션을 생성할 것인지를 묻는다. 현재 자신의 시스템의 파티션 상태에 따라서 Primary와 logical 중에서 선택한다. 위의 화면은 하드디스크의 파티션 상태에 따라 다르게 나타날 수 있으니, 아래의 "파티션 종류" 내용을 참고하여 파티션을 설정하자.

여기서는 하나의 파티션으로 설정하는 방법을 다루므로, 1번 Primary 파티션(hdc1) 하나로 모두 잡을 것이다. "1"을 입력하고 엔터를 누르면 이제는 어느 정도의 용량으로 설정할 것인지를 묻는다.

First cylinder (0-4247, default 0) :

설정하는 방법은 해당 영역의 첫번째 실린더와 마지막 실린더를 지정함으로써 영역을 잡게 된다. 위 화면은 해당 영역의 첫번째 실린더를 입력하는 곳으로 기본 값인 0으로 하겠다. (그냥 엔터만 입력하면 된다.)

Using default value 0

Last cylinder or +size or +sizeM or +sizeK (0-4247, default 4247) :


마지막 실린더를 지정하는 화면이다. 기본적으로는 하드디스크의 제일 마지막 실린더가 표시되므로 하나의 파티션으로 잡으려면 그냥 엔터를 입력한다. 만약 별도의 영역만을 지정하고자 한다면, 적절한 숫자를 입력한다. 실린더 단위로 입력할 수 있으며, 또는 플러스(+) 기호를 같이 사용하여 입력할 수도 있다. (예: 3GB의 용량을 지정하고자 한다면, +3072M 와 같이 입력한다.)


이제 `p`키를 눌러서 지금까지의 파티션 설정이 제대로 이루어졌는지 확인하고, 제대로 설정되었다면 `w`키를 눌러 저장 및 종료를 하자. 만약 잘못 설정된 부분이 있다면 다시 설정하라. `w`키를 누르기 전까지는 설정 내용이 저장되지 않으므로 자유롭게 설정하고, 설정이 완료되면 `w`키를 눌러 종료하면 된다. (저장하지 않고 그냥 종료하고 싶다면 `q`를 누르면 된다.)


[참고 - 리눅스 파티션 종류]

리눅스에서는 하나의 하드디스크에 일반적으로 4개의 주(Primary) 파티션을 지원한다. 이 중에서 하나를 확장(Extended) 파티션으로 만들 수 있으며, 이 확장파티션은 다시 여러개의 논리(Logical) 파티션으로 구분할 수 있다. 즉 현재의 하드디스크에 6개의 파티션을 만든다면...

Primary 3개, Extended 1개 (Local 3개)

이러한 형태로 구성될 것이다.


파티션 포맷 (파일시스템 생성)

파티션 설정을 완료하였다면 이제 포맷을 진행할 단계이다. 리눅스에서는 일반적으로 ext3 포맷을 많이 사용한다.

아래와 같은 명령으로 간단히 포맷을 수행할 수 있다.


# mkfs.ext3 /dev/hdc1

mkfs는 make filesystem의 약어로서 ext3 형태의 파일시스템으로 포맷하겠다는 뜻이다.

장치는 앞서 설정하였던 hdc1이 된다. (다른 장치명을 사용하였다면 해당 장치명을 사용하자.)


파티션 마운트

포맷이 끝났다면 이제 마운트를 할 차례~!

마운트는 흔히 알고 있는 마운트 명령을 사용하면 된다.


# mount /dev/hdc1 /medai/backup

위 명령은 /media 디렉터리 밑에 있는 backup라는 디렉터리에 hdc1 파티션을 마운트 하겠다는 뜻이다. 디렉터리명은 각자 알아서 정하라. 이제 마운트가 제대로 되었는지 한번 확인해 보자.


그리고 부팅 시에 (항상) 자동으로 마운트가 되도록 하려면, /etc/fstab 파일에 아래와 같은 내용을 넣어두면 된다.

# This file is edited by fstab-sync - see `man fstab-sync` for details
LABEL=/1234     /               ext3    defaults        1 1
none            /dev/pts        devpts  gid=5,mode=620  0 0
none            /dev/shm        tmpfs   defaults        0 0
none            /proc           proc    defaults        0 0
none            /sys            sysfs   defaults        0 0
LABEL=SWAP-hda2 swap            swap    defaults        0 0
/dev/hdc1       /media/backup   ext3    defaults        0 0
/dev/fd0        /media/floppy   auto    pamconsole,iocharset=utf8,exec,noauto,managed 0 0
/dev/hdb        /media/cdrom    auto    pamconsole,iocharset=utf8,exec,noauto,managed 0 0


지금까지 하드디스크를 추가하는 방법에 대해 알아보았다. 몇몇 단계들이 조금 어렵게 느껴질 수도 있겠지만, 텍스트 모드에서 이렇게 작업을 할 수 있다는 것도 때로는 매력적일 수 있다. 그리고 요즘은 리눅스의 X윈도우 상에서 파티션을 설정하고 포맷할 수 있는 유틸들도 많이 나와 있으므로 이러한 유틸들을 사용해 보는 것도 좋을 것이다.


<출처: http://open.asianux.co.kr/openproject/mapping.php?bbsId=TIPNTECH&action=View&doc_number=33&pageNo=5 >