리눅스에서 하드디스크를 추가하는 방법
업데이트:
카테고리: 이것이 우분투 리눅스다
본 글은 <이것이 우분투="" 리눅스다=""> 의 비타민 퀴즈 6.1을 해결하면서 생각을 정리하기 위한 글입니다.이것이>
물리적인 하드디스크를 추가했을 때, 윈도우에선 자동으로 디스크가 추가된다(아마도..?). 그러나 리눅스는 그렇지 않다. 따라서 우리는 리눅스에서 추가한 하드디스크를 사용하기 위해선 폴더를 만들고 그 폴더에 직접 하드디스크를 “마운트” 해야한다.
책에선 자세한 설명이 있지만, 내가 이해한대로 글을 적어보자.
- 하드 디스크를 추가한다.
-
리눅스에 접속해 터미널을 열고 다음 명령어를 통해서 추가된 하드디스크 리스트를 살펴본다.
fdisk -l
그림 1) VMware에서 가상으로 하드디스크를 추가했을 때, fdisk -l을 통해 다음과 같은 상태를 확인할 수 있다. 빨간 칸 안을 보면 /dev/sdb : 3 GiB 라고 표현되어있는데, 이것은 추가된 하드디스크를 표현한다. sdb에서 “b”는 일종의 하드디스크 번호라고 생각하면 될거같다. 예를 들어 하드디스크가 4개 추가되어있으면 sda,sdb,sdc,sdd 라고 이름이 붙혀지게 될 것이다.
-
하드디스크를 마운트하기 전에, 현재 하드디스크는 날것 그 자체이므로 파티션을 분할해줘야한다. 이를 위해 다음 명령어를 사용해 하드디스크의 파티션을 나누도록 하자.
fdisk /dev/sdb
그림 2 ※ Command (m for help): 에서 m을 눌러 명령어들을 확인해주면 좋다.
그림 3 -
우리는 새로운 파티션을 만들 것이므로 n을 입력하여 파티션 만들기에 진입한다.
그림 4 -
내가 아직 extended라는 걸 공부하지 않아서 잘 모른다. 일단은 주로 사용할 파티션을 분리할 것이기 때문에 primary의 p를 선택하자.
그림 5 -
파티션의 숫자를 입력하자.
파티션의 숫자란 무엇일까? 현재 가상의 sdb 하드디스크가 3GB의 물리적인 크기를 갖고 있는데, 내가 이 3GB를 하나로 쓰지 않고 여러 개로 나눠서 사용하고 싶다면? 파티션을 나누면된다! 예를 들어 2GB, 1GB 로 나누려면 파티션을 1,2로 나누면 되는 것이다. 이 예시처럼 비타민 퀴즈도 2GB,1GB로 나누라고 하니 따라서 나눠보겠다. 먼저 1을 입력해서 1번 파티션을 생성해주자.
그림 6 -
First sector가 2048로 시작하는 이유는 0~2047 부분은 시스템 성능 향상을 위해 사용하지 않는다고 한다. 이 block들의 단위는 1KB(1024 bites)이다. 여기선 default를 사용하기 위해 그냥 ENTER를 입력한다. 그리고 Last sector는 sector를 입력하거나 size를 입력할 수 있는데, 우리에게 친숙한 size 단위 +2G로 입력함으로써 파티션 1의 크기를 2GB를 할당해주자.
그림 7 -
파티션 2를 생성해서 3GB의 남은 1GB를 사용하기 위해 4.와같이 Command에 n을 입력하여 파티션 만들기에 진입하고 5.~7.을 반복하자. 이 때, 주의할 점이 7.에서 1GB를 할당하기위해 +1G를 입력하면 다음과 같은 오류가 발생한다.
그림 8 그 이유는, 우리가 3GB에서 2GB를 사용했으니 당연히 3-2 = 1로 1GB가 남았다고 생각되겠지만, 사실은 정확하게 1GB = 1024MB = 1024*1024KB 가 남은 것이 아니라서 +1G를 사용하면 에러가 발생하게 된다. (이것은 나중에 확인해볼 수 있다) 따라서 어차피 남은 용량을 전부 사용할 것이기 때문에 ENTER를 입력하여 파티션 생성을 완료하면 된다.
그림 9 실제로 2번 파티션을 생성하고 보면 위 사진과 같이 size 1023 MiB라고 표현되는 것을 볼 수 있다. 이제 왜 위에서 +1G를 입력했을 때 오류가 났는지 이해가 간다.
-
command에 w를 입력해서 저장하고 fdisk를 종료한다. 그리고 터미널에서 fdisk -l을 입력하여 상태를 살펴보자.
그림 10 자, 이제 위에 빨간 칸에서 볼 수 있듯이, 파티션 1,2를 적절히 나누었다.
-
이제 파티션을 만들었으니 파일 시스템을 이식해야한다. 이 과정을 일종의 포맷이라고 생각하면 된다고 한다. 포맷을 하기 위한 sdb의 파티션을 선택해서 ext4 파일 시스템을 생성해보자.
mkfs -t ext4 /dev/sdb1를 입력하면 되는데, 여기서 sdb뒤에 번호 1,2는 파티션 번호라고 생각하면 된다.
그림 11 위와 같이 뜨면 포맷이 완료된 것이다. 이제 마운트를 해볼 것이다.
-
mkdir /example_disk 를 해서 예제 폴더를 생성하자. 그리고 touch /example_disk/ex_file 로 임시 파일을 생성한 후, ls -l /example_disk로 폴더 안을 확인하자.
그림 12 여기서 주의할 점은 현재 나는 /dev/sda2 로 ubuntu를 부팅해있다는 것이다. 이것은 fdisk -l을 통해 다음과 같이 볼 수 있다.
그림 13 따라서 ex_file은 /dev/sda1에 있는 /example_disk 라는 폴더내에 존재하는 것이다. 즉 /dev/sda 하드디스크의 파티션 1번에 존재하는 파일이라는 뜻이다.
-
/example_disk에 /dev/sdb1 을 마운트 해보자. 명령어는 다음과 같다.
mount /dev/sdb1 /example_disk
그리고 ls -l /example_disk 를 확인해보면, 다음과 같이 ex_file이 사라짐을 볼 수 있다.
그림 14 즉, /example_disk 는 현재 /dev/sdb1으로 마운트 되었기 때문에 /dev/sda1에 있던 ex_file이 사라진 것이다!
-
여기서 /example_disk 에 touch /example_disk/ex_file2 를 입력해 파일을 만들고 ls -l /example_disk 로 폴더 안을 확인하자.
그림 15 -
이제 마운트 해제한 후 ex_file2가 어떻게 되는지 확인해보자. 명령어는 다음과 같다.
umount /dev/sdb1
이제 /example_disk 의 안을 살펴보면 다음과 같이 ex_file2는 사라지고 ex_file이 다시 살아난 것을 볼 수 있다.
그림 16
이처럼 리눅스에선 새로운 하드디스크를 추가하여 사용하려면, 파티션 설정부터 포맷 및 마운트까지 진행해야 그 하드디스크를 온전히 사용할 수 있다.