Tato dokumentace je jen pro Turris OS 3.x, který se už nenachází na nově prodávaných routerech. Novou dokumentaci najdete na https://docs.turris.cz/.
V současné době existují dva způsoby, jak lze spouštět Turris Omnia z externího úložiště.
V obou případech potřebujete sériový kabel a flash disk s medkitem.
Po vložení výměnného úložiště do zařízení Turris Omnia zapojte sériový kabel a připojte napájení. V sériové konzole, jakmile získá napájení, zkuste co nejrychleji opakovaně mačkat klávesu Enter, až se vám povede přerušit zavaděč U-Boot a získáte prompt příkazové řádky '⇒'. Zapamatujte si, jak jste to udělali, bude to znovu potřeba později.
Nyní do příkazové řádky napište `run rescueboot` a počkejte, až naběhne záchranný režim. Jakmile uvidíte prompt, můžete začít s přípravou disku. V tuto chvíli pravděpodobně uvidíte dva dostupné disky: sda a sdb. Nejpravděpodobněji váš USB/SSD disk bude sda a USB disk s medkitem bude sdb. Můžete to ověřit vložením:
fdisk -l /dev/sda
Tímto se zobrazí velikost dostupných disků a oddílů. Pomocí programu fdisk můžete disk (znovu) rozdělit na oddíly, pokud chcete mít oddíly určené pro jiné účely.
Připojíte-li nový SSD disk, musíte nástrojem fdisk vytvořit aspoň jeden oddíl.
Nyní první oddíl zformátujte na Btrfs a vytvořte kořenový podsvazek (subvolume) pomocí následujících příkazů:
mkfs.btrfs /dev/sda1 mkdir /mnt/ssd mount /dev/sda1 /mnt/ssd btrfs subvol create /mnt/ssd/@
Nyní potřebujete připojit flash disk a nainstalovat medkit.
mkdir /mnt/flash mount /dev/sdb1 /mnt/flash cd /mnt/ssd/@ tar -xzvf /mnt/flash/omnia-medkit-*.tar.gz
A teď je čas všechno uklidit.
cd umount /mnt/flash umount /mnt/ssd
Nyní máte disk, ze kterého lze spouštět systém. Můžete restartovat router pomocí příkazů:
echo s > /proc/sysrq-trigger echo b > /proc/sysrq-trigger
Ke spouštění ze SSD připraveného v předchozím kroku je potřeba upravit prostředí U-Boot. Musíte se tedy opět dostat do příkazové řádky opakovaným mačkáním klávesy Enter. Jakmile získáte prompt, vložte následující příkazy:
setenv bootargs 'earlyprintk console=ttyS0,115200 rootfstype=btrfs rootwait root=/dev/sda1 rootflags=subvol=@,commit=5 rw' setenv bootcmd 'i2c dev 1; i2c read 0x2a 0x9 1 0x00FFFFF0; setexpr.b rescue *0x00FFFFF0; if test $rescue -ge 1; then echo BOOT RESCUE; run rescueboot; else echo BOOT eMMC FS; run scsiboot; fi' setenv scsiboot 'setenv bootargs "$bootargs cfg80211.freg=$regdomain"; scsi scan; btrload scsi 0:1 0x01000000 boot/zImage @; btrload scsi 0:1 0x02000000 boot/dtb @; bootz 0x01000000 - 0x02000000' saveenv boot
Tyto úpravy změní bootovací příkazy tak, aby se router spouštěl ze SSD, uloží nastavení a restartuje router. Po příštím resetu zařízení už by mělo automaticky startovat ze SSD.
Ke spouštění z USB flash disku připraveného v předchozím kroku je potřeba upravit prostředí U-Boot. Musíte se tedy opět dostat do příkazové řádky opakovaným mačkáním klávesy Enter. Jakmile získáte prompt, vložte následující příkazy:
setenv usbboot 'setenv bootargs "$bootargs cfg80211.freg=$regdomain"; usb start; btrload usb 0 0x01000000 boot/zImage @; btrload usb 0 0x02000000 boot/dtb @; bootz 0x01000000 - 0x02000000' setenv bootargs 'earlyprintk console=ttyS0,115200 rootfstype=btrfs rootwait root=/dev/sda1 rootflags=subvol=@,commit=5 rw' setenv bootcmd 'i2c dev 1; i2c read 0x2a 0x9 1 0x00FFFFF0; setexpr.b rescue *0x00FFFFF0; if test $rescue -ge 1; then echo BOOT RESCUE; run rescueboot; else echo BOOT eMMC FS; run usbboot; fi' setenv scsiboot 'setenv bootargs "$bootargs cfg80211.freg=$regdomain"; scsi scan; btrload scsi 0:1 0x01000000 boot/zImage @; btrload scsi 0:1 0x02000000 boot/dtb @; bootz 0x01000000 - 0x02000000' saveenv boot
Tyto úpravy změní bootovací příkazy tak, aby se router spouštěl z USB, uloží nastavení a restartuje router. Po příštím resetu zařízení už by mělo automaticky startovat z USB.
Schnapps předpokládá, že vaše kořenové zařízení je na eMMC. Musíte ho přesvědčit, že je jinde. K tomu je potřeba vytvořit konfigurační soubor a specifikovat, kde se kořenový souborový systém nachází:
mkdir /etc/schnapps echo 'ROOT_DEV="/dev/sda1"' > /etc/schnapps/config
Neměli byste používat mountovací plugin do LuCI, protože se pokouší odpojit všechny externí disky včetně toho vašeho tím může rozbít systém. Je také možné, že v některé z budoucích verzí aktualizujeme U-Boot a jeho prostředí. To může přepsat vaše nastavení a bude potřeba zopakovat příkazy uvedené v kroku Spouštění ze SSD nebo Spouštění z USB, aby se váš router znovu znovu spouštěl. Nebude také fungovat většina možností obnovy pomocí resetovacího tlačítko - návrat k předchozímu snapshotu nebo reset do továrního nastavení. Můžete ale stále spravovat snapshoty ručně pomocí programu schnapps, pokud jste ho správně nastavili.