IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    方便快捷 自用 搭建 TimeMachine 方案

    R0uter发表于 2017-03-27 20:42:46
    love 0

    去落格博客阅读完整排版的方便快捷 自用 搭建 TimeMachine 方案

    最近更新:28th 三月, 2017

    终于换了一个相对稳定的工作环境,现在,我的桌面是这样的:

    我的办公桌

    好了,总之,用移动硬盘定期备份不是长久之计,所以,身为穷逼,我们要给自己寻找一个合适、方便的备份方案了。

    俗话说的好:

    备份不做,十恶不赦。

    那么,我们就来说说我的设计方案。

    设计

    首先,作为一个穷逼,设计备份方案的第一要素是经济……🤦‍♂️知乎里流行的什么 J1900 之流太贵了,思前想后还是pass掉了,毕竟,我只做备份,不做那么多共享——用不到。

    J1900 成品工控 淘宝基本价格在 999左右,我自备了1T的移动硬盘,这个价格有点难以接受。

    最后,我找到了一个不在中国上市的产品:BeeLink 的 z83 II !当然,从淘宝购买还会更便宜一些,很实惠。

    简单说下配置:

    • 一个网口——千兆;
    • wifi 5G 2.4G 都支持;
    • 一个 usb 3 两个 usb 2;
    • hdmi 和 sd卡;
    • 双核4线程 1.9GHz。

    嗯,捡到宝了。

    ——别忘了,这是成品机器不是主板!

    架构

    好了,接下来就是软件了,本来我想用 freenas 的,不过真机到手后确实无法引导,会 gaint lock ,似乎是 freebsd 的什么坑,总之,使用 ubuntu 16.04 完美启动。

    所以,用的也就是常见的 ubuntu 系列架构了:

    • 使用 Netatalk 作为 tm 服务器;
    • 使用 Avahi 广播。

    动手做

    首先,把盒子刷成 Ubuntu 这个就不说了,更新后我们安装 Netatalk 和 Avahi:

    apt install netatalk
    apt install avahi-daemon

    创建文件 

    /etc/avahi/services/afpd.service
     来配置 avahi,写入如下内容:

    <service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
    <type>_afpovertcp._tcp</type>
    <port>548</port>
    </service>
    <service>
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=Xserve</txt-record>
    </service>
    </service-group>

    接下来就是挂载硬盘了,这里我用的是移动硬盘,为了方便日后一些活动,另外我硬盘中也放了许多文件也不方便备份重新格式化,所以我准备直接用 HFS+

    挂载 HFS+

    首先,你要在系统中安装插件 

    apt install hfsprogs
     ,然后使用命令来看系统是否支持 
    modprobe hfsplus
     ,一般来说,这个命令不会有任何反应的,如果你这样,那就悲剧了,比如我:

    modprobe: FATAL: Module hfsplus not found in directory /lib/modules/xxxx

    这是说你的内核是精简编译的,你需要打官方补丁。使用命令:

    sudo apt-get install linux-image-extra-$(uname -r)

    如果你的结果是找不到,那说明你用的是定制过的内核,那就需要你自己来找了,使用命令来搜索可用的包:

    apt search linux-image-extra-

    Sorting... Done
    Full Text Search... Done
    linux-image-extra-4.4.0-1003-gke/xenial-updates 4.4.0-1003.3 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-1005-gke/xenial-updates,xenial-security 4.4.0-1005.6 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-1006-gke/xenial-updates,xenial-security 4.4.0-1006.6 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-21-generic/xenial 4.4.0-21.37 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-22-generic/xenial-updates,xenial-security 4.4.0-22.40 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-24-generic/xenial-updates,xenial-security 4.4.0-24.43 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-28-generic/xenial-updates,xenial-security 4.4.0-28.47 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-31-generic/xenial-updates,xenial-security 4.4.0-31.50 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-34-generic/xenial-updates,xenial-security 4.4.0-34.53 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-36-generic/xenial-updates,xenial-security 4.4.0-36.55 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-38-generic/xenial-updates,xenial-security 4.4.0-38.57 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-42-generic/xenial-updates,xenial-security 4.4.0-42.62 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-43-generic/xenial-updates 4.4.0-43.63 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-45-generic/xenial-updates,xenial-security 4.4.0-45.66 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-47-generic/xenial-updates,xenial-security 4.4.0-47.68 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-51-generic/xenial-updates,xenial-security 4.4.0-51.72 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-53-generic/xenial-updates,xenial-security 4.4.0-53.74 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-57-generic/xenial-updates,xenial-security 4.4.0-57.78 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-59-generic/xenial-updates,xenial-security 4.4.0-59.80 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-62-generic/xenial-updates,xenial-security 4.4.0-62.83 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-63-generic/xenial-updates,xenial-security 4.4.0-63.84 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-64-generic/xenial-updates,xenial-security 4.4.0-64.85 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-66-generic/xenial-updates,xenial-security 4.4.0-66.87 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.4.0-67-generic/xenial-updates,xenial-security 4.4.0-67.88 amd64
      Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
    
    linux-image-extra-4.8.0-28-generic/xenial-security 4.8.0-28.30~16.04.1 amd64
      Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP
    
    linux-image-extra-4.8.0-30-generic/xenial-security 4.8.0-30.32~16.04.1 amd64
      Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP
    
    linux-image-extra-4.8.0-32-generic/xenial-security 4.8.0-32.34~16.04.1 amd64
      Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP
    
    linux-image-extra-4.8.0-34-generic/xenial-updates,xenial-security 4.8.0-34.36~16.04.1 amd64
      Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP
    
    linux-image-extra-4.8.0-36-generic/xenial-updates,xenial-security 4.8.0-36.36~16.04.1 amd64
      Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP
    
    linux-image-extra-4.8.0-39-generic/xenial-updates,xenial-security 4.8.0-39.42~16.04.1 amd64
      Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP
    
    linux-image-extra-4.8.0-41-generic/xenial-updates,xenial-security 4.8.0-41.44~16.04.1 amd64
      Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP
    
    linux-image-extra-4.8.0-42-generic/xenial-updates,now 4.8.0-42.45~16.04.1 amd64 [installed]
      Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP
    
    linux-image-extra-virtual/xenial-updates,xenial-security 4.4.0.66.70 amd64
      Transitional package.
    
    linux-image-extra-virtual-hwe-16.04/xenial-updates,xenial-security 4.8.0.41.12 amd64
      Extra drivers for Virtual Linux kernel image
    
    linux-image-extra-virtual-hwe-16.04-edge/xenial-updates,xenial-security 4.8.0.34.6 amd64
      Extra drivers for Virtual Linux kernel image
    
    linux-image-extra-virtual-lts-utopic/xenial-updates,xenial-security 4.4.0.66.70 amd64
      Transitional package. (dummy transitional package)
    
    linux-image-extra-virtual-lts-vivid/xenial-updates,xenial-security 4.4.0.66.70 amd64
      Transitional package. (dummy transitional package)
    
    linux-image-extra-virtual-lts-wily/xenial-updates,xenial-security 4.4.0.66.70 amd64
      Transitional package. (dummy transitional package)
    
    linux-image-extra-virtual-lts-xenial/xenial-updates,xenial-security 4.4.0.66.70 amd64
      Transitional package. (dummy transitional package)

    结果有很多,我是 16.04 tls,所以结果都是

    xenial
     ,我自己随手选了一个
    linux-image-extra-4.8.0-42-generic
     ,安装完成之后重新启动下(可能不重启也行吧)这下再执行 
    modprobe hfsplus
     应该就可以了。

    使用

    sudo fdisk -l
     来查看你的硬盘位置,比如我的是这样的:

    Device          Start        End    Sectors   Size Type
    /dev/sda1          40     409639     409600   200M EFI System
    /dev/sda2      409640 1953262983 1952853344 931.2G Apple HFS/HFS+
    /dev/sda3  1953262984 1953525127     262144   128M Apple boot

    这里找到那个最大的分区就对了!

    使用命令挂载:

    sudo fsck.hfsplus -f /dev/sda2 //强行修复一波,避免错误
    sudo mount -t hfsplus -o force,rw /dev/sda2 /media/yourDir

    记得把 sda2 改成你自己的位置,挂载点的目录要事先存在才行,不存在你要先创建。里边的第一条命令是用来修复 HFS+ 分区的,这个在 mac 里很常见,以后一旦出现什么奇奇怪怪的问题,都可以用它来修复。

    权限问题

    挂载成功后你的非 root 用户可能是无法写入的,这是由于磁盘内容自有用户造成的,最简单的办法可能就是欺骗文件让它以为你还是原来的用户。mac 中默认用户 UID 是 501,那么我们就把跑 netatalk 的用户id改为 501:

    sudo groupadd admin //创建管理组
    sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser //创建一个临时用户
    sudo passwd tempuser //给用户一个密码,别忘记了

    做完之后退出当前用户,然后用这个临时用户进去,如果你用的是 ssh,那么就退出来,用 

    ssh tempuser@xxx.xxx.xxx.xxx
     重新登录。登录之后继续:

    sudo usermod --uid 501 yourusername //改你刚才用户的uid

    这时候你可能会收到提示说还有进程在占用,不能改。这很好办,根据提示的pid,干掉那个进程即可:

    sudo kill <pid>
     然后重复执行上面的命令,没关系,有多少个占用就干多少个……

    sudo chown -R 501:yourusername /home/yourusername 
    //上边这行两处都要改成你自己的用户名,这个是改目录所有权的

    接下来,你就可以退出然后用你原来的用户登录了,这时候再去挂载的目录看看,已经可写。别忘了删除那个临时用户:

    sudo userdel -r tempuser

    配置 Netatalk

    终于,可以配置 netatalk 了,在移动硬盘上创建两个目录,一个用于存放文件,另一个用于备份。然后编辑

    /etc/netatak/AppleVolumes.default
     ,在文件最末尾写:

    # The line below sets some DEFAULT, starting with Netatalk 2.1.
    :DEFAULT: options:upriv,usedots
    /media/DataCenter/TimeMachine "TimeMachine" options:tm
    /media/DataCenter/NAS "NAS"
    # By default all users have access to their home directories.
    #~/                     "Home Directory"

    重点就是第三行末尾的 

    options:tm
     标记这一句让对应的目录对 TimeMachine 可见。

    最后,我们重启对应的服务:

    sudo service netatalk restart
    sudo service avahi-daemon restart

    Mac 端设置

    搞好了服务器,我们的电脑也要进行一些配置:

    在终端中执行这条命令让tm发现网络备份位置:

    defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

    这下你就应该已经能够在 tm 配置中发现你的网络位置了!

    选择它,输入密码连接后,备份开始。

    TimeMachine 通过网络设备备份数据

    结论

    整个过程其实挺繁琐,主要是踩了一大堆可能别人一辈子也遇不到的坑……

    机器性能很好,网络我的局域网是千兆交换所以速度峰值在 260M/s 上,当然不那么稳定,我没有用过正牌的大胶囊所以也不知道是不少都这样,但至少能用了。

    至于温度,z83 摸起来还是一如既往的微微温热,cpu消耗也不大:

    cpu 用量不高

    整体价格 600 元人民币,移动硬盘盒以及硬盘我自备了。

    后续我想的就是把这个机器的 wifi 模块驱动起来(是的默认没有wifi的驱动,因为我自己不用所以就没提起……)然后做个 5 G的ap也不错的说……

    然后就是跑个 smb 给室友,这样发送文件什么的就会很方便……

     

    如果我做了,会立即更新在这里。

    暂时就这么多了吧——大家早安。

     

     

    方便快捷 自用 搭建 TimeMachine 方案,首发于落格博客。

    其他推荐:
    1. Kali Linux 2016 滚动更新版本 发布
    2. 关于重装windows7覆盖grub2的修复方案
    3. 阿里云 Ubuntu 更新镜像源
    4. 安装back|track 5 r3并配置中文界面简单教程
    5. 如何 在 Kali Linux 中 安装 Parallels Tools



沪ICP备19023445号-2号
友情链接