Подключение жесткого диска к Raspberry PI 4
Предыстория
Появилась необходимость подключить внешний жесткий диск к устройству для создания сетевого хранилища. В наличии есть диск размером 1 Тб с ноутбука. Для подключения буду использовать внешний карман с интерфейсом USB 3.0.
Подключение
Здесь ничего особенного, подключаем диск, и с помощью команды dmesg убеждаемся что он определяется. Должно быть что то подобное:
[ 6.792286] scsi 0:0:0:0: Direct-Access ATA HGST HTS541010A7 B4A0 PQ: 0 ANSI: 6 [ 6.793553] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB) [ 6.794316] sd 0:0:0:0: [sda] Write Protect is off [ 6.794340] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00 [ 6.795684] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [ 7.082562] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 7.190588] sda: sda1 sda2 [ 7.194565] sd 0:0:0:0: [sda] Attached SCSI disk
Форматирование
Прежде чем приступить к форматированию диска, нужно убедиться что все нужные данные с него были заранее скопированы, так как в процессе форматирования все данные с диска будут удалены.
Сейчас на диске два NTFS раздела. В предыдущих тестах было замечено что при использовании NTFS раздела с Raspberry PI значительно нагружает процессор при операциях чтения/записи. С файловой системой EXT4 такого замечено не было, поэтому её и буду использовать.
С помощью команды lsblk -f можно посмотреть разделы жесткого диска и используемую файловую систему.
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 ntfs 01D2B1F4689D46C0 └─sda2 ntfs LENOVO_PART 01D25C3BB1A28650 mmcblk0 ├─mmcblk0p1 vfat FAT32 boot C839-E506 203.9M 19% /boot └─mmcblk0p2 ext4 1.0 rootfs 568caafd-bab1-46cb-921b-cd257b61f505 23.4G 14% /
Для удаления всех существующих разделов на диске, и создания одного будем использовать утилиту fdisk. Для этого нам понадобится имя диска с предыдущей команды, в моём случае это /dev/sda. Вводим команду sudo fdisk /dev/sda, и попадаем в меню утилиты. Для проверки введем p что бы вывести информацию о диске и существующих разделах:
Welcome to fdisk (util-linux 2.36.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: HGST HTS541010A7 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: gpt Disk identifier: D5116618-53A8-494E-854F-79D5A5ACBC13 Device Start End Sectors Size Type /dev/sda1 2048 1914003455 1914001408 912.7G Microsoft basic data /dev/sda2 1914003456 1953520064 39516609 18.8G Windows recovery environment
По очереди удаляем все существующие разделы с помощью команды d.
Далее создаём новый раздел с помощью команды n, оставляя все значения по умолчанию. На последний вопрос Do you want to remove the signature? отвечаем Y.
Следующей командой будет w что бы записать все изменения на диск.
После всех манипуляций можно проверить изменения структуры диска с помощью команды lsblk -f:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda └─sda1 mmcblk0 ├─mmcblk0p1 vfat FAT32 boot C839-E506 203.9M 19% /boot └─mmcblk0p2 ext4 1.0 rootfs 568caafd-bab1-46cb-921b-cd257b61f505 23.4G 14% /
У нас есть раздел, теперь нужно отформатировать его в нужную файловую систему. Сделать это можно командой sudo mkfs -t ext4 /dev/sda1:
mke2fs 1.46.2 (28-Feb-2021) Creating filesystem with 244190385 4k blocks and 61054976 inodes Filesystem UUID: 8a7c1a6d-5513-4161-b50e-9f4bc8c8df43 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done
Проверяем изменения:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda └─sda1 ext4 1.0 8a7c1a6d-5513-4161-b50e-9f4bc8c8df43 mmcblk0 ├─mmcblk0p1 vfat FAT32 boot C839-E506 203.9M 19% /boot └─mmcblk0p2 ext4 1.0 rootfs 568caafd-bab1-46cb-921b-cd257b61f505 23.4G 14% /
Монтирование
Первым делом нужно создать папку для монтирования диска, сделать это можно командой sudo mkdir /mnt/hdd. По этому пути будут находится все файлы жесткого диска.
Далее нужно настроить автоматическое монтирование в созданную директорию, для этого отредактируем таблицу монтирования с помощью команды sudo nano /etc/fstab.
В конец этого файла нужно добавить следующую строчку, заменив UUID на идентификатор своего раздела (выводится командой lsblk -f):
UUID=<uuid-of-your-drive> /mnt/hdd ext4 defaults,noatime,nofail 0 2
Сохраняем файл, и применяем изменения с помощью команды sudo mount -a.