SCSI하드드시크 하나를 사용중 추가로 SCSI하드디스크하나를 더 장착하여 커널에 인식시킨후에 파일시스템을 만들고 만든 파일시스템을 포맷하여 마운트시킬 디렉토리를 만든다음 이 디렉토리에 생성된 파일시스템을 마운트시키는 작업. 그리고 이 작업이 끝난후에 부팅시 자동마운트되도록 /etc/fstab에 설정추가한다.
1. 현재 사용중인 하드디스크 확인(추가전)
먼저, 현재 사용중인 하드디스크를 확인해 보도록 하자.
/etc/fstab이라는 파일은 리눅스부팅시에 자동으로 마운트시키기위한 "파일시스템테이블(file system table)"이다.
즉, 리눅스가 부팅이 되면서 이 파일을 참조하여 설정된 내용대로 마운트를 시켜 사용가능토록하는 것이다.
[root@duwon ~]# cat /etc/fstab
/dev/sda3 / ext3 defaults,noatime 1 1
/dev/sda1 /boot ext3 defaults,noatime 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults,noatime 0 0
none /dev/shm tmpfs defaults 0 0
/dev/sda2 swap swap defaults,noatime 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
위의 /etc/fstab은 하드디스크가 추가되기전의 /etc/fstab 용이다.
보시는 바와 같이 /dev/sda라는 하드디스크 하나만이 장착되어 있음을 짐작할 수 있다.
그리고, 아래와 같이 "df -k"로 현재 사용중인 파일시스템정보를 확인해본 것이다.
확인해 본 바와 같이 현재 사용중인 파일시스템은 sda의 하드디스크 하나를 몇 개의 파일시스템으로 나누어 사용중인 것을 확인할 수 있다.
[root@duwon ~]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 15947024 2810760 12326188 19% /
/dev/sda1 505605 13764 465737 3% /boot
none 516364 0 516364 0% /dev/shm
좀더 확실히 확인키위해 mount라는 명령어로 현재 리눅스서버에 마운트된 파일시스템이 어떤 것들이 있는가를 정확히 확인해 본 것이다.
[root@duwon ~]# mount
/dev/sda3 on / type ext3 (rw,noatime)
none on /proc type proc (rw,noatime)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
devfs on /dev type devfs (rw)
/dev/sda1 on /boot type ext3 (rw,noatime)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
위에서 본 바와 같이 sda라는 하드디스크를 몇 개의 파일시스템으로 나누어서 사용중임을 확인할 수 있다.
위의 그림3개에서 확인된 내용을 추가 하드디스크를 장착하여 파일시스템을 만들고 마운트까지 마무리한후의 내용과 비교해 보기바란다.
2. 추가할 HDD를 HDD확장슬랏에 장착한다.
일반적으로 핫스왓방식이 지원되는 시스템이라면, 장착과 동시에 운영체제에서 인식이 바로된다.하지만, 여기서는 설명을 하기위해 핫스왓방식이 지원되지않은 경우로 가정하겠다.
서버용도로 사용하는 거의 모든 HDD는 스카시(SCSI)방식일 것이다.
정식으로 서비스하기위한 용도로 사용되는 서버라면 SCSI방식을 사용해야한다.
물론, IDE방식도 가능하지만, 1년 365일 쉬지않고 돌아가는 서버의 안정성을 위해
반드시 SCSI방식의 HDD를 사용토록 해야한다.
3. 새로운 HDD를 장착한 후에 서버를 재부팅한다.
재부팅시에 메시지를 자세히 살펴보면 새로운 HDD에 관련된 메시지를 볼수가 있다.
4. 재부팅이 끝나고 나면 dmesg란 명령어를 사용하여 장착된 SCSI HDD의 정보를 확인한다.
dmesg는 텍스트파일로 재부팅될때마다 새로 생성이 되며 위치는 /var/log/dmesg에 있다.
명령어의 위치는 리눅스의 경우 대부분 /bin/dmesg이다.
자, 다음과 같이 dmesg란 명령어를 입력하여 새로추가된 HDD의 SCSI ID를 확인토록한다.
[root@duwon ~]# dmesg | grep SCSI
SCSI subsystem driver Revision: 1.00
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec aic7896/97 Ultra2 SCSI adapter>
aic7896/97: Ultra2 Wide Channel A, SCSI Id=7, 32/253 SCBs
scsi1 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec aic7896/97 Ultra2 SCSI adapter>
aic7896/97: Ultra2 Wide Channel B, SCSI Id=7, 32/253 SCBs
Type: Direct-Access ANSI SCSI revision: 02
Type: Direct-Access ANSI SCSI revision: 03
Type: Processor ANSI SCSI revision: 02
SCSI device sda: 35565080 512-byte hdwr sectors (18209 MB)
SCSI device sdb: 35916548 512-byte hdwr sectors (18389 MB)
추가로 하드디스크를 장착하였기 때문에 sda외에 sdb라는 하드디스크를 커널이 인식하였음을 알 수 있다.
이제 이 sdb라는 추가 하드디스크를 사용키위해 파일시스템을 만들고 fdisk를 하여 파티션생성후에 마운트를 시켜 이 하드디스크를 사용하도록 할 것이다.
5. SCSI ID를 확인했다면 이제 fdisk를 실행시켜 파티션을 생성해 줘야한다.
위에서 확인한 추가 하드디스크의 SCSI ID는 /dev/sdb이다.
따라서 이 SCSI ID를 사용키위해 먼저 fdisk로 파티션을 생성하여야한다.
아래예와 같이 fdisk라는 명령어를 이용하여 파티션생성작업을 하여보자.
파티션을 생성하기 위해서는 fdisk 실행후에 실린더번호를 정확히 입력하고
사용코자하는 용도대로 설정하면 된다.
참고 : fdisk 명령어
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
p라는 fdisk 명령어는 현재 파티션정보를 보고자함이다.
만약 새로운 파일시스템을 생성하려면 아래의 예와 같이 n이라는 fdisk명령어를 이용하여 사용할 파티션번호를 입력하면 된다.
6. 작성된 파티션을 사용키위해 파일시스템을 생성한다.
mke2fs /dev/sdb
이제 생성된 파티션을 사용키위해 mke2fs라는 리눅스명령어를 사용하여 파일시스템을 생성한다.
"mke2fs 생성할 파일시스템명"으로 입력해주면 아래의 예와같이 파일시스템을 생성하여 준다.
mke2fs라는 명령어의결과 생성되는 파일시스템결과에서 알 수 있는 내용은 다음과 같다.
. Block size 크기
. Fragment size 크기
. inode의 수
. 수퍼유저가 사용할 block의 수(전체 block의 5%를 차지함)
. 첫 번째 데이터블럭
. Block group의 수
. 그룹당 블록수
. 그룹당 fragment의 수
. 그룹당 inode의 수
물론 위의 정보들을 처음접하게 되는 분들이라면 뭐가뭔지 이해하지 못할 수도 있다.
하지만, 파일시스템에 대한 정확한 이해를 하려면 위의 정보들이 어떤 의미를 가지고 무엇을 의미하는지는 정확히 알아야할 필요성은 있다.
물론, 단순히 하드디스크를 추가장착하는 것만이 목적이라면 위의 정보에 대한 의미를 구체적으로 몰라도 관계는 없다.
필자가 강조하고자 하는 것은 진정한 서버관리자, 즉 진정한 수퍼유저라고 한다면 이런 메시지뿐아니라 모니터에서 흐르는 모든 메시지들을 좀더 정확히 분석하고 이해하는 노력이 필요하다는 것이다.
7. 준비된 파티션을 마운트를 시키기 위해 디렉토리를 작성하고 마운트를 시킨다.
mkdir /home2
mount -t ext2 /dev/sdb /home2
리눅스에서 사용하는 파일시스템은 ext2라는 파일시스템이며, 생성한 home2라는 디렉토리와
물리적인 파티션인 /dev/sdb를 마운트시키면 이제부터는 기존에 있던 디렉토리처럼 마음대로 사용이
가능하다.
8. 부팅시 자동마운트되게 하기위한 파일시스템테이블 수정
지금까지 한 작업은 일시적으로 사용할수는 있지만, 부팅시마다 적용하기 위해서는
부팅시 자동마운트되는 파일시스템테이블(/etc/fstab) 수정을 해야한다.
[root@duwon /]# vi /etc/fstab
/dev/sda3 / ext3 defaults,noatime 1 1
/dev/sda1 /boot ext3 defaults,noatime 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults,noatime 0 0
none /dev/shm tmpfs defaults 0 0
/dev/sda2 swap swap defaults,noatime 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/sdb /home2 ext2 defaults 1 2
위의 예와 같이 작업된 후에는 시스템재부팅시에도 마운트할 필요없이 그대로 사용할수 있다.
기존의 내용과 다른점은 맨 마지막줄에 /dev/sdb가 /home2에 마운트되게끔 설정이 추가되었다는 것이다.
9. 파일시스템 생성 최종확인
이제 df -k로 파일시스템정보를 다시 확인한 것이다.
추가작업하기 전의 내용과 달라진 부분을 확인해 보기바란다.
[root@duwon home2]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 15947024 2810664 12326284 19% /
/dev/sda1 505605 13764 465737 3% /boot
none 516364 0 516364 0% /dev/shm
/dev/sdb 17674512 20 16776580 1% /home2
즉, 맨 마지막 줄의 /dev/sdb라는 파일시스템이 생성되어 /home2라는 디렉토리에 마운트되어 있음을 볼 수 있다.
이제 마지막 확인을 하기위해 "mount"라는 명령어로 현재 마운트된 정보를 확인해본 것이다.
[root@duwon home2]# mount
/dev/sda3 on / type ext3 (rw,noatime)
none on /proc type proc (rw,noatime)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
devfs on /dev type devfs (rw)
/dev/sda1 on /boot type ext3 (rw,noatime)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
/dev/sdb on /home2 type ext2 (rw)
[root@duwon home2]# mount
/dev/sda3 on / type ext3 (rw,noatime)
none on /proc type proc (rw,noatime)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
devfs on /dev type devfs (rw)
/dev/sda1 on /boot type ext3 (rw,noatime)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
/dev/sdb on /home2 type ext2 (rw)
추가하기전에는 보이지 않았던 /dev/sdb라는 파일시스템이 /home2에 마운트되어 있다는 것을 확인할 수 있을 것이다.