업데이트:

카테고리:

본 글은 <이것이 우분투="" 리눅스다=""> 의 비타민 퀴즈 6.1을 해결하면서 생각을 정리하기 위한 글입니다.


물리적인 하드디스크를 추가했을 때, 윈도우에선 자동으로 디스크가 추가된다(아마도..?). 그러나 리눅스는 그렇지 않다. 따라서 우리는 리눅스에서 추가한 하드디스크를 사용하기 위해선 폴더를 만들고 그 폴더에 직접 하드디스크를 “마운트” 해야한다.

책에선 자세한 설명이 있지만, 내가 이해한대로 글을 적어보자.

  1. 하드 디스크를 추가한다.
  2. 리눅스에 접속해 터미널을 열고 다음 명령어를 통해서 추가된 하드디스크 리스트를 살펴본다.

     fdisk -l
    
    그림1
    그림 1) VMware에서 가상으로 하드디스크를 추가했을 때, fdisk -l을 통해 다음과 같은 상태를 확인할 수 있다.

    빨간 칸 안을 보면 /dev/sdb : 3 GiB 라고 표현되어있는데, 이것은 추가된 하드디스크를 표현한다. sdb에서 “b”는 일종의 하드디스크 번호라고 생각하면 될거같다. 예를 들어 하드디스크가 4개 추가되어있으면 sda,sdb,sdc,sdd 라고 이름이 붙혀지게 될 것이다.

  3. 하드디스크를 마운트하기 전에, 현재 하드디스크는 날것 그 자체이므로 파티션을 분할해줘야한다. 이를 위해 다음 명령어를 사용해 하드디스크의 파티션을 나누도록 하자.

     fdisk /dev/sdb 
    
    그림
    그림 2

    ※ Command (m for help): 에서 m을 눌러 명령어들을 확인해주면 좋다.

    그림
    그림 3
  4. 우리는 새로운 파티션을 만들 것이므로 n을 입력하여 파티션 만들기에 진입한다.

    그림
    그림 4
  5. 내가 아직 extended라는 걸 공부하지 않아서 잘 모른다. 일단은 주로 사용할 파티션을 분리할 것이기 때문에 primary의 p를 선택하자.

    그림
    그림 5
  6. 파티션의 숫자를 입력하자.

    파티션의 숫자란 무엇일까? 현재 가상의 sdb 하드디스크가 3GB의 물리적인 크기를 갖고 있는데, 내가 이 3GB를 하나로 쓰지 않고 여러 개로 나눠서 사용하고 싶다면? 파티션을 나누면된다! 예를 들어 2GB, 1GB 로 나누려면 파티션을 1,2로 나누면 되는 것이다. 이 예시처럼 비타민 퀴즈도 2GB,1GB로 나누라고 하니 따라서 나눠보겠다. 먼저 1을 입력해서 1번 파티션을 생성해주자.

    그림
    그림 6
  7. First sector가 2048로 시작하는 이유는 0~2047 부분은 시스템 성능 향상을 위해 사용하지 않는다고 한다. 이 block들의 단위는 1KB(1024 bites)이다. 여기선 default를 사용하기 위해 그냥 ENTER를 입력한다. 그리고 Last sector는 sector를 입력하거나 size를 입력할 수 있는데, 우리에게 친숙한 size 단위 +2G로 입력함으로써 파티션 1의 크기를 2GB를 할당해주자.

    그림
    그림 7
  8. 파티션 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를 입력했을 때 오류가 났는지 이해가 간다.

  9. command에 w를 입력해서 저장하고 fdisk를 종료한다. 그리고 터미널에서 fdisk -l을 입력하여 상태를 살펴보자.

    그림
    그림 10

    자, 이제 위에 빨간 칸에서 볼 수 있듯이, 파티션 1,2를 적절히 나누었다.

  10. 이제 파티션을 만들었으니 파일 시스템을 이식해야한다. 이 과정을 일종의 포맷이라고 생각하면 된다고 한다. 포맷을 하기 위한 sdb의 파티션을 선택해서 ext4 파일 시스템을 생성해보자.

    mkfs -t ext4 /dev/sdb1를 입력하면 되는데, 여기서 sdb뒤에 번호 1,2는 파티션 번호라고 생각하면 된다.

    그림
    그림 11

    위와 같이 뜨면 포맷이 완료된 것이다. 이제 마운트를 해볼 것이다.

  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번에 존재하는 파일이라는 뜻이다.

  12. /example_disk에 /dev/sdb1 을 마운트 해보자. 명령어는 다음과 같다.

    mount /dev/sdb1 /example_disk
    

    그리고 ls -l /example_disk 를 확인해보면, 다음과 같이 ex_file이 사라짐을 볼 수 있다.

    그림
    그림 14

    즉, /example_disk 는 현재 /dev/sdb1으로 마운트 되었기 때문에 /dev/sda1에 있던 ex_file이 사라진 것이다!

  13. 여기서 /example_disk 에 touch /example_disk/ex_file2 를 입력해 파일을 만들고 ls -l /example_disk 로 폴더 안을 확인하자.

    그림
    그림 15
  14. 이제 마운트 해제한 후 ex_file2가 어떻게 되는지 확인해보자. 명령어는 다음과 같다.

    umount /dev/sdb1
    

    이제 /example_disk 의 안을 살펴보면 다음과 같이 ex_file2는 사라지고 ex_file이 다시 살아난 것을 볼 수 있다.

    그림
    그림 16

이처럼 리눅스에선 새로운 하드디스크를 추가하여 사용하려면, 파티션 설정부터 포맷 및 마운트까지 진행해야 그 하드디스크를 온전히 사용할 수 있다.

3 분 소요