· linux smb samba samba 4 zeroconf avahi timemachine padavan

Samba 4 + ZeroConf + TimeMachine на прошивке от Padavan'а

Чуть больше года назад я писал о том, как поднять Time Machine на прошивке от Padavan’a с помощью netatalk (AFP сервер). Сейчас же Apple активно толкает для этого дела протокол SMB, отказываясь от своего AFP. Ну что ж, настало время разобраться с этим :).

Причины, которые сподвигли меня на переход с AFP на SMB просты:

  1. Apple депрекейтит AFP из-за APFS (на самом деле не только).
  2. У меня макбук, на котором я перешел на APFS (да, я тот самый ССЗБ).
  3. Netatalk иногда ведет себя странно, особенно если заливаешь или качаешь большие файлы.

Итак, поехали.

Сразу скажу, что разжевывать мне что-то лень. Этот пост есть просто набор конфигов, скопипастив которые вы получите таймкапсулу на SMB.

Сей мини-гайд не охватывает подготовку харда, его поиск, занять вам в долг до получки и подобное. Единственное - рекомендую ФС ext4 для этого. У ZFS с этим точно есть проблемы, гуглите. Но так как у роутеродменов везде ext4 - починку охватывать не буду :).

Samba 4

Не так уж и давно в Entware появилась Samba4. Ставим:

opkg install samba4x-server samba4x-libs

После скачайте вот этот набор либ, собранные мейнтейнером мипселя в Entware. Распаковать надо в /opt/lib/samba/vfs. Внимание: этой директории может не существовать, создайте руками!

Далее - конфиг в /opt/etc/samba/smb.conf, замените его на следующее:

[global]
    netbios name = router
    interfaces = lo br0
    server string = Fileserver on router
    workgroup = WORKGROUP
    guest account = nobody
    security = user
    map to guest = Bad Password
    guest ok = yes
    timestamp logs = no
    preserve case = yes
    short preserve case = yes
    socket options = TCP_NODELAY SO_KEEPALIVE IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
    # Change to 3 for debug.
    log level = 1
    syslog = 0
    smb encrypt = disabled

[Time Capsule]
    path = /media/MACDATA/TimeMachine
    browseable = Yes
    vfs objects = catia fruit streams_xattr
    fruit:aapl = yes
    read only = No
    inherit acls = Yes
    durable handles = yes
    kernel oplocks = no
    kernel share modes = no
    posix locking = no
    ea support = yes
    inherit acls = yes
    fruit:time machine = yes

Рестартуем Samba:

/opt/etc/init.d/S91smb restart

Что можно улучшить

Как минимум параметры SO_RCVBUF и SO_SNDBUF. Поиграйтесь с ними, или вообще уберите.

Zeroconf

Он же avahi, он же mDNS, он же бич сетей в руках неумелых админов. Запиливаем для него такой конфиг:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
 <name replace-wildcards="yes">%h</name>
 <service>
   <type>_adisk._tcp</type>
   <txt-record>sys=waMa=0,adVF=0x100</txt-record>
   <txt-record>dk0=adVN=Time Capsule,adVF=0x82</txt-record>
 </service>
  <service>
    <type>_smb._tcp</type>
    <port>445</port>
  </service>
</service-group>

У меня лежит в /opt/etc/avahi/services/timecapsule.service.

После сохранения рестарт не нужен, Avahi подтягивает изменения конфигов сервисов автоматически.

Внимание: название шары в smb.conf должно совпадать с параметром adVN в конфиге сервиса для Avahi!

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket