728x90

라즈베리파이에 하드디스크 연결하기

라즈베리파이를 NAS로 사용하는 중입니다. 그런데 파일이동이 잦은데다가 토렌트 머신으로도 사용하려다보니 SD카드만으로는 용량이 부족하더라구요. 게다가 SD카드 읽기쓰기도 한계가 있다보니.. 그래서 하드디스크를 연결하기로 했습니다.

일단 외장 하드디스크를 사용하는것이 좋습니다만.. 라즈베리파이의 USB포트 출력 전류값에는 한계가 있습니다. 하드디스크를 구동하기에도 부족할 뿐더러 가능하다 하더라도 하드디스크가 순간적으로 전류를 많이 먹는 경우에 라즈베리파이가 셧다운 될 수도 있죠. 따라서 유전원 USB허브를 사용하는것을 추천합니다. 하지만 저처럼 이미 남는 하드디스크가 있는 경우, 이를 외장하드처럼 사용할 수 있는 케이스를 이용하는걸 추천합니다. 자신의 하드디스크가 어떤 케이블(IDE/SATA)을 사용하는지를 잘 확인하고 구입해야 합니다.

외장하드 케이스제가 구입한 외장하드 케이스입니다. IDE와 SATA 모두 지원하더군요

하드디스크 연결 확인

라즈베리파이에 연결하는 것만으로도 일단 인식은 되지만 하드디스크에 자료를 저장하기 위해서는 리눅스 작업을 해야합니다. 저는 라즈비안을 설치했으므로 데비안을 기준으로 설명하도록 하겠습니다.

일단 확실히 연결이 되었는지 /dev 디렉토리에 가서 확인하도록 합니다.

ls /dev

sd카드의 볼륨은 mmcblk0 으로 표시되며 슬롯이 하나밖에 없으므로 항상 0번 밖에 볼 수 없을겁니다. usb로 연결한 외장하드의 경우 sda, sdb, sdc, ... 이런 방식으로 연결됩니다. sda가 보인다면 일단 연결이 된겁니다.

라즈비안(데비안) 파티션 나누기

이제부터 할 작업은 root계정의 권한을 필요로 합니다. 먼저 하드디스크의 파티션을 나눠야 합니다. 윈도우와는 달리 리눅스는 보통 용도에 맞게 디렉토리별로 파티션을 나눕니다. '리눅스 파티션 나누기'라고 검색하면 수없이 많은 자료가 나옵니다. 물론 전체를 다 하나의 디스크에 올려도 됩니다만 시스템의 안정성을 위해서 부팅부분은 SD카드에 남겨두고, 자료를 저장하는 부분을 하드디스크에 옮기는것을 추천합니다.

전 메모리 스왑용 파티션, 로그가 쌓이는 /var 파티션, /home 파티션을 나누고 메모리 스왑 파티션은 램의 두 배인 1기가로, 나머지 파티션은 남은 용량을 반반으로 나누기로 했습니다.

파티션 확인

이제 fdisk 명령어를 이용해서 파티션을 나누도록 해보죠.

fdisk /dev/sda

Command (m for help):

m을 입력하면 메뉴가 나옵니다.

Command (m for help): m

Command action

   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)

Command (m for help):

p를 누르면 하드디스크의 파티션 정보가 나옵니다. 파티션을 나눈 순서대로 sda1, sda2, sda3, ... 의 순서로 명명됩니다.

기존 파티션 삭제

일단 하드디스크의 모든 파티션을 삭제해야겠죠? d를 눌러 삭제모드로 진입해서 존재하는 파티션을 모두 지웁니다. p를 눌러 확인했을때 아무것도 없으면 됩니다.

Command (m for help): d

Partition number (1-4):

파티션 설정

먼저 스왑 파티션을 설정해보죠. n을 눌러 새 파티션을 생성합니다. p를 눌러 파티션의 종류를 primary로 설정합니다. 시작 섹터와 끝 섹터를 선택해야하는데 시작 섹터는 그냥 최소값으로, 끝 섹터는 +1G를 입력하여 1기가를 부여합니다. 스왑 파티션은 특별한 목적을 가지는 파티션이므로 시스템 id를 명시해 줍니다. t를 눌러 시스템 id를 설정합니다. 파티션을 선택한 뒤 코드를 입력하면 됩니다. 코드 목록은 l을 누르면 보입니다.

Command (m for help): t

Partition number (1-4): 1

Hex code (type L to list codes): l

Linux swap은 82로군요. 82를 입력합니다.

나머지 파티션은 마찬가지의 방법으로 설정합니다만 시스템 id를 굳이 명시할 필요는 없습니다. 최종적으로는 다음과 같이 나누어졌습니다.

  1. /dev/sda1 : 스왑 파티션
  2. /dev/sda2 : /var
  3. /dev/sda3 : /home

이제 w를 눌러 저장을 해줍니다.

파티션의 포맷

fdisk는 파티션을 어떻게 나눌지만을 결정하고 파티션을 포맷하는것은 mkfs을 이용해야 합니다.

스왑 파티션 포맷하기

스왑 파티션은 다른 포맷과 달리 mkswap 명령어를 사용합니다.

mkswap /dev/sda1

나머지 파티션 포맷하기

리눅스 파티션의 포맷은 여러가지가 있으나 저는 ext4로 정했습니다. 기본으로는 ext3로 포맷됩니다.

mkfs -t ext4 /dev/sda2

mkfs -t ext4 /dev/sda3

파티션에 파일 복사

현재 상태로는 SD카드에 모든 자료가 저장되어있는 상태입니다. 이 파일을 백업하여 하드 디스크에 옮겨줘야 하겠죠. 먼저 임시 디렉토리를 만들어 줍니다.

mkdir /newvar

mkdir /newhome

이제 해당 디렉토리에 하드디스크에 만든 파티션을 마운트 해야합니다.

mount /dev/sda2 /newvar

mount /dev/sda2 /newhome

그리고 /var, /home 디렉토리 내의 파일을 rsync를 이용하여 각각 /newvar, /newhome 디렉토리로 백업합니다.

rsync -ruva /var/* /newvar

rsync -ruva /home/* /newhome

시간이 꽤 걸리므로 기다립니다...

fstab 설정

작업이 완료되면 이제 fstab을 수정해야 합니다. fstab를 설정하면 리눅스 부팅시 자동으로 파티션을 마운트 해줍니다. 자신이 좋아하는 편집기로 파일을 열어 편집하면 되겠습니다.

nano /etc/fstab

vim /etc/fstab

vi /etc/fstab

일단 스왑 파티션을 설정해주도록 하죠.

/dev/sda1 swap swap defaults 0 0

그리고 /var, /home 디렉토리에 각각의 파티션을 마운트 해줍니다.

/dev/sda2 /var ext4 defaults 0 2

/dev/sda3 /home ext4 defaults 0 2

이제 저장을 해준 뒤, 재부팅을 하면됩니다.

출처 : http://dovetail.tistory.com/14

728x90

'UTIL' 카테고리의 다른 글

ico 이미지 만들기  (0) 2014.08.07
비쥬얼스튜디오 visual studio 단축키 세팅  (0) 2014.06.27
라즈베리파이 gpio 릴레이 제어  (0) 2014.05.08
WOL WAKE ON LAN  (0) 2014.05.07
서피스rt 8.0 초기화  (0) 2014.05.01

+ Recent posts