주제 : Linux 에서 HDD 추가하기
o 하드디스크를 리눅스에서 사용하기 위해서는 아래와 같은 방법을 사용한다.
fdisk 로 HDD 분할 -> 파일시스템 생성(포맷) -> 디렉토리 생성 -> 마운트 -> 마운트 확인 -> 자동 마운트 설정
-- HDD를 추가할때 순서 --
1. HDD 추가
2. 파티션 분할
- fdisk, parted
3. 파일시스템 생성(포맷)
- linux filesystem : ext -> ext2 -> ext3 -> ext4
- windows filesystem : fat -> vfat -> ntfs
4. 마운트
- 새로운 파티션을 특정 디렉토리에 연결시킨다.
5. 마운트 확인
- 마운트된 정보를 출력한다.
6. 자동 마운트 설정
- 리눅스는 마운트가 수동이므로 부팅 후 자동으로 마운트되게 설정한다.
- 방법1 : /etc/rc.local 파일에 mount 정보를 넣으면 된다.
- 방법2 : /etc/fstab 파일에 mount 정보를 넣으면 된다.
-- HDD를 추가할때 순서 --
=====================================================================================
LAB> 운영중인 Linux 에 HDD 를 추가하기
1. HDD 추가
VBox HDD 2개 추가
2. 파티션 분할
# fdisk -l /dev/sdb ( or /dev/sdb)
# fdisk /dev/sdb
:
:
Command (m for help): m
d delete a partition
n add a new partition
p print the partition table
q quit without saving changes
w write table to disk and exit
Command (m for help): n -> p -> 1 -> 엔터 -> +4g
Command (m for help): n -> p -> 2 -> 엔터 -> 엔터
Command (m for help): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 487 3911796 83 Linux
/dev/sdb2 488 1044 4474102+ 83 Linux
Command (m for help): w
- 두 개의 파티션이 분할된 부분이 보여진다.
# fdisk -l /dev/sdb
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 487 3911796 83 Linux
/dev/sdb2 488 1044 4474102+ 83 Linux
3. 파일시스템 생성
- mke2fs -j 옵션 : ext3 파일시스템으로 포맷)
- mkfs.ext3 : ext3 파일시스템으로 포맷)
# fdisk -l /dev/sdb
# mke2fs -j /dev/sdb1
# mkfs.ext3 /dev/sdb2
4. 마운트 (-t 옵션 : 파일시스템의 종류를 선택)
--------------------------------------------------
ex) mount --help
-t vfat , -t ext3 , -t iso9660
-o ro
# mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom
# mount -t ext3 /dev/sdb1 /home/data
--------------------------------------------------
# mkdir /mnt/hdd1 /mnt/hdd2
# mount /dev/sdb1 /mnt/hdd1
# mount /dev/sdb2 /mnt/hdd2
5. 마운트 확인
# mount
:
:
/dev/sdb1 on /mnt/hdd1 type ext3 (rw)
/dev/sdb2 on /mnt/hdd2 type ext3 (rw)
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 7103744 1910668 4826396 29% /
tmpfs 127492 0 127492 0% /dev/shm
/dev/sdb1 3850292 73248 3581456 3% /mnt/hdd1
/dev/sdb2 4403756 139968 4040084 4% /mnt/hdd2
6. 자동 마운트 설정 (여기서는 방법2를 이용한다)
- 방법1 : /etc/rc.local 파일에 mount 정보를 넣으면 된다.
- 방법2 : /etc/fstab 파일에 mount 정보를 넣으면 된다.
# vi /etc/fstab
-- /etc/fstab --
LABEL=/ / ext3 defaults 1 1
:
:
/dev/sdb1 /mnt/hdd1 ext3 defaults 1 1
/dev/sdb2 /mnt/hdd2 ext3 defaults 1 1
-- /etc/fstab --
- 로그인 후 df 로 확인했을 때 /mnt/hdd1, /mnt/hdd2 가 올라오면 성공
# reboot
# df
=====================================================================================
=====================================================================================
LAB> 두번째 파티션을 포맷하고 마운트해보자.
!!! -c 배드검사
!!! -L 라벨명
!!! -j ext3 파일시스템으로 포맷 (옵션 j 가 없으면 ext2로 포맷)
1. 파일시스템 생성(포맷)
# mkdir /home/data2
# mke2fs -c -L /home/data2 -j /dev/sdb2
# e2label /dev/sdb2
2. 마운트
# mount /dev/sdb2 /home/data2
3. 마운트 확인
# df <-- 용량
# df -i <-- 파일의 갯수
# mount
4. 자동 마운트 설정
---------------------------------------------------------------------------
/etc/fstab 의 필드 순서
| 디바이스 | 마운트포인트 | 파일시스템타입 | 옵션 | 덤프 | 파일시스템체크순서
vi 에서 :set number <-- 번호세팅
vi 에서 i 를 입력하면 명령모드 -> 입력모드로 간다.
vi 에서 입력모드 -> ESC -> 명령모드 -> : -> ex모드
vi 에서 :wq 를 입력하면 저장하고 종료한다.
---------------------------------------------------------------------------
# vi /etc/fstab
-- /etc/fstab --
LABEL=/ / ext3 defaults 1 1
/dev/sdb1 /home/data ext3 defaults 1 1
LABEL=/home/data2 /home/data2 ext3 defaults 1 1
:
:
-- /etc/fstab --
# reboot
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 5952252 1143156 4501856 21% /
/dev/sdb1 3850292 73248 3581456 3% /home/data <-- 자동 마운트
/dev/sdb2 4403756 139968 4040084 4% /home/data2 <-- 자동 마운트
:
:
=====================================================================================
=====================================================================================
LAB> /etc/fstab 에 잘못된 정보를 넣었을 경우 문제점을 확인해보자.
- /etc/fstab 에 잘못된 정보를 넣을 경우에는 부팅시 오류가 발생되어 부팅되지 않는다.
- LABEL 이름을 이용해서 정보를 수정해보자.
!!! HDD의 LABEL 명을 확인하기 위해서는 e2label 명령어를 사용한다.
!!! 사용법 : e2label device [ new-label ]
!!!
!!! # man e2label
# cat /etc/fstab
-- /etc/fstab --
LABEL=/ / ext3 defaults 1 1
/dev/sdb1 /home/data ext3 defaults 1 1
LABEL=/home/data2 /home/data2 ext3 defaults 1 1
:
:
-- /etc/fstab --
# e2label /dev/sdb1 datahdd1
# e2label /dev/sdb2 datahdd2
# e2label /dev/sdb1
datahdd1
# e2label /dev/sdb2
datahdd2
# reboot
-- 순서 --
1. 파일시스템을 체크하는 도중에 에러가 발생되면서 더 이상 부팅이 진행이 안되고 멈추게 된다.
2. 복구방법 결정
- Ctrl + D (reboot)
- root 로 로그인해서 /etc/fstab을 수정한다.
3. root 로 로그인해서 /etc/fstab을 수정
- rw(읽기쓰기)로 변경 후 잘못된 /etc/fstab 을 수정한다.
4. reboot
- 파일시스템이 읽기전용이므로 반드시 rw(read, write) 해주고 /etc/fstab을 수정해주면 된다.
(Repair filesystem) 1# mount -o remount,rw /
(Repair filesystem) 1# vi /etc/fstab
-- /etc/fstab --
LABEL=/ / ext3 defaults 1 1
/dev/sdb1 /home/data ext3 defaults 1 1
LABEL=datahdd2 /home/data2 ext3 defaults 1 1
:
:
-- /etc/fstab --
(Repair filesystem) 2# reboot
=====================================================================================