Приветствую владельцев NAS от Synology и маководов по совместительству. Этот пост предназначен для вас.
Предисловие
Примерно год назад я приобрёл своё первое сетевое хранилище от Synology – DS416slim. Не самое производительное и новое устройство на рынке, но и задачи у меня на тот момент были другие. В первую очередь мне нужно было очень-очень компактное и экономичное в плане энергопотребления устройство. У Synology DS416slim имеется 4 отсека под 2.5″ диски, при этом его размеры всего 12 см x 10,5 см x 14,2 см. Плюс он построен на достаточно энергоэффективной ARM архитектуре – на процессоре Marvell Armada 385. Что меня в нём и подкупило. С этого момента в область моих интересов попала ещё одна ОС – Synology DiskStation Manager или сокращённо DSM. За время использования в операционной системе DSM были обнаружены как достоинства, так и недостатки, которые устранялись мною по мере их обнаружения. Так появилась очередная тематика на блоге. А этот пост – первый в этой новой теме.
Bonjour
Первое, что меня меня немного “удивило”, так это то, что Avahi (свободная реализация протокола Bonjour / Zeroconf для Linux / BSD) до сих пор у Synology “хромает”. Cейчас у меня установлена версия DSM 7.1.1 и при этом Bonjour, несмотря на свежую версию DSM, все еще испытывает некоторые проблемы с корректным отображением иконок устройств на Mac. Если точнее, то значки NAS в Finder отображаются не везде. Например, в боковом меню слева показывается пустой документ вместо иконки устройства. Всему виной то, что в новых версиях macOS “дропнули” поддержку и, соответственно, отображение некоторых очень старых устройств Apple. Так, например, из macOS частично убрали значки старых Xserve. В конфигурационных же файлах Avahi, для вещания в сеть информации об устройстве, до сих пор используется идентификатор устаревшей модели Xserve, который не понимают новые версии macOS. Разработчики в Synology просто закрывают на это глаза, поэтому я хотел бы поделиться с вами небольшим руководством о том, как исправить значки для NAS в боковом меню Finder и в сетевом окружении macOS.
Подготовка
Первое, что нужно сделать – это проверить настройки Bonjour в настройках NAS. Для этого Нужно перейти в Control Panel → File Services → Advanced и установить флажки напротив нужных сервисов Bonjour:
Второе – нужно включить SSH. Для этого перходим в Control Panel → Terminal & SNMP → Terminal и установить флажок напротив пункта Enable SSH service. Не забываем при этом указать порт (по-умолчанию 22):
Работа с консолью
Теперь, когда Bonjour и SSH включены, можно приступать к модификациям системы DSM. В macOS переходим в Программы → Утилиты и запускаем Терминал. Теперь внимательно, по пунктам, выполняем инструкцию:
- Подключаемся к своему NAS по SSH. Для этого выполняем команду в формате
ssh username@ipadress -p portnumber
, где:
username – учётная запись админа на NAS;
ipadress – IP-адрес или локальное имя вашего NAS, например synologynas.local;
portnumber – номер порта SSH, который был указан в настройках NAS.
У вас должно быть что-то вроде такого:
Жмём Enter и вводим пароль от учётной записи NAS. При первом подключении по ssh система предложит сохранить ключи шифрования – соглашаемся (нужно ввести “yes” или просто “y”). После удачного подключения мы уже будем находиться внутри NAS.ssh username@192.168.1.10 -p 22
- Теперь нужно сказать консоли, что мы будем работать в режиме суперпользователя (root’а). Это необходимо для редактирования системных файлов операционной системы Synology DSM. С этого момента нужно быть предельно внимательным. Переходим в режим суперпользователя. Для этого выполняем команду:
Жмём Enter и снова вводим тот же пароль от учётной записи.sudo -i
- При помощи консольного текстового редактора vi нужно отредактировать файл avahi.sh. Для этого выполняем команду:
И жмём Enter.vi /usr/syno/etc/rc.sysv/avahi.sh
- В открывшемся консольном редакторе vi нужно найти строки
model=Xserve
и заменить их на другой идентификатор модели. В моём случае это будетmodel=MacPro7,1@ECOLOR=226,226,224
. Для этого нажимаем клавишу i на клавиатуре, чтобы перейти в режим редактирования, находим строку:
И меняем её на такую:<txt-record>model=Xserve</txt-record>
В этом файле такие строки встречается дважды!<txt-record>model=MacPro7,1@ECOLOR=226,226,224</txt-record>
- Когда файл avahi.sh будет отредактирован нажимаем Esc на клавиатуре, а потом печатаем:
И жмём Enter для выхода из редактора vi.:wq!
- Теперь при помощи того же консольного текстового редактора vi нужно отредактировать ещё один файл avahi.sh в другом каталоге. Для этого выполняем команду:
И жмём Enter.vi /usr/syno/etc.defaults/rc.sysv/avahi.sh
- В открывшемся редакторе снова находим строку:
И меняем её на:<txt-record>model=Xserve</txt-record>
В этом файле таких строк так же две!<txt-record>model=MacPro7,1@ECOLOR=226,226,224</txt-record>
- Сохраняем файл avahi.sh. Для этого нажимаем Esc, печатаем:
И жмём Enter для выхода из редактора vi.:wq!
- Теперь осталось перезапустить NAS, чтобы увидеть изменения. Иногда приходится так же перезапустить Finder или Mac.
- Нужно помнить, что любое обновление системы DSM может откатить наши изменения на дефолтные. Так что имейте ввиду, что (возможно) данную процедуру придётся повторить снова.
Где брать иконки?
Все значки устройств, которые знает ваш Mac, находятся в системном бандле CoreTypes.bundle. Попасть в него можно так:
- В Finder нажимаем клавиши Command ⌘ + Shift ⇧ + G;
- Вводим путь:
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources
- Нажимаем Enter и попадаем в каталог с иконками устройств.
Здесь нужно выбрать понравившийся значок, с которым вы хотите ассоциировать свой NAS от Synology, и скопировать (или запомнить) его название. У меня это com.apple.macpro-2019-rackmount.icns:
Далее, при помощи текстового редактора, нужно открыть файл:
/System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist
Поиском по документу находим название значка и смотрим идентификаторы моделей, с которыми macOS ассоциирует устройства в сети:
...
{ UTTypeConformsTo = ( "com.apple.macpro", "com.apple.mac.rackmount" );
UTTypeIcons = {
UTTypeIconFile = "com.apple.macpro-2019-rackmount.icns";
UTTypeSymbolName = "macpro.gen3.server";
_UTTypeTemplateIconFile = "SidebarXserve.icns";
};
UTTypeIdentifier = "com.apple.macpro-2019-rackmount";
UTTypeTagSpecification = { com.apple.device-model-code = "MacPro7,1@ECOLOR=226,226,224"; };
},
...
Здесь нас интересует параметр com.apple.device-model-code, а точнее его значение:
UTTypeTagSpecification = { com.apple.device-model-code = "MacPro7,1@ECOLOR=226,226,224"; };
Здесь MacPro7,1@ECOLOR=226,226,224 как раз и будет искомым идентификатором модели (код модели устройства), с которым macOS ассоциирует иконку com.apple.macpro-2019-rackmount.icns. На этом пока всё.