Banana Pi BPI-R1 построена на SoC Allwinner A20, а это означает что SATA порт присутствующий на плате является полноценным SATA портом поддерживающимся на уровне SoC, а не USB-SATA мостом, как у многих других плат на более современных SoC. Поддержка SATA на уровне SoC - означает большую скорость чтения/записи и более уверенные IOPS что положительно сказывается на скорости работы системы в повседневном использовании.

Итак, присупим к подключению HDD (можно и SSD, можно и USB флешку подключить как постоянный диск). Пример приводится на базе ОС Bananian, но в случае с другими ОС инструкция аналогична. Предполагаю что у Вас уже установлена, запущена и базово сконфигурирована ОС Bananian (при первом старте системы запустите скрипт bananian-config и следуя мастеру проведите базовую конфигурацию системы под Вашу плату).

Определение диска

Проверим, как и определился вообще Ваш диск в системе, посмотреть это можно в выводе системной утилиты dmesg, для удобства - можно отфильтровать вывод grep’ом

[email protected] ~ # dmesg | grep sda
[    2.363916] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[    2.381217] sd 0:0:0:0: [sda] Write Protect is off
[    2.389997] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    2.398099] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.448683]  sda: sda1
[    2.454614] sd 0:0:0:0: [sda] Attached SCSI disk
[email protected] ~ #

Так же, можно использовать fdisk для просмотра блочных устройств в системе.

[email protected] ~ # fdisk -l

Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc618090a

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1          63 488397167 488397105 232.9G  c W95 FAT32 (LBA)

Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0ccea0b3

Device         Boot Start      End  Sectors  Size Id Type
/dev/mmcblk0p1       2048    43007    40960   20M 83 Linux
/dev/mmcblk0p2      43008 15523839 15480832  7.4G 83 Linux

Видим диск /dev/sda с одним единственным разделом FAT32 (с такой FS обычно поставляются новые диски), удалим текущий раздел и создадим на его месте новый при помощи fdisk.

Создание раздела

[email protected] ~ # fdisk /dev/sda

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-488397167, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-488397167, default 488397167): 488397167

Created a new partition 1 of type 'Linux' and of size 232.9 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[email protected] ~ #

d - удаляет раздел, если разделов на диске несколько - выполняем несколько раз.
n - опция создания нового раздела.

Если нужен один раздел во весь размер диска - далее просто отвечаем по умолчанию нажатиями Enter клавиши.

w - запись внесенный изменений в таблицу разделов диска.


Форматирование

Теперь самое время отформатировать наш диск в ext4 при помощи mkfs.ext4 или mke4fs -t ext4

[email protected] ~ # mkfs.ext4 /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 61049390 4k blocks and 15269888 inodes
Filesystem UUID: 9ac7c40d-323a-424e-89d3-8718c224ed78
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

[email protected] ~ #

Монтирование

Монтирование разделов диска в файловой системе Linux это повод для отдельной и не самой скромной темы, но мы рассмотрим самый обычный случай монтирования раздела диска с ext4 в /mnt/MyHDD/.

[email protected]:~# mkdir /mnt/MyHDD
[email protected]:~# mount -t ext4 /dev/sda1 /mnt/MyHDD/
[email protected]:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.3G  934M  6.1G  14% /
devtmpfs        486M     0  486M   0% /dev
tmpfs            98M  220K   97M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           195M     0  195M   0% /run/shm
/dev/sda1     232.9G  172M 232.8G   0% /mnt/MyHDD

Монтирование при загрузке (fstab)

Для автоматического монтирования диска при каждой загрузке просто добавте в файл /etc/fstab следующую строку.

/dev/sda1    /mnt/MyHDD    ext4    defaults    0    1

Так же, можно (и нужно) монтировать диск с подходящими параметрами.
default - Параметры “по умолчанию”.
nofail - Если устройство не всегда подключено к плате, добавте эту строку.
errors=remount-ro - При возникновении ошибок диска - примонтировать в режиме read-only
user,rw,umask=000 - Используются для монтирования FAT32 разделов.

/dev/sda1    /mnt/MyHDD    ext4    defaults,nofail,errors=remount-ro    0    1