RaspberryPi+Pidora20+외장 HDD |Mac에서 사용할 수 있는 Time Machine 제작ver.1.0

개시하다


지금까지 외장형 HDD 및 Raspberry Pi를 사용한 파일 서버 구축
MacBook에서 TimeCupsule로 임시 사용
이삿짐 서버가 고장 나서요.
이번에는 기존에 사용했던 OS의 랩빈에서 피도라로 변경됐다.
서버가 새로 설정되었습니다.
일부러 다시 설치한 것은 공부를 하기 위해서다.
또 직장에서 사용하는 OS는 CentOS이며, 레드하트 계열의 피도라로 변경하겠다는 목표도 있다.
MacBook Air OS X10.9.2에서 작동합니다.

SD 카드 확보 및 쓰기


먼저 Pidora의 최신 버전http://www.raspberrypi.org/downloads/이 제공됩니다.
Downloads 폴더로 다운로드
$ cd /Users/USERNAME/Downloads/
$ unzip Pidora-2014-R1.zip
$ cd Pidora-2014-R1
$ ls 
Pidora-2014-R1.img      Pidora-2014-R1.img.md5sum
동결을 확인하다.필요한 것은 Pidora-204-R1입니다.예.df -h 명령으로 SD 카드의 위치를 확인한 후(내 환경에서/dev/disk1s1)
$ sudo dd bs=1m if=Pidora-2014-R1.img of=/dev/rdisk1
$ sudo diskutil umountdisk /dev/disk1s1
dd 명령으로 쓰고 꺼냅니다.

RaspberryPi의 초기 설정


완료된 SD 카드를 RaspberryPi에 꽂은 후 시작합니다.
이 때 키보드와 마우스가 네트워크에 연결되지 않았습니다.
그리고 이번에는 처음 시작할 때만 HDMI 출력을 사용하고 GUI를 통해 설정했습니다.
설정은 대화상자만 따라다니기 때문에 순조롭게 진행될 수 있을 것이다.
Create User 항목에서는 사용자를 만들고 Add to Administrators group에서 선택하는 것이 좋습니다.
이렇게 하면 wheel그룹에 추가됩니다. 앞으로 sudo의 설정은 필요 없습니다. sudo는 사용할 수 있습니다.
초기 설정이 끝나면 시작이 끝나면 로그인 화면으로 바뀌어 로그인 후 바로 꺼집니다.
$ shutdown -h now
LAN 케이블을 연결하고 외부 HDD를 재부팅합니다.
키보드와 마우스가 연결되지 않습니다.
그런 다음 Mac의 터미널 연결 SSH에서 작업을 수행합니다.
$ ssh [email protected]

고정 IP 주소

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
IPADDR=192.168.11.2
NETMASK=255.255.255.0
BROADCAST=192.168.11.255
NETWORK=192.168.11.0
GATEWAY=192.168.11.1
DNS1=192.168.11.1
위에서 설명한 대로 네트워크 서비스를 설정하고 저장하여 다시 시작합니다.
$ sudo service network restart
ifconfig에서 IP 주소를 확인하고 싶은데 들어가지 않은 것 같아요.
$ sudo yum -y -v install net-tools
를 참고하십시오.
$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.5  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::ba27:ebff:fea8:4d8d  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:a8:4d:8d  txqueuelen 1000  (Ethernet)
        RX packets 30120  bytes 34974291 (33.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11727  bytes 1142411 (1.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

로그인 루트 비활성화

$ sudo vi /etc/ssh/sshd_config
#PermitRootLogin yes
열다
PermitRootLogin no
다음으로 수정

yum 업데이트로 업데이트

$ sudo yum check-update
$ sudo yum -y -v update
로그가 너무 많아요. -v 옵션을 먼저 놓으세요.
한 시간 정도면 끝나요.

ssh 키 인증 설정


암호 인증 로그인을 비활성화하기 위해 ssh 키를 설정합니다.
우선 ssh 키를 설치할 디렉터리를 만들고 권한을 설정합니다.
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
그리고 맥 쪽에서 열쇠를 만들어서 scp로 랩베리피에게 보냅니다.
Mac 터미널
$ ssh-keygen -t rsa   //パスワードを無しにしたいので何も入力せずにReturn
$ scp id_rsa.pub [email protected]:~/.ssh/id_rsa.pub
RaspberryPi에서 공개 키 이름을 다시 지정하고 권한을 설정합니다.
$ cd ~/.ssh
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
여기에 설정하면 로그아웃하고 ssh에 다시 연결합니다.
이렇게 되면 비밀번호를 입력하지 않아도 로그인할 수 있다.

암호 연결 해제

$ sudo yum -y -v install vim   //vimがなかったのでインストール viでも問題ありません
$ sudo vim /etc/ssh/sshd_config
PasswordAuthentication no
마지막으로 서비스를 다시 시작하고 설정이 완료되었습니다.
$ sudo service sshd restart

TimeMachine 설정


드디어 TimeMachine을 설정합니다.

외부 HDD 설치

fdisk 외부 HDD 설치 볼륨을 확인합니다.
$ sudo fdisk -l
---
/dev/sda1         2048 1953525167 976761560  83 Linux
/dev/sda1에 마운트되었습니다.
이 단계에서 필요에 따라 HDD 형식과 파티션을 설정하십시오.
내 경우는 리눅스 구역을 만들었기 때문에 그렇게 계속 설정합니다.
이 외부 HDD를 마운트할 디렉토리를 만들고 마운트합니다.
$ sudo mkdir /media/mactc
$ sudo chmod 777 /media/mactc/
$ sudo mount /dev/sda1 /media/mactc
$ mount
/dev/sda1 on /media/mactc type ext3  //この行があることを確認

시작 시 자동 마운트

$ sudo vim /etc/fstab
/etc/fstab
/dev/sda1       /media/mbatc    ext3    relatime        0       2
재부팅하고 마운트할지 확인합니다.
$ reboot
$ mount

Netalk 설치


원본 코드로 구축할 수 있지만 어렵기 때문에 간단한 포장판을 설치해 봤다.
$ sudo yum -y -v install netatalk
$ cd /etc/netatalk
$ sudo vim afpd.conf
/etc/netatalk/afpd.conf
- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -maccodepage MAC_JAPANESE -unixcodepage UTF8
마지막 줄에 상술한 내용을 추가하다.
다른 설정 파일도 마찬가지로 다음과 같다.
netatalk.conf
#### machine's AFPserver/AppleTalk name.
ATALK_NAME=TimeMachine

#### server (unix) and legacy client (<= Mac OS 9) charsets
ATALK_UNIX_CHARSET='UTF8'
ATALK_MAC_CHARSET='MAC_JAPANESE'
AppleVolumes.default
# The line below sets some DEFAULT, starting with Netatalk 2.1.
:DEFAULT: options:upriv,usedots cnidscheme:dbd dperm:0774 fperm:0664 ea:sys

# The "~" below indicates that Home directories are visible by default.
# If you do not wish to have people accessing their Home directories,
# please put a pound sign in front of the tilde or delete it.
#~
/media/mactc "TimeMachine" allow:USERNAME or GROUP options:tm
여기로 설정한 후 Netalk를 시작합니다.
$ sudo systemctl start netatalk.service
OS를 시작할 때 Netatalk를 자동으로 시작하도록 설정합니다.
$ sudo systemctl enable netatalk.service
Time Machine으로 사용할 수 있을 것 같습니다.
그렇지만

연결할 수 없습니다.
원인을 조사하기 위해 Netalk에 포함된 동작 검사용 Perl 스크립트를 실행해 보십시오.
$ asip-status.pl 192.168.11.2
AFP reply from 192.168.11.2:548
Flags: 1  Cmd: 3  ID: 57005
Reply: DSIGetStatus
Request ID: 57005
Machine type: Netatalk2.2.3
AFP versions: AFP2.2,AFPX03,AFP3.1,AFP3.2,AFP3.3
UAMs: No User Authent
Volume Icon & Mask: exist
Flags: SupportsCopyFile,DontAllowSavePwd,SupportsServerMessages,SupportsServerSignature,SupportsTCP/IP,SupportsSrvrNotifications,SupportsOpenDirectory,SupportsUTF8Servername,SupportsUUIDs,SupportsSuperClient
Server name: TimeMachine
Signature:
9f 71 d3 60 af f8 97 90 83 e9 89 46 ba a3 fa 61  .q.`.......F...a

Network address: 192.168.11.2 (TCP/IP address)
UTF8 Servername: TimeMachine

UAMs: No User Authent


그렇군요. 사용자 인증에 필요한 물건이 없습니다.
고객 사용자의 인증을 통해 연결을 시도하면 됩니다.
이렇게 사용해도 괜찮지만, 매우 드물기 때문에, 나는 원본 코드에서 컴파일하여 최신 버전의netatalk를 운행해 보려고 한다.
가능하면 이렇게 UAM 장서만 추가하면 좋겠는데 방법을 모르겠어요.
혹시 아시는 분 있으면 알려주세요.
아마 다음까지 계속될 거예요.

추기: UAM의 경험에 대해 다음 편을 썼습니다. 유효기간은 507272입니다.

좋은 웹페이지 즐겨찾기