Как подключить HDD или SSD к одноплатнику на Armbian или Debian

Подключаем HDD или SSD к одноплатному компьютеру на Armbian или Debian, находим диск, создаём точку монтирования и настраиваем автоматическое подключение после перезагрузки.
Одноплатный компьютер довольно быстро перестаёт быть просто платой для экспериментов. Сегодня на нём крутится пара сервисов, завтра Docker, а ещё через неделю выясняется, что хранить всё это на microSD — не самая удачная идея.
Самый простой вариант — подключить обычный HDD или SSD через USB-SATA адаптер или USB-бокс. В Armbian и Debian настраивается это буквально за несколько минут.
В этой инструкции подключим уже размеченный диск с файловой системой и сделаем так, чтобы он автоматически монтировался после перезагрузки.
Что потребуется
Нам нужны:
- одноплатный компьютер с Armbian или Debian;
- HDD или SSD;
- USB-SATA адаптер или внешний USB-бокс;
- доступ к терминалу или SSH;
- права
rootили возможность использоватьsudo.
С SSD обычно никаких проблем с питанием нет. А вот с 2,5-дюймовыми и особенно 3,5-дюймовыми HDD нужно быть внимательнее.
3,5-дюймовый HDD практически всегда требует отдельного питания. Некоторые 2,5-дюймовые диски тоже могут потреблять при запуске больше, чем способен нормально отдать USB-порт конкретного одноплатника.
Находим подключенный диск
Подключаем накопитель и выполняем:
lsblk -f
Например:
NAME FSTYPE FSVER LABEL UUID MOUNTPOINTS
mmcblk0
├─mmcblk0p1 vfat FAT32 1234-ABCD /boot
└─mmcblk0p2 ext4 1.0 a1111111-b222-c333-d444-e5555555555 /
sda
└─sda1 ext4 1.0 8f42d321-3c24-4c88-a03d-123456789abc
В этом примере:
/dev/sda
— сам накопитель, а:
/dev/sda1
— раздел на нём.
Не копируйте имя устройства из примера вслепую. На вашей системе диск может оказаться /dev/sdb1, /dev/sdc1 и так далее.
Особенно внимательно смотрим на системный диск или microSD, чтобы случайно не начать работать с ними.
Создаём папку для диска
В Linux накопитель подключается к определённому каталогу — точке монтирования.
Например, создадим:
sudo mkdir -p /mnt/hdd
Название может быть любым. Для SSD мне, например, логичнее было бы использовать:
sudo mkdir -p /mnt/ssd
Дальше в примерах будем использовать /mnt/hdd.
Проверяем ручное монтирование
Попробуем подключить найденный раздел:
sudo mount /dev/sda1 /mnt/hdd
Проверяем:
df -h
или:
lsblk -f
Если всё нормально, напротив нашего раздела появится:
/mnt/hdd
Можно посмотреть содержимое:
ls -la /mnt/hdd
На этом этапе диск уже работает, но после перезагрузки такое ручное монтирование пропадёт.
Узнаём UUID диска
Прописывать /dev/sda1 напрямую в настройках автоподключения не стоит. Сегодня накопитель называется sda1, а после изменения конфигурации USB-устройств может получить другое имя.
Надёжнее использовать UUID файловой системы.
Посмотреть его можно той же командой:
lsblk -f
Либо:
sudo blkid /dev/sda1
Получим что-то вроде:
/dev/sda1: UUID="8f42d321-3c24-4c88-a03d-123456789abc" TYPE="ext4"
Нам нужен UUID:
8f42d321-3c24-4c88-a03d-123456789abc
Настраиваем автоматическое монтирование через fstab
Перед редактированием сделаем резервную копию:
sudo cp /etc/fstab /etc/fstab.backup
Открываем файл:
sudo nano /etc/fstab
Для диска с ext4 добавляем в конец:
UUID=8f42d321-3c24-4c88-a03d-123456789abc /mnt/hdd ext4 defaults,nofail 0 2
Естественно, UUID заменяем на свой.
Здесь:
UUID=...— наш накопитель;/mnt/hdd— куда его подключать;ext4— файловая система;defaults— стандартные параметры монтирования;nofail— система сможет загрузиться, даже если накопитель отключён;0— не использовать старый механизмdump;2— проверять файловую систему после корневой при загрузке.
Для внешнего USB-диска параметр nofail я бы не убирал. Без него отсутствующий или неисправный накопитель может создать лишние проблемы при загрузке системы.
Сохраняем файл в nano:
Ctrl+O
Enter
Ctrl+X
Проверяем fstab до перезагрузки
Вот здесь лучше не спешить сразу выполнять reboot.
Сначала проверим конфигурацию:
sudo findmnt --verify
После изменения /etc/fstab на современной системе с systemd также можно выполнить:
sudo systemctl daemon-reload
Теперь размонтируем диск:
sudo umount /mnt/hdd
И попробуем применить записи из fstab:
sudo mount -a
Проверяем:
findmnt /mnt/hdd
Если видим наш диск — всё работает.
Теперь уже можно перезагрузить одноплатник:
sudo reboot
После загрузки снова проверяем:
findmnt /mnt/hdd
Если диск новый и на нём ещё нет файловой системы
В инструкции выше предполагается, что раздел на диске уже существует.
Если это совершенно новый или ненужный накопитель, его можно отформатировать, например, в ext4:
sudo mkfs.ext4 /dev/sda1
Внимание: эта команда уничтожит данные на выбранном разделе.
Перед её выполнением обязательно ещё раз смотрим:
lsblk
и убеждаемся, что /dev/sda1 — действительно нужный накопитель.
После форматирования у файловой системы появится новый UUID, поэтому снова выполняем:
lsblk -f
и уже его используем в /etc/fstab.
Что делать с NTFS или exFAT
Если диск раньше использовался с Windows, форматировать его необязательно.
Сначала смотрим тип файловой системы:
lsblk -f
Если там указан ntfs или exfat, этот же тип нужно учитывать при настройке монтирования.
Но если накопитель будет постоянно жить на Linux-сервере и совместимость с Windows ему не нужна, я предпочитаю ext4. Для обычного домашнего сервера на Armbian или Debian это простой и предсказуемый вариант.
Права на папку с диском
Иногда после подключения выясняется, что обычный пользователь не может записывать данные на диск.
Для ext4 владельца каталога можно изменить:
sudo chown -R $USER:$USER /mnt/hdd
Проверяем:
ls -ld /mnt/hdd
Но не стоит бездумно выполнять chmod 777. Если диск будет использоваться Docker, Samba, Nextcloud или другим сервисом, права лучше назначать под конкретного пользователя или группу этого сервиса.
Несколько полезных команд
Посмотреть все диски и файловые системы:
lsblk -f
Узнать UUID:
sudo blkid
Посмотреть занятое место:
df -h
Проверить, куда смонтирован диск:
findmnt /mnt/hdd
Размонтировать:
sudo umount /mnt/hdd
Смонтировать всё из /etc/fstab:
sudo mount -a
Проверить корректность /etc/fstab:
sudo findmnt --verify
Итог
В итоге схема подключения HDD или SSD к одноплатнику на Armbian или Debian довольно простая:
USB/SATA диск
↓
lsblk
↓
определяем раздел
↓
создаём /mnt/hdd
↓
находим UUID
↓
добавляем запись в /etc/fstab
↓
проверяем findmnt --verify
↓
диск автоматически подключается после загрузки
После этого накопитель можно использовать под Docker volumes, резервные копии, Samba, Nextcloud, торрент-клиент, медиасервер или просто как обычное хранилище.
Если вы только начинаете собирать домашний сервер на одноплатнике, можно также посмотреть мою статью про установку и настройку Armbian. А для Rock Pi 4B есть отдельная инструкция по установке Armbian и первому подключению по SSH.
Источники:
- Debian Manpages — fstab(5): https://manpages.debian.org/unstable/mount/fstab.5.en.html
- Debian Manpages — mount(8): https://manpages.debian.org/testing/mount/mount.8.en.html
- Armbian Documentation — Storage: https://docs.armbian.com/armbian-config/storage/
Понравилась статья?
Поставьте лайк и сохраните полезный материал в закладки.
Orange Pi 3B: домашний сервер за минимальные деньги
Rock 3A: бюджетный одноплатник для домашнего сервера
ROCK Pi 4B: установка Armbian и подключение по SSH без монитора
Домашний кластер из микрокомпьютеров: собираем и находим применение
ROCK Pi E: Делаем компактный и мощный роутер своими руками
NanoPi M4V2: Собираем мощный домашний NAS и медиасервер своими руками