라즈베리파이 + openmediavault 로 나스 만들기 (각종 에러 해결법 포함) | 라즈베리파이 활용(1)
이번 게시글은, 나스 한번 싸게 만들어보겠다고 한참동안 내가 잡고 있으면서 겪었던 수많은 문제들에 대한 해결책과 함께, OMV의 설치 방법에 대해서 알아보도록 하겠다. 사실 이미 많은 게시글들이 나와 있지만, 내가 찾는 문제들을 해결한 예시는 없었으며, 아마 많은 사용자들이 겪고 있을 것으로 예상되는 문제들이기에 분명히 도움이 될 것이라고 생각하고 적어본다.
내가 겪었던 문제들 요약(트러블 슈팅 참고용)
내가 겪었던 문제들의 상세 내용에 관해서는 아래의 각 단계별 해설을 참고하도록 하자.
간단히 문제들을 요약하자면,
라즈베리파이 모델에 따라서 Openmediavault를 지원하지 않는 경우가 있다.
라즈베리파이 1세대의 모델들과 라즈베리파이 제로와 같은 모델들은 성능이 부족하기 때문에 지원하지 않는다.
나의 경우, 라즈베리파이 출시 초창기에 구입한 raspberrypi 1 B+ 모델을 이용하고 있었기에 무슨 삽질을 해도 해결이 안되고 다양한 에러들을 뱉어주었다. 하나씩하나씩 해결한 끝에도, 설치후 인터넷 어댑터를 인식하지 못하는 문제가 발생했었다.
라즈베리파이의 OS의 종류에 따라서 Openmediavault를 지원하지 않는 경우가 있다.
라즈비안의 데스크탑 버전이나 풀버전 등등은 지원하지 않는다. 오직 Lite버전(CUI만 들어있는 버전)이 공식적으로 지원된다.
이는 간단하게 OS를 다시 인스톨하면 해결할 수 있다.
SD카드에 따라서 라즈베리파이의 퍼포먼스나 도중에 설치가 되지 않는 등등의 문제들이 발생한다.
평소 사진을 많이 찍기에 집에 굴러다니는 Micro sd 카드를 활용해볼 생각으로 열심히 포맷해서 꽂았을 때, 느려서 오래걸려서 짜증나는 패턴과, 분명 쓰기 잠금 기능이 없는 마이크로 sd 카드임에도 쓰기 잠금이 걸려버려서 쓸 수 없게 되는 경우가 많았다(특히 싼디스크...). 개인적으로는 적당하게 32기가의 용량을 가진 키옥시아의 sd카드를 새로 구매해서 해결했다.(장당 5000원 수준) 그리고 기본적으로 CMD의 Disk Part 등을 사용해서 클린 포맷을 해주도록 하자.
라즈베리파이 OS의 버전에 따라서 설치가 제대로 되지 않는 경우가 있다.
이 문제가 상당히 골을 때리는 패턴인데, 보통 라즈베리파이의 OS의 경우 무료 배포로 최신 판을 얼마든지 다운 받을 수 있는 상황일 것이다. 하지만, 놀랍게도, 버전에 따라서는 설치가 어떻게 해도 제대로 안되는 경우가 많다. 그렇기 때문에, 나의 경우에는, 메뉴얼을 참고로, 작동을 보증하는 버전의 라즈베리 파이 OS를 설치해서 해결했다.
구체적으로는, 다음 사이트에서 라즈베리파이 OS의 구버전의 아카이브를 다운로드 받으면 된다. 버전은 위에 적혀 있듯이 2019-07-10이다(현재 OMV6가 나와서 향후 검증된 버전이 바뀔 것이다. 아래의 내용들을 참고로 해당 문서의 주소로 들어가서 버전을 확인해주도록 하자.). 그리고 모든 설치가 끝난 뒤, 버전을 올려주면 되니 너무 걱정하지는 말도록 하자. https://www.raspbian.org/RaspbianMirrors
구체적인 다운로드 방법의 경우 아래에서 해설하도록 하겠다.
위의 문제들이 복합적으로 작용해서 발생하는 에러의 예시로는,
0 wget: unable to resolve host address ‘xxx.zzzzz.com’
네임서버에서 주소를 가져올 수 없을 경우에 발생하는 에러이다. 공유기의 ip와 구글의 dns 서버의 ip를 입력해주도록 하자.
sudo nano /etc/resolv.conf
문서가 열렸다면, 아래에 다음과 같은 내용을 적어주자. (공유기나 네트워크 환경에 따라서 1,2번째 줄의 ip주소는 바뀔 수 있다.)
nameserver 10.3.1.1
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 4.4.4.4
이후, 서버를 재시작한다.
sudo /etc/init.d/networking restart
1 failed to start the php 7.3 fastcgi process manager
당장은 php와 관련된 것들을 삭제하고 다시 설치하면 작동하기도 하지만, 결국 다른 문제가 계속 터졌었다. 일단 해결하는 법을 적어두자면,
dpkg --list|less|grep php
sudo apt-get --purge remove php7.3-fpm
를 입력해주면 된다. 버전이 다르면 다른 버전에 맞춰서 삭제해주면 되며, 이후
sudo apt install php-fpm
와 같은 내용을 넣어주면 된다. 이래도 안되면 어딘가 다른 곳에 문제가 있으니 포기하도록 하자.
2 a start job is running for wait for network to be configured
Openmediavault를 설치한 이후에 나오는 에러로, 거의 마무리 단계에서 발생하기에 상당히 짜증나는 문제이다. 간단히 말하자면, 네트워크 어댑터의 응답을 기다리는 것인데, 이후에 다음 단계로 넘어가지 못하고 실패하게 된다. 이걸 기달리지 않게 설정해버리면 오류는 발생하지 않지만, 인터넷에 연결할 수 없다는 문제가 발생한다. 이는 아래와 같이 해결한다.
cd /etc/netplan/
sudo nano 20-openmediavault-eth0.yaml
이후 아래와 같은 내용을 추가해준다.
ethernets:
eth0:
dhcp4: true
optional: true
그리고, 한번 더 같은 내용을 넣어주도록 하자.
sudo nano 10-openmediavault-default.yaml
여기까지 한 뒤, 재부팅을 했는 데도 안된다면, 이더넷 관련 하드웨어가 제대로 인식되고 있지 않은 것이다. OS의 버전, 라즈베리파이의 버전을 잘 확인한 뒤, 새로 구매하거나 포맷하도록 하자.
3 계정 추가가 안될 경우
루트권한의 경로에 문제가 있을 수 있으니, 아래의 명령어를 넣은 다음, 다시 진행해보도록 하자.
su -
echo $PATH
adduser newuser
이외에도 설정상 이따금 만져야할 필요가 있는 명령어로 다음과 같은 것들이 있다.
sudo omv-firstaid
sudo raspi-config
또, 라즈베리파이의 OS의 버전을 올리기 위한 아래와 같은 명령어도 있다.
sudo apt-get dist-upgrade # OS업그레이드
sudo rpi-update # 펌웨어 갱신 실행
sudo reboot # 재부팅
라즈베리파이 준비하기!
0. 적절한 버전의 라즈베리파이 모델 구매/준비 하기!
구체적으로는,
- 라즈베리파이 2 이후의 모델
- 렘이 2기가 이상인 모델
- 기가비트이더넷을 지원하는 모델
- USB 3.0을 지원하는 모델
을 추천한다. 현 시점에서는 라즈베리파이 4의 2기가 모델이 가장 적절할 것이다. 이외에도, 마이크로 SD카드를 연결할 수 있는 윈도우, 맥, 리눅스 등등의 컴퓨터가 하나 필요하다.
나는 4기가를 사용했지만, 사용량이 4기가는 커녕, 2기가에 근접하지도 못한다(NAS로 사용시 보통 1기가 안팏에서 유지 됨). 굳이 비싼 돈 주고 4기가를 살 이유는 없다.
1. 라즈베리파이 관련 OS의 미러/아카이브 사이트에서 알맞은 버전을 다운 받는다.
OMV4 이후에는, 이미지 파일이 아닌, 라즈베리파이 상에서 간단히 설치가 가능하기 때문에, 라즈베리파이의 OS를 별도로 다운 받을 필요가 있다. 하지만 위에서 말했듯이, 검증되지 않은 버전의 경우 다양한 에러를 쏟아 내기 때문에 검증된 버전을 다운로드 하는 것을 추천한다.
현재 OMV5의 경우에는, 2019-07-10 버전이 검증된 버전이라고 하며, OMV6도 나와 있으니 곧 해당하는 버전이 갱신될 것으로 예상된다. 버전 정보의 경우, https://github.com/OpenMediaVault-Plugin-Developers/docs 에서 문서를 통해서 그때 그때 확인할 수 있다(현재 4,5까지만 있음).
현재로써는 구체적으로는 이곳(B모델, OMV5 매뉴얼)에서 확인할 수 있다.
구체적으로 어디에서 다운 받냐면, 아래의 미러 사이트에서 다운 받으면 된다.
나와 같은 사이트를 이용할 사람은, 「Parent Directory」 → 「pub」 → 「raspberrypi」 → 「raspbian_lite」 → 「images」 → 「2019-07-12」 순으로 조작해주면 된다. 사이트별로 약간씩 차이가 있으니 잘 확인해보도록 하자.
2 마이크로 SD 카드 포멧하기
윈도우든, 맥이든, 리눅스든 간에, SD카드를 마운트한 다음, 임의의 형식(컴퓨터가 읽을 수 있기만 하면 됨)으로 포멧해주도록 하자. 어짜피 이미지를 구우면서 다시 포멧되게 된다. 다만, 오래된 SD카드이거나 이상한 문제가 자꾸 발생한다면 클린 포멧을 해주도록 하자.
3 라즈베리파이의 OS의 이미지를 SD카드에 구워주도록 하자.
나의 경우 Etcher를 사용해서 이미지를 구웠다. 딱히 정해진 건 아니니 원하는 툴로 구워주자.
4 구워진 SD카드의 Boot 최상단에 빈 파일로 ssh를 만들어주도록 하자.
별도의 키보드, 마우스가 없더라도 편하게 ssh로 접속해서 작업하기 위해서이다. 새로만들기로 "ssh.txt"를 만들어 준뒤, ".txt"를 지워주면 간단하게 만들어 줄 수 있다. 혹시 처음부터 무선 인터넷을 사용할 생각이라면, 별도의 파일을 만들어주어야 하지만, NAS의 성능을 위해서는 결국 유선 인터넷이 필요하므로 생략한다.
5 라즈베리파이 OS 설치하기
SD카드를 꼽고 전원을 연결해주면 된다. 참을성이 있는 사람은 기다리고, 참을 성이 없는 사람은 모니터를 연결해서 언제 다 되는지 지켜보도록 하자. 덤으로 인터넷 선도 유선으로 연결해주도록 하자.
라즈베리파이 설정하기!
6 SSH로 접속하기
라즈베리파이의 경우, 처음에는 호스트 네임이 raspberrypi로 설정되어 있기에, 아래의 주소를 통해서 간단하게 ssh로 접속해줄 수 있다. 굳이 공유기에 연결하고 ip주소를 알아볼 필요 없이, 아래의 주소로 접속해주면 된다. 향후 호스트명을 변경하였을 경우에는, 해당 호스트명으로 접속하도록 하자.
raspberrypi.local
맥의 경우, 터미널을 연 뒤 아래의 명령어를 입력하면 간단하게 접속할 수 있다.
ssh pi@raspberrypi.local
개인적으로, putty보다는 맥의 터미널을 이용하는 것을 추천한다. nano등등을 사용할 경우, 간단히 붙여넣기 기능을 사용할 수 있기 때문이다.
이따금 아래와 같은 문구가 나오기도 하는데, yes를 입력해주면 된다.
Warning: the ECDSA host key for 'raspberrypi.local' differs from the key for the IP address '10.3.1.136'
Offending key for IP in /Users/kimdongsik/.ssh/known_hosts:26
Matching host key in /Users/kimdongsik/.ssh/known_hosts:28
Are you sure you want to continue connecting (yes/no)?
이후 비밀번호를 요구하면, raspberry라고 입력해주면 된다.
7 라즈베리파이 비밀번호 바꾸기
기본 비밀번호와 계정은 보안에 아주 취약하므로, 바로 비밀번호부터 바꿔주도록 하자.
passwd
를 입력한 후, 현재 비밀번호를 입력하고, 새 비밀번호와 새 비밀번호 확인을 입력해주도록 하자. 이어서 루트 비밀번호도 설정해주도록 하자.
sudo passwd root
위와 거의 동일할 것이다. 이후, 혹시 모르니, pi 유저를 ssh를 이용할 수 있는 권한을 미리 주도록 하자.
sudo adduser pi ssh
8 호스트명 변경하기
라즈베리파이를 한 개만 운영할 것이라면 큰 문제는 없지만, 나는 이런 기기가 적어도 4개는 있고 앞으로 늘어날 가능성이 높기 때문에, 꼭 호스트명을 변경하는 편이다. 알기 쉬워지는 장점이 있기도 하고.
sudo nano /etc/hostname
먼저 위의 명령어를 넣어서 호스트 네임을 원하는 이름으로 바꾸어 주도록 하자. 이후,
sudo nano /etc/hosts
의 127.0.1.1 옆의 항목에 위에서 설정한 호스트 네임을 설정해주도록 하자.
참고로 나의 경우 nas00으로 설정해두었다.
9 라즈베리파이 업데이트 하기
아래의 명령어를 입력한 뒤 가만히 기다리면 된다. 인터넷 속도에 따라서 10~30분 이상 걸리기도 하니 기다리도록 하자.
sudo apt-get update && sudo apt-get upgrade -y
9-1. 아래의 명령어 입력해주기 (안해도 잘 되는 경우가 있음)
sudo rm -f /etc/systemd/network/99-default.link
이따금 이 명령어를 넣지 않으면 OMV가 잘 작동하지 않는 다는 이야기도 있으니 언급하고 넘어간다.
OMV를 사용하자!
10 OMV 설치해주기!
드디어 기다리고 기다리던 OMV의 설치 시간이다. 아래의 명령어를 집어넣고 역시 30분 정도 기다리면 된다. 혹시 명령어가 바뀔 수 있는데, 이러한 경우에는 https://github.com/OpenMediaVault-Plugin-Developers/installScript 에서 확인할 수 있다.
sudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
여기까지 한다면, 설치중에 자동으로 재부팅이 되면서, 바뀐 호스트 명으로 다시 ssh접속을 해줄 필요가 생기게 된다. 또한, 정상적으로 작동한다면, 이제 로컬 네트워크 내의 컴퓨터의 인터넷 브라우저에, 호스트명.local을 통해서 접속해볼 수 있을 것이다.
*굳이 ip주소가 아닌 호스트명을 이용하는 이유는 일반적으로는 동적 주소로 계속 할당이 바뀌기 때문에 고정해줄 필요성이 있기도 하고, 나의 기숙사의 경우, 모뎀과 공유기가 일체형이기에 공유기를 통해서 주소를 고정해줄 수 없기 때문에 호스트명을 이용하였다. 훨씬 편하기도 하고.
11 OMV 접속하기!
아래와 같이 호스명을 입력해서 접속해보도록 하자.
초기 계정/ 비밀번호의 경우, 각각 아래와 같다.
admin
openmediavault
로그인 후, 제일 먼저, [시스템] - [일반 설정] - [웹 관리자 암호] 를 설정해주도록 하자.
이후 수시로, 아래와 같은 메세지가 나오는데, 계속해서 "적용"을 눌러주도록 하자.
12 SSH를 통해서 외장하드 마운트 준비하기
sudo apt-get install exfat-fuse exfat-utils -y
sudo apt-get install ntfs-3g -y
위를 통해서, exfat과 ntfs를 읽을 수 있도록 준비해주자.
12-1 원하는 사람은 외장하드 포멧하기
외장하드를 라즈베리파이에 연결한 뒤, 아래의 명령어로 외장하드를 확인해본다.
df -h
외장하드에 별다른 내용물이 없다면, 한번 포맷해주도록 하자. 외장하드가 크면 큰수록 시간이 더 걸리며, OMV상에서도 포멧을 할 수 있지만 훨씬 더 오래걸린다.
sudo mkfs.ext4 /dev/확인한_부분
개인적으로는 외장하드를 exfat, ntfs,ext4의 3가지 종류중 하나로 포멧하는 것을 추천한다.
exfat의 경우, 혹시 외장하드를 뽑았을 경우에도 mac, 윈도우, 리눅스 가리지 않고 연결할 수 있으며, ntfs의 경우 윈도우에 연결할 수 있으면서도 안정적이고, ext4의 경우, 제일 빠르고 안정적으로 동작하는 대신 리눅스에만 연결 할 수 있다.
마운트는 진행하지 않도록 한다. OMV와 충돌하는 경우가 있기 때문이다.
13 외장하드 마운트하기
먼저 외장하드가 잘 연결 되었는지를 [저장소] - [디스크]에서 확인해준다.
이어서 [저장소]-[파일 시스템]에서 마운트를 선택해주도록 하자.
14 외장하드에 공유 폴더를 만들어주자
[서비스]-[SMB/CIFS]-공유를 누른뒤, 추가 버튼을 눌러주도록 하자.
이후, 원하는 이름의 공유 폴더를 만들어주고, 원하는 권한을 주도록 하자. 귀찮은 경우에는 모두 "읽기/쓰기"를 선택하고, 계정을 통해서 관리를 하고 싶은 경우(여러 사람이 함께 쓸 경우)에는 적절히 골라주도록 하자. 장치 부분에서도 원하는 장치를 고르도록 하자.
경로의 부분에 원래 있던 폴더를 설정해주면, 이미 저장되어있던 폴더의 일부분만 공유하는 것도 가능하다!
이후 [설정]으로 돌아와서 활성화를 눌러 주면 NAS로의 사용의 준비가 끝났다!
마무리! 윈도우 & 맥에서 연결해서 사용하기
여기서 끝일줄 알았겠지만 조금 더 남아있다.
15 윈도우의 경우
먼저 내 컴퓨터로 들어가 준 뒤,
내 컴퓨터 상단의 컴퓨터를 눌러서 네트워크 디스크를 매핑 해준다.
이후에는 원하는 알파벳을 할당하고, Folder:라는 곳에 \\nas00.local 과같은 방식으로 접속해준다. 이 과정속에서 OMV의 설정을 참고로 게스트로 들어가거나 특정 계정을 통해서 로그인해주도록 하자.
윈도우의 경우, 기본 설정이 껐다키면 자동으로 매핑해준다. 참 편리한 것 같다.
15 맥의 경우
파인더에서 command + K 또는 [Go] - [Connect to Server]를 선택해주도록 하자.
이후, smb://내가 설정한 이름.local 을 통해서 접속하면 설정해둔 폴더가 표시될 것이다.
연결을 선택한 이후에는, OMV에서 설정해둔 guest 여부와 사용자 계정의 이름과 암호를 입력해주면 된다.
또한, 매 로그인마다 연결하는 것이 귀찮기에, 자동으로 등록해주도록 하자.
파인더 상의 최 상단까지 올라가준 이후에, 원하는 폴더를 로그인 아이템에 드래그해주면 추가해줄 수 있다.
축하한다! 여기까지 따라왔다면, 이제 외장하드를 마음껏, 동시에 여러 컴퓨터에서 클라우드처럼 사용할 수 있을 것이다. 물론 하나의 파일을 동시에 쓰게 된다면 새로운 문제가 발생하겠지만 말이다.
여담
참고로, 나의 경우, 100메가의 대역폭에서 운영하고 있기에, 속도면에서 굉장한 애로사항이 꽃피고 있다.
그래서 나는 기가비트 내부망을 구성하기 위해서 네트워크 스위치(8포트)와 함께 ASUS의 공유기를 구매했다.
덤으로, 아키하바라에서 직접 micro sd 카드를 구매하거나, 라즈베리파이와 케이스를 구해왔는데, 한국의 용팔이들과는 다르게 가격을 미리 걸어두고 장사를 하는 덕분에 아주 합리적인 가격(인터넷 보다 쌈;)에 NAS 를 구성할 수 있었다.
그리고 조금이라도 더 높은 성능을 얻고 싶다면, OMV를 이용하지 않고, 그냥 smb 등등을 직접 이용하는 편이 나을 수 있다.
맺음말
이번 게시글에서는 내가 3일 이상 삽질을 하면서 얻은 노하우와 정보들을 총정리 해보았다. 이 안에 다 담지 못한 내용들/가다듬을 필요가 있는 내용들도 추후 올라올 예정이다. 아무래도 향후 내 직장 생활 속에서 네트워크와 리눅스와 관련된 지식, 라즈베리파이를 이용한 프로토타입을 만드는 지식은 굉장히 도움이 될 것 같기 때문이다.
밑에 공감 버튼 한 번씩 클릭 부탁드립니다!
내용에 관한 질문이나 의견이 있다면 댓글로 남겨주세요.
인스타: @kkingchangg
크라우드픽: @Gehdtlr2547
Copyright 2021 KIN All rights reserved.
KIN
'정보, 기술 > 개발 모음' 카테고리의 다른 글
내부망 구성시의 공유기, 스위치 연결 순서에 따른 속도에 대하여 | 기가비트 인터넷 활용하기 (0) | 2021.06.24 |
---|---|
내부망(LAN)과 외부망(WAN)에 대하여 | 기가비트 인터넷 활용하기 (0) | 2021.06.24 |
ARCore 관련 Unity 에러 해결하기! | 유니티(Unity) (2) | 2020.12.17 |
ARCore 시작부터 테스트 앱 빌드까지! | 유니티(Unity) (0) | 2020.12.17 |
기본 콘솔과 연산자, 자료형에 관하여 | R: 통계용 프로그래밍 언어 입문! (2) (0) | 2020.10.14 |
댓글