| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
| ru:doc:howto:usb.storage [2015/09/05 07:49] – krapiva | ru:doc:howto:usb.storage [2018/03/03 20:56] – ↷ Links adapted because of a move operation bobafetthotmail |
|---|
| | ====== USB Хранилище ====== |
| | Пожалуйста, изучите [[docs:techref:flash.layout]]. |
| |
| | Получив [[usb.essentials|базовую поддержку USB]], вы захотите подключить USB устройство хранения к вашему роутеру, флешку, например, или USB жёсткий диск. Эта статья расскажет вам необходимые для этого шаги. |
| | |
| | ===== Подготовка ===== |
| | Перечень действий примерно такой: |
| | - Получите [[ru:doc:howto:usb.essentials|базовую поддержку USB]] на вашем устройстве с OpenWrt; |
| | - Установите необходимые пакеты для USB хранилища, как показано [[usb.storage#Необходимые пакеты для USB Хранилища|ниже]]). Подключенное устройство USB (например, жёсткий диск) может быть распознано системой; |
| | - Если ещё не сделано, сделайте разметку диска и создайте файловую систему (изучите инструкцию [[Storage]] чтобы сделать это с помощью OpenWrt). Само устройство и его разделы должны немедленно появиться в [[https://ru.wikipedia.org/wiki//dev|Файле устройства]] в папке ''/dev/''. Например, ''/dev/sda'' это устройство, с разделами ''/dev/sda1'', ''/dev/sda2'' и т.д. В случае, когда устройство не размечено и использует единую файловую систему, оно может быть доступно как ''/dev/sda''. Последующие устройства, которые вы подключите, будут называться ''/dev/sdb'', ''/dev/sdc'' и так далее. Убедитесь, что установлены правильные пакеты ядра для поддержки конкретной файловой системы (смотрите [[Storage]]); |
| | - После эти файловые системы могут быть подключены и к ним появится доступ, смотрите [[Storage]]. По желанию, вы можете настроить автоматическое подключение этих ФС при загрузке ''[[docs:guide-user:storage:fstab|/etc/config/fstab]]'', либо использовать как [[docs:guide-user:additional-software:extroot_configuration|корневую файловую систему через extroot]]. |
| | |
| | ===== Необходимые пакеты для USB Хранилища ===== |
| | Когда ваше USB устройство правильно распознано системой, используя правильный драйвер ядра из списка [[usb.essentials|базовая поддержка USB]], следующие пакеты позволят осуществить поддержку USB хранилища: |
| | ***''kmod-usb-storage''** //требуется// ... Поддержка ядром запоминающих устройств USB. |
| | ***''kmod-fs-<file_system>''** //требуется// ... файловая система вашего устройства. Зачастую это kmod-fs-ext4, kmod-fs-hfs, kmod-fs-hfsplus, kmod-fs-msdos, kmod-fs-ntfs, kmod-fs-reiserfs и kmod-fs-xfs. |
| | ***''kmod-usb-storage-extras''** //опционально// ... Поддержка ядром большего количества устройств, таких как SmartMedia считыватели кард. |
| | ***''block-mount''** //рекомендуется// & //требуется (при использовании [[docs:guide-user:storage:fstab]] или [[luci]] Точек Монтирования)// ... Скрипты для подключения и проверки устройств (файловые системы и раздел подкачки), а также горячего подключения (распознование только что подключенных устройств). |
| | ***''kmod-scsi-core''** Любое запоминающее устройство это обычное SCSI устройство. |
| | |
| | | {{:meta:icons:tango:48px-outdated.svg.png?nolink}} | До релиза [[about:history#timeline|Attitude Adjustment]], требовались дополнительные пакеты: ''block-hotplug'' для распознавания USB при подключении и ''block-extroot'' для [[docs:guide-user:additional-software:extroot_configuration|корневой файловой системы на внешнем носителе]]. В сборке [[https://dev.openwrt.org/changeset/26314/trunk|r26314]] они были объединены в единый **''block-mount''**. | |
| | |
| | |
| | ===== Дополнительные пакеты для USB Хранилища ===== |
| | ***''e2fsprogs''** //опционально// Этот пакет содержит базовые утилиты для файловых систем ext2/ext3/ext4, такие как mkfs.ext3, mkfs.ext4, fsck и другие основные программы для форматирования и проверки на ошибки. |
| | |
| | ===== Примеры ===== |
| | Выполняется установка поддержки USB хранилища, предполагается, что USB уже настроен, включим поддержку файловой системы ext4 и подключим подсоединённое устройство USB, с уже созданным разделом подкачки Linux и разделом ext4. |
| | |
| | <code> |
| | opkg update |
| | opkg install kmod-usb-storage block-mount kmod-fs-ext4 |
| | mkswap /dev/sda1 |
| | swapon /dev/sda1 |
| | mkdir -p /mnt/share |
| | mount -t ext4 /dev/sda2 /mnt/share -o rw,sync |
| | </code> |
| | |
| | Помните, что разделы часто определяются автоматически и следующая команда тоже должна работать с настройками по умолчанию: |
| | |
| | mount /dev/sda2 /mnt/share |
| | |
| | Другой пример. Как использовать флешку с файловой системой FAT32 (поддержка ext4 останется). Читайте также [[Storage]]. |
| | <code> |
| | opkg update |
| | opkg install kmod-usb-storage block-mount block-hotplug kmod-fs-ext4 kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 |
| | mkdir -p /mnt/usb |
| | mount -t vfat /dev/sda1 /mnt/usb |
| | </code> |
| | |
| | |
| | ===== Запрещаем запись для не подключенных устройств ===== |
| | |
| | Вы можете создать пустой файл, чтобы предотвратить запись файлов прямо в память роутера, если внешнее устройство не подключено: |
| | <code> |
| | umount /mnt/usb #убедитесь, что диск отключен, прежде чем начать |
| | touch /mnt/usb/USB_DISK_NOT_PRESENT |
| | chmod 555 /mnt/usb |
| | chmod 444 /mnt/usb/USB_DISK_NOT_PRESENT |
| | </code> |
| | Теперь процессы, которые не запущены с правами root, не будут записывать в память устройства (изучите [[https://forum.openwrt.org/viewtopic.php?id=42351|эту тему]]). И, конечно, вы можете использовать этот файл в своих собственных скриптах. |
| | |
| | ===== LUKS ===== |
| | Шифрование диска Linux с помощью LUKS |
| | - Установите необходимые пакеты: |
| | <code> |
| | opkg install cryptsetup lvm2 kmod-crypto-aes kmod-crypto-misc kmod-crypto-xts kmod-crypto-iv kmod-crypto-cbc kmod-crypto-hash kmod-dm |
| | </code> |
| | - Создайте необходимые файлы настроек: Большая часть пакетов kmod-crypto-* создают файлы в папке ''/etc/modules.d'' чтобы автоматически включать модули при загрузке. Но пакет kmod-crypto-misc содержит модуль sha256 (помимо прочих) который является исключением, следовательно мы должны вручную создать такой файл: |
| | <code> |
| | echo sha256_generic >/etc/modules.d/11-crypto-misc |
| | </code> |
| | - Подключаем зашифрованый раздел: Замените ''/dev/encrypted_partition'' путём к вашему зашифрованому разделу и ''/mnt/mountpoit'' желаемой точкой монтирования: |
| | <code> |
| | cryptsetup luksOpen /dev/encrypted_partition usbstorage_luks && mount /dev/mapper/usbstorage_luks /mnt/mountpoint |
| | </code> |
| | - Отключаем: |
| | <code> |
| | umount /mnt/mountpoint && cryptsetup luksClose usbstorage_luks |
| | </code> |
| | |
| | ===== Примечания ===== |
| | <пока нет> |
| | |
| | ---- |
| | {{tag>USBrelated}} |