Загрузчик TinyCore RedPill Loader (TCRP Friend)
В связи с выходом DSM 7.1.1, новой версии загрузчика Tinycore-redpill и Proxmox 7.2 решил немного исправить и дополнить инструкцию по установке.
Для установки в полуавтоматическом режиме будем использовать Tinycore RedPill Loader от pocopico
Создание виртуальной машины
Для создания виртуальной машины я использовал шаблон скрипта от haydibe и использовал последний на данный момент stable имидж tinycore-redpill.v0.9.2.9
Под себя в скрипте можете исправить id для виртуальной машины, которую будете создавать и ресурсы, которые хотите выделить для NAS (cores, memory, name и в двух местах размер диска sata0). Диск делайте не меньше 25GB.
Обязательно проверьте в GitHub какая версия имиджа актуальна на данный момент и исправьте это в скрипте.
# set vm id
id=900
# create image directory, download and uncomporess
mkdir -p /var/lib/vz/images/${id}
curl --location https://github.com/pocopico/tinycore-redpill/releases/download/v0.9.2.9/tinycore-redpill.v0.9.2.9.img.gz --output /var/lib/vz/images/${id}/tinycore-redpill.img.gz
gzip --decompress /var/lib/vz/images/${id}/tinycore-redpill.img.gz --keep
# create disk for sata0
pvesm alloc local-lvm ${id} vm-${id}-disk-0 50G
# create vm
qm create ${id} \
--args "-drive 'if=none,id=synoboot,format=raw,file=/var/lib/vz/images/${id}/tinycore-redpill.img' -device 'qemu-xhci,addr=0x18' -device 'usb-storage,drive=synoboot,bootindex=1'" \
--cores 2 \
--cpu host \
--machine q35 \
--memory 2048 \
--name DSM7 \
--net0 virtio,bridge=vmbr0 \
--numa 0 \
--onboot 0 \
--ostype l26 \
--scsihw virtio-scsi-pci \
--sata0 local-lvm:vm-${id}-disk-0,discard=on,size=50G,ssd=1 \
--sockets 1 \
--serial0 socket \
--serial1 socket \
--tablet 1
Обратите внимание, что в зависимости от платформы вашего сервера с proxmox может понадобиться в конфиге изменить
--cpu host \
на
--cpu kvm64 \
В Proxmox
В консоли вставляем и запускаем созданный скрипт.
После создания виртуальной машины запускаем ее и дожидаемся загрузки.
Все дальнейшие действия можно делать в веб интерфейсе консоли виртуальной машины, но это будет не очень удобно и довольно криво. Я использовал Putty и WinSCP.
В виртуальной машине смотрим IP
У меня это 192.168.50.32
Putty
Подключаемся к виртуальной машине
Login: tc
Password: P@ssw0rd
Последовательно выполняем несколько команд
./rploader.sh update now
./rploader.sh fullupgrade now
./rploader.sh satamap now
./rploader.sh identifyusb now
Определитесь какую платформу NAS будете использовать
Более подробно можете ознакомиться с рекомендации по выбору из поста flyride
Далее нужно сгенерировать серийный номер и mac под нужную платформу.
Если вы используете свою связку реальных SN+MAC для работы QuickConnect, то пропускаем этот пункт.
Например, для DS918+ указываем:
./rploader.sh serialgen DS918+
*DS918+/DS920+/ DS3622x+/DS3617xs/DS3615xs /DS1621+/DV3221
Переходим в WinSCP
Подключаемся к виртуальной машине
Нам нужно будет проверить и возможно отредактировать файл user_config.json
Проверяем, что все пункты соответствуют тому, что были сгенерированы ранее. Иногда почему-то скрипт не с первого раза записывает полученные данные в файл.
Если используете свою связку SN+MAC, то исправляем нужные пункты.
"extra_cmdline": {
"pid": "0x0001",
"vid": "0x46f4",
"sn": "1780PDN020377",
"mac1": "001132CDFA0C",
"netif_num": "1",
"SataPortMap": "16",
"DiskIdxMap": "1000"
Возвращаемся в Putty
Теперь надо добавить драйвера сетевой карты VirtIO или других сетевых карт, которые вы используете в Proxmox.
В зависимости от выбранной вами платформы NAS и версии DSM выполняем команды:
драйвер VirtIO
./rploader.sh ext ds918p-7.1.1-42962 add https://raw.githubusercontent.com/pocopico/rp-ext/master/v9fs/rpext-index.json
драйвер Intel E1000
./rploader.sh ext ds918p-7.1.1-42962 add https://raw.githubusercontent.com/pocopico/rp-ext/master/e1000/rpext-index.json
драйвер Realtek RTL8139
./rploader.sh ext ds918p-7.1.1-42962 add https://raw.githubusercontent.com/pocopico/rp-ext/master/8139too/rpext-index.json
Так же иногда требуется добавить драйвер ACPI
./rploader.sh ext ds918p-7.1.1-42962 add https://raw.githubusercontent.com/pocopico/rp-ext/master/redpill-acpid/rpext-index.json
*можно добавить все драйвера по очереди.
**драйвера для других устройств можно найти тут
Делаем бекап.
./rploader.sh backup
В зависимости от выбранной ранее платформы выполняем сборку загрузчика:
для DS918+
./rploader.sh build ds918p-7.1.1-42962 withfriend
для DS3622xs+
./rploader.sh build ds3622xsp-7.1.1-42962 withfriend
для DS920+
./ rploader.sh build ds920p-7.1.1-42962 withfriend
для DS1621+
./rploader.sh build ds1621p-7.1.1-42962 withfriend
для DS3617xs
./rploader.sh build ds3617xs-7.1.1-42962 withfriend
для DS3615xs
./rploader.sh build ds3615xs-7.1.1-42962 withfriend
для DVA3221
./rploader.sh build dva3221-7.1.1-42962 withfriend
Перегружаем виртуальную машину
sudo reboot -f
Загрузка
Обратите внимание, что сейчас при загрузке виртуальной машины надо выбирать загрузку с Tiny Core Friend или RedPill DS918+ 7.1.1-42962 (USB, Verbose)
Tiny Core Friend автоматически обрабатывает обновления DSM. Если вы будете выполнять обновление из графического интерфейса DSM, обновление будет обнаружено и автоматически исправлено TCRP Friend. Поэтому рекомендуется использовать TCRP Friend.
Экран нового загрузчика отличается от стандартной версии большей информативностью.
Ждем пару минут и в браузере открываем http://find.synology.com, используем Synology Assistant или сразу заходим по IP показанный на экране загрузки.
Скачиваем с сайта Synology образ DSM_DS918+_42962.pat или другой под нужную вам платформу.
Указываем загруженный файл для продолжения установки.
После полной установки новый NAS перезагрузиться и порадует окном приветствия.
Обновление DSM
(если нет Tiny Core Friend)
При обновлении NAS (например, на 7.1.1-42962 Update 2) может перестать нормально загружаться и начнет предлагать восстановиться
Чтобы это исправить необходимо загрузиться в Tiny Core Image Build
В Putty последовательно выполняем несколько команд и на все соглашаемся.
./rploader.sh clean new
./rploader.sh update new
./rploader.sh fullupgrade new
./rploader.sh postupdate ds918p-7.1.1-42962
Делаем очередной backup и перегружаемся.
./rploader.sh backup now
sudo reboot -f
Выбираем опять загрузку с USB
NAS обновился и опять нормально загружается