Качаем образ Ubuntu Server и записываем его на флешку:
$ sudo dd if=/home/sergey/Downloads/ubuntu-21.04-live-server-amd64.iso of=/dev/sda conv=fdatasync status=progress
Далее потребуются ненужный системный блок, монитор, мышка и клавиатура.
Ставим Ubuntu, в качестве имени хоста указываем, например, ubuntu-server
, не забываем отметить Install OpenSSH Server
, так как для управления сервером мы будем использовать ssh. После успешной установки перегружаемся.
Ставим на сервере Avahi Daemon, который делает машину доступной в локальной сети по имени хоста как <имя-хоста>.local
.
$ sudo apt install avahi-daemon
Проверяем запущен ли сервис:
$ systemctl status avahi-daemon.service
В Ubuntu особой настройки Avahi не требуется.
Делаем файлопомойку. У меня, например, есть несколько HDD, которые я объеденил в RAID-0 массив. Данные в RAID-0 записываются поочередно на два и более устройств, что увеличивает скорости чтения и записи. Недостатком является утеря данных при выходе одного из дисков, но для файлопоймойки это не принципиально.
# по-очередно размечаем диски
$ sudo cfdisk /dev/sdb
$ sudo cfdisk /dev/sdc
# на каждом диске я создал по одному разделу, затем объеденил их в RAID-0
$ sudo mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1
# создал файловую систему на raid-устройстве
$ sudo mkfs.xfs /dev/md0
# чтобы RAID-массив монтировался при запуске
$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=ubuntu:0 UUID=57ff66e8:a0268e82:3d39b7c2:c6c37bf9
# создаем точку монтирования для raid-массива
$ sudo mkdir /mnt/data
# редактируем /etc/fstab, добавляя строчку в конец
$ sudo nano /etc/fstab
/dev/md0 /mnt/data xfs defaults 0 0
# монтируемся
$ sudo mount -a
# создаем каталог, который будем шарить
$ sudo mkdir /mnt/data/share
# меняем пользователя и права
# клиенты samba владельцем файла обычно выставляют nobody:nogroup
$ sudo chown nobody:nogroup /mnt/data/share
# все файлы созданные в данном каталоге будут наследовать его группу, т.о. анонимный пользователь Samba сможет с ними работать
#
# Пример:
# $ sudo mkdir foo
# $ ls -l
# total 4
# drwxrwxrwx 6 nobody nogroup 4096 Jun 21 19:52 dist
# drwxr-sr-x 2 root nogroup 6 Jun 21 19:57 foo
$ sudo chmod 2777 /mnt/data/share
Для общего доступа к файлам юудет использоваться NFS. Альтернативой NFS является Samba, которая сложна в настройке и без тонкой конфигурации показывает довольно низкую скорость передачи данных 7-11 MiB/s.
$ sudo apt install nfs-kernel-server
$ sudo systemctl enable nfs-server
В /etc/exports
добавляем строку:
/mnt/data/share 192.168.0.0/24(rw,sync,no_subtree_check)
# где: 65534 ‒ это id пользователя nobody, а 65534 ‒ группа nogroup
/mnt/data/share 192.168.0.0/24(rw,all_squash,sync,no_subtree_check,anonuid=65534,anongid=65534,insecure)
И чтобы применить изменения вызываем:
$ sudo exportfs -a
$ sudo apt-get install transmission-cli transmission-common transmission-daemon
...
$ sudo usermod -a -G debian-transmission $USER
$ sudo mkdir -p 2755 /mnt/data/share/Downloads
$ sudo chown -R debian-transmission:debian-transmission /mnt/data/share/Downloads
$ sudo vim /etc/transmission-daemon/settings.json
"download-dir": "/mnt/data/share/Downloads",
...
"rpc-password": "your-password",
...
"speed-limit-up": 100,
"speed-limit-up-enabled": true,
$ sudo systemctl reload transmission-daemon
Avahi нужен для того чтобы заработало подключение к хосту по имени (этот шаг можно пропустить и в дальнейшем подключаться по IP).
$ yay -S avahi nss-mdns
Так же нужно отредактировать /etc/nsswitch.conf
, строчку hosts
, добавив mdns_minimal [NOTFOUND=return]
до resolve
:
hosts: ... mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns ...
Запускаем Avahi демона:
$ sudo systemctl enable --now avahi-daemon
Проверяем:
$ ping -c 3 ubuntu-server.local
PING ubuntu-server.local(ubuntu-server.local (fe80::264b:feff:fe89:ed8f%wlan0)) 56 data bytes
64 bytes from ubuntu-server.local (fe80::264b:feff:fe89:ed8f%wlan0): icmp_seq=1 ttl=64 time=91.8 ms
64 bytes from ubuntu-server.local (fe80::264b:feff:fe89:ed8f%wlan0): icmp_seq=2 ttl=64 time=4.73 ms
64 bytes from ubuntu-server.local (fe80::264b:feff:fe89:ed8f%wlan0): icmp_seq=3 ttl=64 time=1.60 ms
--- ubuntu-server.local ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 1.601/32.701/91.771/41.787 ms
Генерируем пару RSA-ключей для подключения по SSH (если требуется):
$ ssh-keygen
Чтобы не вводить постоянно пароль, добавляем пуьличный ключ на сервер:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Подкоючаемся к серверу:
$ ssh [email protected]
$ yay -S nfs-utils
$ sudo mount ubuntu-server.local:/srv/nfs /mnt/nfs
Устанавливаем Chocolatey.
Запускаем PowerShell от имени администратора и ставим Putty:
> choco install -y putty
Если у вас установлен WSL, то одключение к серверу ничем не будет отличаться от способа для Linux.
Баг моей версии Windows: если при подключении сетевого диска указать имя хоста, то в проводнике он будет отображаться как Disconnected Network Drive.
# информация об ip адресе
$ ip a
# выключение сервера
$ sudo poweroff
# перезагрузка, например после обновления
$ sudo reboot
# обновление системы
$ sudo apt update && sudo apt upgrade
\\sshfs\[email protected]