Aktualizujeme seznam balíčků a nainstalujeme potřebné moduly pro podporu USB úložišť a souborového systému ext4:
root@OpenWrt:~# opkg update root@OpenWrt:~# opkg install block-mount kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-storage kmod-fs-ext4
Nevěnujte pozornost chybovému hlášení, které se objeví během instalace balíčku kmod-usb-storage (Barrier Breaker 14.07). Modul se ve skutečnosti úspěšně nainstaloval.
kmod: failed to insert /lib/modules/3.10.49/sd_mod.ko
Restartujeme router:
root@OpenWrt:~# reboot
Připojíme USB úložiště a sledujeme, jak na to systém zareaguje (měl by ho detekovat). V mém případě příkaz dmesg vypsal následující:
root@OpenWrt:~# dmesg ... [ 18.800000] usb-storage 1-1.4:1.0: USB Mass Storage device detected [ 18.810000] scsi0 : usb-storage 1-1.4:1.0 [ 18.810000] usbcore: registered new interface driver usb-storage [ 19.810000] scsi 0:0:0:0: Direct-Access SanDisk Cruzer Fit 1.27 PQ: 0 ANSI: 6 [ 19.820000] sd 0:0:0:0: [sda] 62530624 512-byte logical blocks: (32.0 GB/29.8 GiB) [ 19.830000] sd 0:0:0:0: [sda] Write Protect is off [ 19.830000] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00 [ 19.830000] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [ 19.850000] sda: sda1 sda2 sda3 [ 19.860000] sd 0:0:0:0: [sda] Attached SCSI removable disk ...
Pokud systém vidí úložiště a všechny jeho oddíly, upravíme soubor /etc/config/fstab a zadáme body připojení.
Místo názvů oddílů „sdxx“ v souboru fstab použijte identifikátory „uuid“, protože jsou jedinečné. Pokud připojíte další (nebo dokonce více) úložišť, není zaručeno, že router přiřadí USB úložišti správný název. Proto místo názvu zařízení „device“ uveďte jedinečný identifikátor oddílu „uuid“.
Identifikátory oddílů zjistíte spuštěním příkazu block detect, poté proveďte příslušné změny ve fstab. Pokud instalujete systém od začátku, je lepší vygenerovat fstab automaticky:
root@OpenWrt:~# block detect >> /etc/config/fstab
Zkontrolujeme výsledek:
root@OpenWrt:~# cat /etc/config/fstab config 'global' option anon_swap '0' option anon_mount '0' option auto_swap '1' option auto_mount '1' option delay_root '5' option check_fs '0' config 'swap' option uuid 'b91e3bff-9e15-4fd0-82e7-25d75d889ce6' option enabled '0' config 'mount' option target '/mnt/sda2' option uuid '7ee9d192-239f-4401-b749-3fb60b4f8eaa' option enabled '0' config 'mount' option target '/mnt/sda3' option uuid 'ad0381c6-31b8-4eda-ac21-a87bbd09eef2' option enabled '0
Upravíme soubor /etc/config/fstab. Parametry oddílu sda3, který byl vytvořen pro NAS, zatím zakomentujeme nebo odstraníme (nastavení NAS provedeme později):
root@OpenWrt:~# vi /etc/config/fstab config 'global' option anon_swap '0' option anon_mount '1' option auto_swap '1' option auto_mount '1' option delay_root '5' option check_fs '0' option from_fstab '1' config 'swap' option uuid 'b91e3bff-9e15-4fd0-82e7-25d75d889ce6' option enabled '1' config 'mount' option target '/overlay' option uuid '7ee9d192-239f-4401-b749-3fb60b4f8eaa' option fstype 'ext4' option options 'rw,sync' option enabled '1'
Pokud jsou body připojení zřejmé, podrobněji se zastavíme u parametrů sekce global:
option anon_swap '0' # монтировать своп-раздел, даже если он не описан в fstab option anon_mount '1' # монтировать раздел с данными, даже если он не описан в fstab option auto_swap '1' # автоматически монтировать своп-раздел при его обнаружении option auto_mount '1' # автоматически монтировать раздел с данными при его обнаружении option delay_root '5' # задержка X секунд до попытки монтирования корневого раздела option check_fs '0' # проверять файловую систему при монтировании option from_fstab '1' # читать данные fstab в случае "горячего" подключения устройства
Vytvoříme dočasný adresář /mnt/sda2 (pro přesun systému, který je umístěn ve vnitřní paměti routeru), a připojíme do něj oddíl USB úložiště.
root@OpenWrt:~# mkdir /mnt/sda2 root@OpenWrt:~# mount /dev/sda2 /mnt/sda2
Zkopírujeme oddíl /overlay ze vnitřní paměti routeru na oddíl umístěný na USB úložišti. Kopírování se provede s zachováním všech oprávnění.
root@OpenWrt:~# tar -C /overlay -cf - . | tar -C /mnt/sda2 -xf -
Nyní můžeme oddíl odpojit a smazat dočasný adresář:
root@OpenWrt:~# umount /mnt/sda2 root@OpenWrt:~# rm -rf /mnt/sda2
Restartujeme router:
root@OpenWrt:~# reboot
Pokud je vše provedeno správně, router by se měl spustit z USB úložiště. Pokud se router nespustí: odpojte USB úložiště, spusťte systém se vnitřním /overlay, připojte USB úložiště, připojte oddíly a zkontrolujte fstab (někdy i několikrát … pomáhá to :)) Otestováno na vlastní kůži!
