Mounting an external drive
To mount an external drive on the Raspberry Pi, a couple extra steps may be needed but this will help you get a solid connection to your drive.
Table of contents
Mounting automatically using the Desktop
Using the Raspberry Pi OS Desktop, any (readable) hard drive that is connected will be mounted automatically in the folder /media/pi/ . It is subsequently very easy to share this folder over the network and thereby make the Raspberry Pi into a NAS, following the filesharing guide. In this way you can connect your external hard disk, SSD, or USB stick to any of the USB ports on the Raspberry Pi, and mount the file system to access the data stored on it. Your Raspberry Pi is actually in that way acting as a dedicated NAS-drive!
Mounting manually
If you want to mount your drive manually, such as to make sure that the mount location is always the same or when not having access to the Desktop interface, connect the drive to your Raspberry Pi and create a target folder to be the mount point of the storage device, e.g. exdisk :
Now find the name of the external disk:
and look for the partition starting with /dev/ that has the expected file size, e.g. /dev/sdb2/ . Use that to mount the storage device at the mount point you just created:
You can verify that it is successfully mounted by listing the contents ( ls /mnt/exdisk ). To unmount a storage device:
Set up automatic mounting
You can modify the fstab file to define where storage devices will be automatically mounted when the Raspberry Pi boots. For this we will need the UUID of the disk partition:
Now open the fstab file:
and add the following lines, replacing with your UUID and mount location:
The same can be done with a network drive:
As this exposes your username and password this is not ideal and much better is to create a credentials file. Follow the security guide here.
Now edit the /etc/fstab file as root user again to add your samba share:
If the drive does somehow not mount, try adding uid=1000,gid=1000,iocharset=utf8 to the fstab command.
Drive not mounting at startup
The drives added to your fstab file should be automatically mounted upon startup. In some cases this does not happen, which may be to due with the type of drive you are mounting (e.g. cifs ) or that your Raspberry Pi has not yet connected to the network at the mounting it is trying to mount the drive. To help overcome this I found it is best to add a mount command to the rc.local file. To do so, edit the rc.local file:
scroll to the bottom and just above exit 0 add your command:
making sure to change the parameters within the <> brackets. The sleep 5 command is needed to let the Raspberry Pi wait for a couple seconds to properly connect to the network and mount the drive.
Finally make sure that the file rc.local is executable otherwise it will not run:
Comments
There are currently not any comments yet.
Add a Comment
Please leave your comment below. If you’d like to be notified of my reply, please leave your comment here for others but also send your comment as an email to me. I will try to reply as soon as I can. Thanks!
Raspberry Pi – подключение USB HDD
Пошаговая инструкция по подключению USB HDD к миникомпьютеру Raspberry Pi .
Не так давно купил себе USB жесткий диск на один терабайт и решил его подключить к Raspberry Pi, чтобы немного почистить ноутбук и дать больше места торренту. Я предполагал, что моей Micro-USB зарядки на 0,7 A не хватит для нормальной работы жесткого диска – это и подтвердилось на практике. Raspberry Pi просто отказывался загружаться, вываливая кучу ошибок.
Заказал себе новый источник питания током на 2 Ампера и повторил попытку – загрузка прошла успешно.
По инструкции, найденной в Интернете, установил пакет ntfs-3g и смонтировал USB HDD на Raspberry Pi. Диск определился нормально.
Настроил доступ к нему по сети через Samba и закинул парочку файлов. Все шло как по маслу.
На радостях перенастроил Torrent на новое место — вот тут и начались косяки. Torrent клиент Transmission отказывался качать файлы, выдавая ошибку:
Error: No data found! Ensure your drives are connected or use «Set Location». To re-download, remove the torrent and re-add it.
Не найдя в Интернете рабочего решения, я обратился к другу за помощью — он и помог решить мне эту проблему.
В результате представляю вашему вниманию пошаговую инструкцию по подключению USB HDD с файловой системой NTFS к миникомпьютеру Raspberry Pi.
1. Подключаем USB HDD к Raspberry Pi
2. Для поддержки NTFS необходимо установить пакет ntfs-3g. Для этого в консоли набираем команду:
sudo apt-get install ntfs-3g
3. Создаем каталог, в который будем монтировать наш USB HDD
sudo mkdir /mnt/usbdrive
4. Устанавливаем права на запись на этот каталог
sudo chmod 777 /mnt/usbdrive
5. Прописываем в конец файла /etc/fstab команду авто монтирования нашего USB HDD:
/dev/sda1 /mnt/usbdrive ntfs-3g defaults,rw 0 1
В результате файл /etc/fstab должен выглядеть примерно так:
rw — указан для того, чтобы USB HDD не монтировался в режиме “Read only”.
6. Перезагружаем Raspberry Pi командой:
sudo reboot
На этом процесс подключения USB HDD к миникомпьютеру Raspberry Pi завершен.
Сказ о Raspberry и внешнем HDD. Первый опыт разработки под платформу
Доброго времени суток, Хабр! Пару недель назад зачесались руки гика — захотелось мне приобрести довольно нашумевший и всем известный одноплатный мини-компьютер Raspberry Pi. Модель была выбрана самая «крутая» — версия «B» с 512Mb ОЗУ на борту.
Этот пост о другом. После всех манипуляций с настройкой захотелось попробовать машинку, так сказать, «в деле». Идея возникла практически сразу. Дома у меня имеется 3 компьютера, 2 смартфона, бюджетный роутер, и внешний жёсткий диск на 2Tb — Seagate Expansion External. Интерфейс подключения у HDD — USB. Роутер из разъёмов имеет только Ethernet и дырку для шнура электропитания. Все мои устройства соединяются с роутером только по WiFi, и ни одно не может работать в постоянном режиме. Но тут появляется Raspberry. Миниатюрные размеры платы позволяют разместить систему вида [HDD<=USB=>RPi<=Ethernet=>DIR300NRU(роутер)<=WiFi=>LAN] прямо на подоконнике и использвать диск в локальной сети, а её мизерное энергопотребление позволяет держать включенной практически постоянно. RPi работает под управлением семейства ОС Linux, а именно я на неё установил Raspbian. Казалось бы, поставить сервер samba и расшарить диск… но это было бы слишком просто. Конечная задача усложнилась: необходимо делать внешний диск доступным в локальной сети, только в том случае, если мой смартфон к этой сети в данный момент подключён, иначе диск размонтировать, тем самым снижая на него нагрузку и его энергопотребление. Значит писать будем демон, и писать будем на Python. Поехали!
Первым делом, первым делом. samba!
Дальше нам нужно знать имя раздела для монтирования, узнаём так:
И получаем примерно такой вывод:
Теперь настраиваем сам сервер samba. Открываем файл конфигурации для записи:
Про настройку можно подробно прочитать в сети, я лишь приведу свой файл конфигурации:
Настроили? Идём дальше. Проверяем работоспособность всей конструкции. Монтируем раздел (сначала размонтируем, на всякий), перезапускаем сервер samba.
Если ошибок не наблюдается, то пробуем найти сервер в сети. Если и тут всё нормально, то идём дальше.
Пишем скрипт
Писать будем на Python. Интерпретатор нам уже доступен предустановленным на Raspbian. Я решил писать сразу в консоли:
- Проверять, доступен ли IP в локальной сети
- Выполнять системные команды
- Ждать некоторое время
- Зациклить всё это дело
Это минимально работоспособный вариант, но я решил его чуть модифицировать, добавив возможность настройки и вывод отладочных сообщений в консоль. Готовый вариант выглядит вот так:
Итоги
Получилось, что можно настроить абсолютно всё, а также отключить (раз)монтирование раздела. Осталось прописать на устройстве статический IP для подключения к нашей локальной сети и всё, своеобразный ключ доступа к диску готов! Для полной автоматизации можно добавить скрипт в автозагрузку при старте системы. Открываем системный файл rc.local:
И дописываем в него следующую строчку:
Путь, конечно, указываете свой. Вот и всё, спасибо за прочтение! Это был мой первый опыт разработки под Raspberry Pi, да и под Linux вообще.
UPD1: спасибо, что подсказали насчёт перезагрузки и автозапуска, первое выкинул, второе поправил
Подключаем внешний HDD/SSD или USB флешку к Raspberry Pi
Если использовать Raspberry Pi как сервер файлов или веб-сервер, то скорее всего файлы постоянно будут перезаписываться. У любой карты памяти есть свой ресурс перезаписи, и рано или поздно он закончится. Не каждому хочется потерять важные файлы. По этому я расскажу в этой статья, как можно перенести папку с файлами сайта на жесткий диск. В твоем случае это может быть что угодно, можешь использовать обычную USB-флешку или к примеру SSD. Я использую SSD, но всю скорость SSD, на Raspberry Pi, выжать не получиться, так как у него порты USB 2.0.
Монтируем USB флешку
1. Подключаем к USB
2. Определяем имя флешки в системе:
Проще всего будет понять имя флешки зная размер самого диска. В моём случае это sdb:
3. Для поддержки формата NTFS необходимо установить пакет ntfs-3g. Для этого в терминале вводим команду:
Если будет использоваться формат ext4 то этот пункт можно пропустить.
4. Форматируем флешку: Для этого используем утилиту mkfs. Команда выглядит так: $ sudo mkfs -t файловая_система устройство В качестве файловой системы может использоваться любая поддерживаемая система, на пример: ext4, ntfs, xfs, btrfs, vfat.
5. Создаем каталог, в который будет смонтирован наша флешка:
6. Установим права на запись в каталоге:
Далее мы увидим следующее:
Так как мы уже знаем, что наш раздел /sdb, нам понадобится код, который выделен синим цветом. Копируем его, он нам далее понадобится.
8. Вносим изменения в файл /etc/fstab, указываем в конце следующее:
«86eded9a-3eb3-455a-a07e-15309ce80649» — UUID нашей флешки.
Внимание! Если флешка отформатирована, к примеру в NTFS, то вместо ext4 необходимо указать ntfs-3g