树莓派打造廉价版TimeCapsule

简介:

Time Capsule是苹果公司推出的与Mac配合使用的无线硬盘驱动器,可以很方便地在Apple系列的设备之间共享数据,Mac可以利用Mac OS X系统下的Time Machine软件通过WiFi和Time Capsule连接实现系统的全自动备份。

想必很多人都使用过外置硬盘来完成电脑数据的备份,这确实可以工作的很好,不过尽管移动硬盘可以移动,但是想比WiFi,移动性还是差了很多,尤其是当在膝上办公的时候。如果有一个无线硬盘驱动器,确实可以方便不少,然而Time Capsule价格虚高,而且可定制性也不强,对于我这种爱折腾的人来说,自然不是一个好的选择,如果可以使用树莓派打造一个廉价版的Time Capsule,一定是一个很有趣的事情。

准备工作

准备移动硬盘

如果你是空硬盘,建议你在OS X系统下格式化它,文件系统选择HFS+。方便移动硬盘不使用无线的时候也可以直接连接Mac电脑。如果你的硬盘已经是Mac系统备份盘,则不需要做任何处理。如果你硬盘是其他文件系统格式,则建议你备份数据后,再在OS X系统把硬盘格式化为HFS+。

准备树莓派

先把移动硬盘插到树莓派USB接口,启动树莓派,并把树莓派接入无线路由器。启动完成后,可以使用如下命令查看硬盘是否已经是否正确接入到USB接口。

sudo fdisk -l
#
# WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
# 
# 
# Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
# 255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 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
# Disk identifier: 0x00000000
# 
#    Device Boot      Start         End      Blocks   Id  System
# /dev/sda1               1  1953525167   976762583+  ee  GPT

# 列出所有块设备
sudo blkid
# /dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="140A-14B7" TYPE="vfat"
# /dev/mmcblk0p2: UUID="f24a4949-f4b2-4cad-a780-a138695079ec" TYPE="ext4"
# /dev/sda1: LABEL="EFI" UUID="70D6-1701" TYPE="vfat"
# /dev/sda2: UUID="7070f919-7738-309f-9a49-e3d643f33346" LABEL="TM" TYPE="hfsplus"

挂载hfs+分区

执行如下命令,使得raspbian支持hfs+分区。

sudo apt-get install hfsplus hfsutils hfsprogs

挂载hfs+分区。

sudo mkdir /tm
sudo chown -R nobody:nogroup /tm
sudo mount -t hfsplus -o force,rw /dev/sda2 /tm

# 如果想卸载,可以采用此命令 
sudo umount -v /dev/sda2 

配置无线硬盘驱动器

安装配置netatalk

Netatalk 是一个免费开源的 AppleTalk 通信协议的实现,Linux 或者 BSD 系统通过它可以充当 Mac 的文件服务器 (AppleShare File Server, 网络协议是 AFP)、AppleTalk 路由、打印服务器等。

手动安装 netatalk 3,它依赖于avahi-daemon(Avahi 是 Apple’s Zeroconf 协议的开源实现,实现类似 Bonjour 的功能,它可以让你在 Mac 系统里自动发现你的 Linux 计算机)。

# Remove Netatalk 2
sudo apt-get --purge remove netatalk

cd /usr/local/src
sudo wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.7.tar.gz
tar -xvzf netatalk-3.1.7.tar.gz

# 安装相关依赖
sudo apt-get install automake autoconf avahi-daemon build-essential checkinstall db5.1-util db-util git-core libacl1-dev libavahi-client-dev libdb5.1-dev libgcrypt11 libgcrypt11-dev libpam0g-dev libtool pkg-config

cd netatalk-3.1.7

./configure \
    --enable-fhs \
    --with-acls \
    --with-init-style=debian-sysv \
    --with-zeroconf

make
sudo make install

sudo emacs /etc/afp.conf
sudo emacs /etc/netatalk/afp_signature.conf

# 创建一个用户用于netatalk
sudo adduser james --ingroup staff

/etc/afp.conf 示例

[Global]
mimic model = TimeCapsule6,106
log level = default:warn
log file = /var/log/afpd.log
hosts allow = 192.168.1.0/24
afpstats = yes
uam list = uams_dhx.so uams_dhx2.so uams_guest.so
zeroconf = yes
guest account = nobody
save password = no

; 默认用的是主机的hostname,一般情况下是raspberrypi
hostname = TimeCapsule

; 所有用户都可以访问
[TimeMachine]
path = /tm
time machine = yes

; 此共享目录需要用户名密码访问
[MacHome]
path = /home/james
valid users = james

最好不要在同一机器上既配置密码登陆又配置不需要密码的多个目录,这样会出现权限不一致的情况。

启动 netatalk 服务

sudo service avahi-daemon restart
sudo service netatalk restart

访问TimeCapsule

如果你用的是OS X系统,当netatalk服务启动后,局域网的OS X系统的电脑应该都可以主动发现TimeCapsule。

TimeCapsule

默认他可以显示所有供Guest访问的文件夹,如本例的TimeMachine。如果要访问指定用户的目录,如MacHome,则可以点击Connect As,输入用户名和密码即可以访问。

如果配置中加有 time machine = yes,则对应的文件夹可以被Time Machine发现。

TimeMachine

如果没有在Finder的侧边栏发现TimeCapsule,也可以尝试快捷键Command + k,输入地址 afp://192.168.x.x 来主动访问。

目录
相关文章
|
Docker 容器
Docker部署minio-arm64版本,阿里官方推荐
Docker部署minio-arm64版本,阿里官方推荐
|
C# C++
halcon联合c#、WPF学习笔记一(WPF配置halcon)
halcon联合c#、WPF学习笔记一(WPF配置halcon)
1075 1
|
Ubuntu Windows
Ubuntu——切换阿里源
Ubuntu——切换阿里源
3591 0
|
机器学习/深度学习 并行计算 PyTorch
使用 PyTorch、ONNX 和 TensorRT 将视觉 Transformer 预测速度提升 9 倍
使用 PyTorch、ONNX 和 TensorRT 将视觉 Transformer 预测速度提升 9 倍
954 1
|
机器学习/深度学习 传感器 编解码
【基于Ubuntu18.04+Melodic的realsense D435i安装】
【基于Ubuntu18.04+Melodic的realsense D435i安装】
2034 0
|
机器学习/深度学习 自然语言处理 算法
【图像分类】Vision Transformer理论解读+实践测试
Vision Transformer是2021年谷歌在ICLR上提出的算法,算法原理并不复杂,但是其价值是开创性的。它首次将NLP领域火热的Transformer模型架构移植到了CV领域,打破了这两个领域壁垒,并取得不错的成效。论文名称: An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale。
807 0
【图像分类】Vision Transformer理论解读+实践测试
|
JavaScript 前端开发 开发工具
hexo+github搭建博客(超级详细版,精细入微)
hexo+github搭建静态博客,以及matery主题安装、个性化修改、SEO优化等
6833 0
hexo+github搭建博客(超级详细版,精细入微)
|
Web App开发 前端开发 JavaScript
react 前端项目技术选型、开发工具、周边生态
react 前端项目技术选型、开发工具、周边生态 声明:这不是一篇介绍 React 基础知识的文章,需要熟悉 React 相关知识 主架构:react, react-router, redux, redux-thunk, r...
2206 1