Подключение HDD/SSD к Banana Pi BPI-R1


  • 0

    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
    




Похоже, подключение к PiBoard было разорвано, подождите, пока мы пытаемся восстановить соединение.