USB Хранилище
Пожалуйста, изучите flash.layout.
Получив базовую поддержку USB, вы захотите подключить USB устройство хранения к вашему роутеру, флешку, например, или USB жёсткий диск. Эта статья расскажет вам необходимые для этого шаги.
Подготовка
Перечень действий примерно такой:
- Получите базовую поддержку USB на вашем устройстве с OpenWrt;
- Установите необходимые пакеты для USB хранилища, как показано ниже). Подключенное устройство USB (например, жёсткий диск) может быть распознано системой;
- Если ещё не сделано, сделайте разметку диска и создайте файловую систему (изучите инструкцию Storage чтобы сделать это с помощью OpenWrt). Само устройство и его разделы должны немедленно появиться в Файле устройства в папке
/dev/
. Например,/dev/sda
это устройство, с разделами/dev/sda1
,/dev/sda2
и т.д. В случае, когда устройство не размечено и использует единую файловую систему, оно может быть доступно как/dev/sda
. Последующие устройства, которые вы подключите, будут называться/dev/sdb
,/dev/sdc
и так далее. Убедитесь, что установлены правильные пакеты ядра для поддержки конкретной файловой системы (смотрите Storage); - После эти файловые системы могут быть подключены и к ним появится доступ, смотрите Storage. По желанию, вы можете настроить автоматическое подключение этих ФС при загрузке
/etc/config/fstab
, либо использовать как корневую файловую систему через extroot.
Необходимые пакеты для USB Хранилища
Когда ваше USB устройство правильно распознано системой, используя правильный драйвер ядра из списка базовая поддержка 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 считыватели кард.kmod-scsi-core
Любое запоминающее устройство это обычное SCSI устройство.
До релиза Attitude Adjustment, требовались дополнительные пакеты: block-hotplug для распознавания USB при подключении и block-extroot для корневой файловой системы на внешнем носителе. В сборке r26314 они были объединены в единый block-mount . |
Дополнительные пакеты для USB Хранилища
e2fsprogs
опционально Этот пакет содержит базовые утилиты для файловых систем ext2/ext3/ext4, такие как mkfs.ext3, mkfs.ext4, fsck и другие основные программы для форматирования и проверки на ошибки.
Примеры
Выполняется установка поддержки USB хранилища, предполагается, что USB уже настроен, включим поддержку файловой системы ext4 и подключим подсоединённое устройство USB, с уже созданным разделом подкачки Linux и разделом ext4.
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
Помните, что разделы часто определяются автоматически и следующая команда тоже должна работать с настройками по умолчанию:
mount /dev/sda2 /mnt/share
Другой пример. Как использовать флешку с файловой системой FAT32 (поддержка ext4 останется). Читайте также Storage.
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
Запрещаем запись для не подключенных устройств
Вы можете создать пустой файл, чтобы предотвратить запись файлов прямо в память роутера, если внешнее устройство не подключено:
umount /mnt/usb #убедитесь, что диск отключен, прежде чем начать touch /mnt/usb/USB_DISK_NOT_PRESENT chmod 555 /mnt/usb chmod 444 /mnt/usb/USB_DISK_NOT_PRESENT
Теперь процессы, которые не запущены с правами root, не будут записывать в память устройства (изучите эту тему). И, конечно, вы можете использовать этот файл в своих собственных скриптах.
LUKS
Шифрование диска Linux с помощью LUKS
- Установите необходимые пакеты:
opkg install cryptsetup lvm2 kmod-crypto-aes kmod-crypto-misc kmod-crypto-xts kmod-crypto-iv kmod-crypto-cbc kmod-crypto-hash kmod-dm
- Создайте необходимые файлы настроек: Большая часть пакетов kmod-crypto-* создают файлы в папке
/etc/modules.d
чтобы автоматически включать модули при загрузке. Но пакет kmod-crypto-misc содержит модуль sha256 (помимо прочих) который является исключением, следовательно мы должны вручную создать такой файл:
echo sha256_generic >/etc/modules.d/11-crypto-misc
- Подключаем зашифрованый раздел: Замените
/dev/encrypted_partition
путём к вашему зашифрованому разделу и/mnt/mountpoit
желаемой точкой монтирования:
cryptsetup luksOpen /dev/encrypted_partition usbstorage_luks && mount /dev/mapper/usbstorage_luks /mnt/mountpoint
- Отключаем:
umount /mnt/mountpoint && cryptsetup luksClose usbstorage_luks