본문으로 바로가기

장치 - 디스크

category SECURITY/Linux 2017. 3. 31. 22:51


장치 - 디스크


파티션 : 하나의 물리적인 디스크를 여러개의 논리적인 디스크로 분할하는 것을 의미한다.


파티션의 종류

① 주(primary) 파티션

 - 하드디스크에는 하나 이상 존재해야 한다.

 - 하나의 디스크에는 최대 4개까지 생성가능하다.

 - 부팅용도로 사용이 가능하다.

 - 파티션 번호 : 1 ~ 4

 - 확장 파티션을 사용할 경우에는 사용가능한 주 파티션은 최대 3개가 된다.

② 확장(Extended) 파티션

 - 하나의 물리디스트에 1개만 생성 가능하다.

 - 논리 파티션을 생성할 수 있는 공간이다.

 - 파일 시스템을 생성할 수 없다. -> 포맷할 수 없다.

 - 파티션 번호 : 1 ~ 4 

 ③ 논리(Logical) 파티션

 - 갯수의 제한없이 분할이 가능하다.

 - 부팅용도로 사용 불가능하다.

 - 파티션 번호 : 5 ~    


하드디스크 유형

 - /dev/hd : IDE 방식의 장치

 - /dev/sd : SCSI(스카시), SATA(사타) 방식의 장치

 ex) /dev/sd  a   1

            ①  ②  ③

① sd : 하드디스크 유형을 말한다.  

② a : 디스크의 순서이다. 순서대로 a, b, c... 로 표기된다.

③ 1 : 파티션 번호를 나타낸다. (1 ~ 4 번은 주파티션과 확장파티션이고, 5번부터는 논리파티션이다.)

- fdisk : 디스크 파티션을 확인하고 추가, 삭제하는 명령이다. 

 

파일시스템 종류

1. 윈도우즈 : NTFS, FAT16/32/64, exFAT, ...

2. 리눅스 : ext2/3/4, xfs, vfs, ...

3. 유닉스 : UFS

4. 맥 : HFS 

- mkfs : 파일시스템을 생성하는 명령이다. 파일을 기록하기 위한 방법

- mount (마운트) : 파일시스템이 다른 디스크를 /의 하위 디렉터리로 연결하여 사용가능하게 해주는 명령이다.

- umount : 파일시스템을 해제시켜주는 명령


디스크 생성

새로운 디스크를 추가하려고 합니다. 먼저 전원을 끄고 VMware setting 부분으로 들어갑니다.

지금은 sample로 디스크 용량을 1GB로 설정했습니다. 

여기서 OK버튼을 누르면 새로운 장치가 생성된 것을 볼 수 있습니다.


전원을 키게 되면 fdisk -l 명령을 통해 아까 설정해주었던 디스크가 생성되었다는 것을 볼 수 있습니다. 

ls -l /dev/sd* 을 통해서도 생성되었다는 것을 확인해 볼 수 있습니다.

생성된 디스크에서 파티션을 설정해주기 위해서 fdisk /dev/sdb 명령을 사용했습니다.

먼저 command창에 help를 확인하기위해 어떤 옵션이 있는지 확인해보았습니다. 

여기서 중요하게 볼 옵션은 n(새로운 파티션을 생성) d(파티션 삭제) p(현재 파티션 목록확인) q(저장하지 않고 나가기) w(저장한뒤에 나가기) 입니다.

파티션을 생성하기위해 n 옵션을 사용했고, 저는 주 파티션 4개를 생성했습니다. 

각 200M씩 설정해놓았고, 마지막 파티션은 나머지용량들을 다 설정했습니다.

먼저 첫번째 파티션을 생성한뒤에 p 옵션을 통해 확인해보았습니다.

나머지 3개를 만든뒤에도 똑같이 p옵션을 통해 생성된 것을 확인했습니다.

그리고 꼭 나갈때에는 w 옵션을 통해서 나가야 파티션이 생성된 것을 볼 수 있습니다.

ls -l /dev/sdb* 명령으로 생성된 파티션이 있는지 확인해보았습니다.

파티션을 나누고서는 쓸 수가 없습니다. 파일시스템을 생성해 준 뒤에 쓸 수 있습니다. 

리눅스의 파일시스템생성은 윈도우즈에 포맷이랑 비슷하다고 보면됩니다.

그리고 파일시스템을 생성하기 위해 mkfs 명령을 이용해 만들어 주었습니다. 참고로 저는 ext3 파일시스템을 만들어주었습니다.

그리고 file -s /dev/sdb*로 ext3파일시스템이 제대로 만들어졌는지 확인했습니다.

파일시스템을 만든뒤에는 디스크에 파일을 쓸수 있도록 mount과정이 있어야 합니다.

먼저 각 파티션에 대한 디렉터리를 생성해주었습니다.

그리고 나서 mount 명령을 통해서 디스크에 등록해주었습니다. (mount -t ext3 /dev/sdb1 /disk1/)

그리고 df -h명령을 통해 현재 마운트된 디스크에 대한 정보를 출력해주었습니다. 이로써 다 만들어진 것을 확인할 수 있었습니다.


※ 현재 상태에서는 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4를 사용할 수 있습니다. 

하지만 만약 /dev/sdb를 사용하게되면 나누었던 장치의 전체를 쓸수있는 상황이 되어 만들어진 파일시스템이 깨지게 됩니다. 

그래서 꼭 파티션을 나누었을 경우에는 전체 사용크기인 /dev/sdb를 사용하면 안됩니다.


※ 장치 초기화 : cat /dev/zero > /dev/sdb     : 모든 정보들이 날아간다(초기화)


'SECURITY > Linux' 카테고리의 다른 글

아카이브(tar), 압축(gzip, bzip, xzip)  (0) 2017.04.03
마운트(Mount), 런 레벨(Run Level)  (0) 2017.04.03
쉘에 대한 이해4  (0) 2017.03.30
쉘에 대한 이해3  (0) 2017.03.29
쉘에 대한 이해2  (0) 2017.03.28