Одночасне підключення usb-флешки і usb-hdd в openwrt

Одночасне підключення usb-флешки і usb-hdd в openwrt

Якщо ви вже маєте налаштований роутер з завантаженням з usb флешки. то при підключенні додатково другого usb накопичувача (наприклад HDD) після перезавантаження пристрій може не заробити. Відбувається це через те, що openwrt може почати завантажуватися з нашого другого usb накопичувача. Але природно нічого у нього не виходить так як там немає системи. На персональних комп'ютерах ця проблема вирішується різними способами: настройками биоса, проставкой перемичок master / slave на HDD або в linux системах в файлі fstab підключення розбивши відбувається по так званим UUID, унікальним ідентифікаторів розділів, які задаються при створенні розділу і не змінюються поки його не видалити . Виявляється openwrt теж підтримує UUID, тому в цій статті я покажу як правильно реалізувати цю технологію і підключити одночасно декілька usb накопичувачів.







Перед тим як почати у вас вже повинен бути налаштований роутер з завантаженням з usb-флешки, як описано в моїй попередній статті

далі:
Відключаємо харчування роутера
Відключаємо всі підключені usb пристрої: флешки, вінчестери, і т.д.
включаємо роутер
Відключаємо автоматичне монтування usb пристроїв

Редагуємо виділену секцію

config global automount
option from_fstab 0
option anon_mount 0

config global autoswap
option from_fstab 1
option anon_swap 0

config mount
option target / home
option device / dev / sda2
option fstype ext4
option options rw, sync
option enabled 1
option enabled_fsck 1

config swap
option device / dev / sda3
option enabled 1

config mount
option target /
option device / dev / sda1
option fstype ext4
option options rw, sync
option enabled 1
option enabled_fsck 1
option is_rootfs 1

Підключаємо usb-флешку і usb hdd через usb hub.

Перевіряємо чи визначилися вони.

Висновок команди повинен бути приблизно таким

Одночасне підключення usb-флешки і usb-hdd в openwrt

Запускаємо команду blkid

Бачимо приблизно наступне:

/ Dev / sda1: LABEL = "work" UUID = "244de878-3f6c-46c2-b04b-0ec901d71a29"
/ Dev / sdb1: LABEL = "system" UUID = "1046cec3-7cd8-42aa-b881-ab66303ba38d"
/ Dev / sdb2: LABEL = "home" UUID = "67e214d3-241e-4fc1-8102-7c40575d49dd"
/ Dev / sdb3: LABEL = "swap" UUID = "00ec0713-ed2a-4927-b56b-bc501712b5f5"

Нас цікавлять коду в лапках після UUID =. Тут ми бачимо три розділи на usb-флешці (sdb) і один розділ на usb hdd (sda) і їх унікальні коду UUID. Причому як бачите usb hdd визначився як primery (sda), тобто з нього openwrt намагатиметься завантажиться, що як ви розумієте не вийде.

Але слід мати на увазі, що usb флешка теж може підключиться як primery (sda)

Редагуємо файл монтування розділів як показано нижче

Для usb hdd додана нова секція в низу

config global automount
option from_fstab 1
option anon_mount 1

config global autoswap
option from_fstab 1
option anon_swap 0

config mount
option target / home
# Option device / dev / sda2
option uuid 67e214d3-241e-4fc1-8102-7c40575d49dd
option fstype ext4
option options rw, sync
option enabled 1
option enabled_fsck 1

config swap
# Option device / dev / sda3
option uuid 00ec0713-ed2a-4927-b56b-bc501712b5f5
option enabled 1

config mount
option target /
# Option device / dev / sda1
option uuid 1046cec3-7cd8-42aa-b881-ab66303ba38d
option fstype ext4
option options rw, sync
option enabled 1
option enabled_fsck 1
option is_rootfs 1

config mount
option target / mnt / hdd
option uuid 244de878-3f6c-46c2-b04b-0ec901d71a29
option fstype ext4
option options rw, sync
option enabled 1
option enabled_fsck 0

Так само на цьому етапі не забуваємо восcтановіть Автопідключення пристроїв і завантаження з fstab

config global automount
option from_fstab 1
option anon_mount 1

Монтуємо завантажувальний розділ з usb-флешки і копіюємо туди наш оновлений файл fstab

Дивимося попередній висновок команди blkid і визначаємо на якому розділі у нас знаходиться основна система. Оскільки я знаю що на флешці у мене три розділи і перший з них призначений для системи, то мені потрібен розділ / dev / sdb1

mkdir / mnt / sdb1
mount / dev / sdb1 / mnt / sdb1
cp / etc / config / fstab / mnt / sdb1 / etc / config / fstab
umount / mnt / sdb1

Після перезавантаження ми побачимо як чудово все підключилося і тепер не важливо скільки usb накопичувачів ми підключимо, система завжди буде знати з якого завантажуватися що куди підключати

У мене це виглядає так:

Одночасне підключення usb-флешки і usb-hdd в openwrt






Так само перевіряємо підключився файл підкачки

У мене чомусь на моєму wr703n c прошивкою Attitude Adjustment 12.09-rc1 по uuid файл підкачані не підключений, тому поки підключаю його по старому

config swap
option device / dev / sdb3

На Dir-320 з прошивкою OpenWrt Backfire r32751 все в порядку.

підключив usb hub з додатковим харчуванням і ось нічого немає
root @ OpenWrt:

# Df -h
Filesystem Size Used Available Use% Mounted on
rootfs 1.1M 272.0K 816.0K 25% /
/ Dev / root 5.8M 5.8M 0 100% / rom
tmpfs 14.5M 784.0K 13.7M 5% / tmp
tmpfs 512.0K 0 512.0K 0% / dev
/ Dev / mtdblock6 1.1M 272.0K 816.0K 25% / overlay
overlayfs: / overlay 1.1M 272.0K 816.0K 25% /
HDD не бачить
як зробити треба?


1) Пробуйте підключати гвинт в різні порти хаба
2) Якщо не визначився, то підключіть безпосередньо до роутера без хаба і без флешки
Дивіться що видає команда
dmesg | grep sd

підключив usb hub з додатковим харчуванням і ось нічого немає
root @ OpenWrt:

# Df -h
Filesystem Size Used Available Use% Mounted on
rootfs 1.1M 272.0K 816.0K 25% /
/ Dev / root 5.8M 5.8M 0 100% / rom
tmpfs 14.5M 784.0K 13.7M 5% / tmp
tmpfs 512.0K 0 512.0K 0% / dev
/ Dev / mtdblock6 1.1M 272.0K 816.0K 25% / overlay
overlayfs: / overlay 1.1M 272.0K 816.0K 25% /
HDD не бачить
як зробити треба?

Зробив все по інструкції, при завантаженні з флешки (/ dev / sda1) все нормально, але як тільки чіпляю USB-гвинт до того ж хабу, система намагається його також повісити на / dev / sda1, незважаючи на те, що в / etc / config / fstab для них вказані різні уіди. Спочатку гвинт ніяк не міг розкрутитися, не вистачало харчування від роутера, довелося додати до хабу харчування від USB порту, сусіднього до того, в який застромлять роутер. Може бути хаб дерев'яний?


Думаю що хаб. Для таких справ бажано гвинт із зовнішнім живленням мати.

Перевірте як гвинт поводиться.
1) Вимкніть гвинт від роутера
2) Завантажте openwrt з флешки
3) Підключіть гвинт до роутера, він повинен подмонтіровать автоматично
4) Поганяйте його шляхом копіювання даних, торрентів і т.п. Якщо система буде виснути, то проблема з хабом і харчуванням гвинта.

Якщо автомат не подмонтіровать то вмонтовуйте командою
mount / dev / sda / mnt
або в залежності як він визначився
mount / dev / sdb / mnt

У підсумку він подмонтіруется в папку / mnt

Зробив все по інструкції, при завантаженні з флешки (/ dev / sda1) все нормально, але як тільки чіпляю USB-гвинт до того ж хабу, система намагається його також повісити на / dev / sda1, незважаючи на те, що в / etc / config / fstab для них вказані різні уіди. Спочатку гвинт ніяк не міг розкрутитися, не вистачало харчування від роутера, довелося додати до хабу харчування від USB порту, сусіднього до того, в який застромлять роутер. Може бути хаб дерев'яний?

При монтуванні по UUID включення довше стало і жорсткий диск або навіть флешка монтується дуже довго.
Що робити?


1) Наскільки довго в секуднах?
2) Встановлюються при завантаженні або ви їх потім підключаєте.


Секудни не знаю.
Монтіруться при запуску і потім підключаю всеровно довго мантіруються.
Зараз працює не через UUID і Монтуєте моментально.

При монтуванні по UUID включення довше стало і жорсткий диск або навіть флешка монтується дуже довго.
Що робити?


1) Наскільки довго в секуднах?
2) Встановлюються при завантаженні або ви їх потім підключаєте.

При монтуванні по UUID включення довше стало і жорсткий диск або навіть флешка монтується дуже довго.
Що робити?


Завантажувальний розділ повинен бути зазначений в конфігах на роутері, а не на флешці. Всі інші можна вже прописати в fstab на флешці.

завантажувальний розділ ми вказуємо при створенні завантажувального флешки / ДСКАЯ, або не так


Ссістема в будь-якому випадку починає спершу вантажиться з роутера, знаходить на роутері файл fstab і якщо там прописана завантаження з флешки, то далі передається управління на флешку і інші розділи вже підключаються з fstab на флешці.

Вобщем, перевірте самі, якщо включити завантаження з флешки тільки в fstab на флешці то вантажиться вона не буде.


Завантажувальний розділ повинен бути зазначений в конфігах на роутері, а не на флешці. Всі інші можна вже прописати в fstab на флешці.

завантажувальний розділ ми вказуємо при створенні завантажувального флешки / ДСКАЯ, або не так

до речі можна зробити значно простіше.
дізнаємося uuid командою blkid. йдемо в fstab і міняємо
option device / dev / sda1 на option device uuid і слід рядком вставляємо option uuid ваш uuid. то ж з розділами sda2 і sda3.
це можна зробити відразу після установки openwrt на зовнішній носій.


Завантажувальний розділ повинен бути зазначений в конфігах на роутері, а не на флешці. Всі інші можна вже прописати в fstab на флешці.

до речі можна зробити значно простіше.
дізнаємося uuid командою blkid. йдемо в fstab і міняємо
option device / dev / sda1 на option device uuid і слід рядком вставляємо option uuid ваш uuid. то ж з розділами sda2 і sda3.
це можна зробити відразу після установки openwrt на зовнішній носій.

Це зрозуміло а як її рашаріть? доведеться постійно відкривати закривати в samba?


Ну так в самби расшарьте скільки вам потрібно флешок. Один раз зробили і все.

/ Mnt / sda1 - перша флешка
/ Mnt / sdb1 - друга флешка
/ Mnt / sdc1 - третя флешка

Це зрозуміло а як її рашаріть? доведеться постійно відкривати закривати в samba?

У wr703n в рядку встановив "1" і swap визначився з UUID.
config global autoswap
option from_fstab 1
option anon_swap 1

Як підключати різні диски (флешки) друзів не знаючи UUID?


Для флешки відформатованої в FAT32 потрібно встановити
opkg update
opkg install kmod-usb-storage block-mount block-hotplug kmod-fs-ext4 kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1

з включеною в файлі / etc / config / fstab опцією "option anon_mount 1" флешка повинна примонтировать автоматом в катaлoге / mnt / sd *, де * це буква по зростанню а, в, с.
/ Mnt / sda1 - перша флешка
/ Mnt / sdb1 - друга флешка
/ Mnt / sdc1 - третя флешка

У wr703n в рядку встановив "1" і swap визначився з UUID.
config global autoswap
option from_fstab 1
option anon_swap 1

Як підключати різні диски (флешки) друзів не знаючи UUID?

Дякую за відповідь, задумка в тому що б разшарівать диск (флешку) через wr703n для ipad, iphone.


На цьому сайті для цього все розписано) так що дерзайте.

Дякую за відповідь, задумка в тому що б разшарівать диск (флешку) через wr703n для ipad, iphone.

Скажіть будь ласка, є підтримка FAT, FAT32, NTFS?
скільки можна підключити жорстких дисків або флешок з документами?
і чи можна підключати відключати жорсткий диск або флешку без перезавантаження пристрій?

Підтримка FAT, FAT32, NTFS є. Але NTFS не раджу через зайвої завантаження процесора, а у FAT32 обмеження на розмір файлу 4Гіга.
Можна підключити стільки пристроїв, скільки у вас usb-портів в usb-хаб.
Якщо на флеш (диску) не встановлена ​​коренева система, то можна підключати / відключати пристрій без перезавантаження систему.
При відключенні, що б уникнути помилок файлової системи потрібно зупинити всі програми які працюють з диском (transmission, samba і т.д.) потім отмонтировать диск (umount / dev / sdb1).
Можна написати скрипт і повісити його на кнопку, якщо така є на роутері

Скажіть будь ласка, є підтримка FAT, FAT32, NTFS?
скільки можна підключити жорстких дисків або флешок з документами?
і чи можна підключати відключати жорсткий диск або флешку без перезавантаження пристрій?