Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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] krapivaru:doc:howto:usb.storage [2018/03/03 20:56] – ↷ Links adapted because of a move operation bobafetthotmail
Line 1: Line 1:
 +====== 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}}
  • Last modified: 2019/08/26 16:39
  • by vgaetera