Linux ETC

1. 기본 개념

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

 

1.1 명령어 위치

/sbin/fdisk

 

1.2 사용 형식

 fdisk [-l] [-v] [-s 파티션] [장치이름]

 

2. 현재 모든 디스크의 파티션 설정 현황 파악하기

- 리눅스 쉘에서 fdisk -l 이라고 입력하면, 모든 디스크의 파티션 설정 현황을 확인할 수 있습니다.

fdisk -l.jpg 

 위의 그림과 같이 첫번째 /dev/sda 디스크는 모두 3개의 파티션으로 구성되어 있습니다.

 첫번째 줄에 출력된 것처럼 /dev/sda 디스크는 총 214.7GB 의 용량을 가지고 있음을 알 수 있습니다.

그리고 /dev/sda1Boot 항목에 ‘*’ 표시되어 있는 것은 /dev/sda1 파티션이 부팅파티션 이라는 것을 알려주는 표시입니다.

 또한 /dev/sda2System 항목에 Linux swap /Solaris라고 표시되어 있는 것은 해당 파티션이 스왑파티션임을 나타내고 있습니다.


3. fdisk 메뉴화면

    리눅스 쉘에서 fdisk /dev/sda 입력하게되면 아래와 같은 화면이 출력되는데,

dev_sda.jpg

    여기서 메뉴를 보기 위해서 ‘m’ 을 입력 후 엔터를 누르면 아래와 같이 메뉴 화면이 출력됩니다.

메뉴.jpg

    fdisk에서 파티션 설정작업에 사용하는 명령어를 간략히 요약하면 아래와 같습니다.

       a  부팅파티션을 설정할 수 있습니다.

       b  BSD로 디스크라벨 설정합니다.

       c  DOS호환가능한 플래그 설정합니다.

       d  파티션을 삭제할 수 있습니다.

       l  설정가능한 파티션 타입을 보여줍니다.

       m  파티션 설정도움말을 보여줍니다.

       n  새로운 파티션을 생성할 수 있습니다.

       o  새로운 도스파티션 테이블을 생성합니다.

       p  현재 설정된 파티션정보를 보여줍니다.

       q  설정된 정보를 저장하지않고 fdisk를 빠져나갑니다.

       s  SUN 디스크라벨을 생성합니다.

       t  파티션 타입을 변경할 수 있습니다.

       u  유닛(units)정보를 열람하거나 변경할 수 있습니다.

       v  지정된 파티션을 검사합니다.

       w  현재까지 설정한 파티션정보를 저장하고 fdisk를 빠져나갑니다.

       x  파티션설정 전문가 모드로 들어감이 전문가 모드에서는 실린더(cylinder)수나 헤드(head)수 그리고 트랙(track)당 섹터(sector)수를 변경할 수 있습니다.

 

4. fdisk를 이용하여 수동으로 파티션 추가

/dev/sdb 파티션을 새로 추가해 보도록 하겠습니다.

[root@localhost ~]# fdisk -l                         <= 파티션 확인

 

Disk /dev/sda: 146.8 GB, 146814976000 bytes

255 heads, 63 sectors/track, 17849 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14        1318    10482412+  83  Linux

/dev/sda3            1319        1579     2096482+  82  Linux swap

/dev/sda4            1580       17849   130688775    5  Extended

/dev/sda5            1580       17849   130688743+  83  Linux

 

Disk /dev/sdb: 146.8 GB, 146814976000 bytes            <= 추가 된 /dev/sdb가 나타납니다.

255 heads, 63 sectors/track, 17849 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Disk /dev/sdb doesn't contain a valid partition table

 

[root@localhost ~]# fdisk /dev/sdb

 

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p <= primary partition 선택

Partition number (1-4): 1                   <= partition 1 번호 선택(최대 4개 까지 생성 가능)

 

First cylinder (1-17849, default 1): 1    <= 시작 실린더 번호 입력

Last cylinder or +size or +sizeM or +sizeK (1-17849, default 17849): 17849    <= 마지막 실린더 번호 입력


Command (m for help): w                            <= 설정 저장

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

[root@localhost ~]# mkfs.ext3 /dev/sdb1                 <= mkfs명령어를 이용하여 파일시스템을 ext3 형식으로 생성(파일시스템은 변경 가능)

 

파일시스템 생성 완료 후에는 해당 파티션을 mount 해줘야 합니다.

 

[root@localhost ~]# mkdir /home2                          <= home2 폴더를 생성

[root@localhost ~]# mount /dev/sdb1 /home2          <= home2 폴더에 mount

[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2             9.9G  1.8G  7.6G  20% /

/dev/sda1              99M   12M   83M  12% /boot

none                  2.0G     0  2.0G   0% /dev/shm

/dev/sda5             123G   93M  117G   1% /home1

/dev/sdb1             135G   93M  128G   1% /home2

 

mount한 파티션을 fatab에도 등록하여 줍니다.

 

[root@localhost ~]# vi /etc/fstab

/dev/sdb1                      /home2            ext3     defaults               1 1 <= 맨 아래에 테이블 추가