몇 달 전, 라즈베리파이3 B+ 모델을 구입했다. 다른건 다 좋았으나 디스크 공간이 부족하여 안 쓰는 노트북에서 2.5인치 하드디스크를 떼어내어 외장 하드로 쓰기로 했다. (SATA to USB 케이스 별도 구매)
처음에는 USB를 꼽기만 하면 자동으로 마운트 되면서 Kodi에서 인식을 했었기 때문에 만족하면서 잘 쓰고 있었는데 얼마 전부터는 USB를 꼽아도 마운트가 되지 않아 Kodi 에서 디스크에 접근할 수 없는 상태가 되었다. 결국 수동으로 마운트해서 사용하게 되었고 이 경험을 공유하고자 한다.
마운트 작업을 하기 위해 먼저 ssh로 접속해야 한다. 운영체제는 데비안 기반의 라즈비안을 사용한다.
1. 디바이스와 파티션 확인
우선 lsblk
명령어를 통해 연결되어 있는 디바이스 목록을 확인해보자.
pi@raspberrypi:/media $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 698.7G 0 disk
├─sda1 8:1 0 18G 0 part
└─sda2 8:2 0 680.6G 0 part
mmcblk0 179:0 0 14.9G 0 disk
├─mmcblk0p1 179:1 0 1.8G 0 part
├─mmcblk0p2 179:2 0 1K 0 part
├─mmcblk0p5 179:5 0 32M 0 part
├─mmcblk0p6 179:6 0 66M 0 part /boot
└─mmcblk0p7 179:7 0 13G 0 part /
sda 디바이스가 현재 연결된 외장하드이고 마운트포인트가 비어있는 것을 볼 수 있다. mmcblk0으로 나오는 것은 라즈베리파이가 메인 저장소로 사용하는 15G 용량의 SD카드이다.
sda는 18G의 sda1과 680G의 sda2 파티션으로 나누어져 있는데, sda1은 아마도 시스템에서 사용하는 것 같고 내가 사용할 파티션은 680G 용량의 sda2가 되겠다.
2. 파일 시스템 확인
이제 해당 파티션의 파일 시스템이 무엇인지 알아내야 한다. fdisk
명령어를 사용해보자.
pi@raspberrypi:~ $ sudo fdisk -l
.
.
.
Disk /dev/sda: 698.7 GiB, 750156374016 bytes, 1465149168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd1633466
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 37750783 37748736 18G 27 Hidden NTFS WinRE
/dev/sda2 37750784 1465143295 1427392512 680.6G 7 HPFS/NTFS/exFAT
맨 밑줄의 sda2 파티션 부분을 보면 타입이 HPFS/NTFS/exFAT로 나타나는걸 볼 수 있다. 왜인지는 정확히 모르겠으나 구글링 해보니 이건 NTFS 파일 시스템이라고 한다. (정확히 아시는 분은 댓글 달아주시면 감사하겠습니다)
3. 마운트 작업(부팅 시 자동 마운트)
일반적으로 마운트/언마운트는 mount/umount
명령어를 사용한다. 하지만 이렇게 명령어로 작업하면 재부팅될 때 자동으로 마운트 되지 않으므로 수동으로 다시 작업해줘야하는 번거로움이 있다.
그래서 자동으로 마운트할 수 있는 fstab을 사용해봤다. fstab은 마운트 정보를 설정 파일의 형태로 저장해둔 것인데, 부팅될 때 이 설정파일에 있는 대로 자동으로 마운트가 된다.
우선 파일을 열어보면 다음과 같다.
pi@raspberrypi:~ $ sudo vim /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p6 /boot vfat defaults 0 2
/dev/mmcblk0p7 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
부팅될 때마다 자동으로 /dev/sda2
파티션을 /media/hdd
디렉토리에 마운트하기 위해 맨 밑줄에 다음 라인을 추가했다.
/dev/sda2 /media/hdd ntfs rw,user,auto,suid,uid=1000,gid=1000 0 2
/dev/sda2
: 마운트하려는 파티션/media/hdd
: 마운트 디렉토리- ntfs: 파티션의 파일 시스템 타입
- rw,user,auto.suid,uid…: 마운트 옵션
- 0: 덤프 관련 옵션
- 2: 무결성 검사 관련 옵션
uid와 gid를 설정해주지 않으면 마운트 디렉토리의 owner와 group은 root가 된다.
root가 되어버리면 일반 유저가 접근할 수 없으니 당연히 Kodi에서도 접근할 수 없기 때문에, owner와 group을 일반 유저 계정으로 바꿔주었다.
pi@raspberrypi:/media $ ls -al
dr-x------ 1 pi pi 4096 5월 30 23:58 hdd
만약 마운트 디렉토리의 퍼미션(rwx)을 원하는대로 변경하고 싶다면 umask, dmask, fmask옵션을 활용할 수 있다.
이것은 여기를 참고하면 된다.
이렇게 마운트가 완료되면서 Kodi에서 외장하드에 접근할 수 있게 되었다! 😎