BTRFS na Turris 1.x

Jasně, díky.
Také mi tato informace pomohla! :slight_smile:

Už jsem vyzkoušel i to resetovací tlačítko na návrat do továrního nastavení … nikam se nenavrátí, nabootuje opět z microSD karty. Zajímavé! :slight_smile:

Skoro bych řekl, že přepíše NAND, ale nabootuje z microSD karty a tváří se, jakoby nic (tj. že nic neudělal, ale on udělal!)

Tady bych možná potřeboval opět menší vysvětlení, jak to bylo zamýšleno.

Zdravím, dneska jsem se rozhodl přejít na btrfs, postupoval jsem podle manuálu, přeflashoval jsem za pomocí sd karty, dal turrise do základního nastavení, spustil jsem script na migraci který naformátoval sd kartu, z nějakého důvodu napsal, že sd karta není ntfs, překopíroval na kartu soubory a úspěšně napsal, že můžu restartovat zařízení. Po restartu se zasekne na tom, že čeká, než se připojí karta:
[ 1.169575] Waiting for root device /dev/mmcblk0p2...
Jak to opravit, aby systém načetl z sd karty?
Děkuji za rady.

Zdár, rozhodl jsem se taky migrovat na BTRFS… uvedu zde nějaké postřehy, které by mohly někomu ušetřit spoustu času.
Při flashi na image 3.6.5 je potom problém při migraci na nový updater-ng… Zasekne se to na Turris OS 3.7.3 tuším… vyřešilo se to tímto… Po upgradu na 3.8.1 a spuštění btrfs_migrate script skončil:

mount: mounting /dev/mmcblk0p1 on /tmp/btrfs-convert/target/@/boot/tefi failed: Invalid argument
Can’t mount fat

v dmesg:

[ 1567.363708] FAT-fs (mmcblk0p1): codepage cp437 not found
[ 1764.723906] FAT-fs (mmcblk0p1): IO charset iso8859-1 not found

a pomohlo nainstalování kmod-nls-cp437 kmod-nls-iso8859-1

tak hodně zdaru

4 Likes

To s tím návratem k továrnímu nastavení a vloženou SD se systémem jsem zažil, nabootovalo to systém z karty. SD musela ven, pak bootovalo z NAND.

No jo … člověk by očekával, že mu to navrátí do továrního nastavení aktuální systém a ne skrytě jeho původní zdroj v NAND, který už třeba měsíce nepoužívá.

Ahoj, dopadl jsem stejně -skript btrfs_migrate script skončil

mount: mounting /dev/mmcblk0p1 on /tmp/btrfs-convert/target/@/boot/tefi failed: Invalid argument
Can’t mount fat

pouze s tím rozdíle, že mi nepomohlo nainstalování zmíněných balíčků kmod-nls-cp437 kmod-nls-iso8859-1

Dokáže někdo poradit co zkusit?

Pánové a jste si vědomi, že boot z SD karty funguje až od verze 3.8.0, takže pokud děláte čistou instalaci z SD karty z verze 3.6.5 tak musíte router nechat aktualizovat na nejnovější verzi (3.8.1) aby to fungovalo.
Potom bych zkusil reistalovat ten skript, jestli ho nemáte starší verzi.

Ale @radekson píše “po upgradu na 3.8.1”.
Mě spíš napadá problém s kartou. Je dost velká?
Zkuste ji ručně smazat a překlopit na ext4.

Edit: hláška Can’t create fat je po chybě při pokusu
o vytvoření file systemu na části karty na vfat,
druhá část se převede na btrfs.

zkus ten oddíl /dev/mmcblk0p1 připojit ručně a mrknout co píše dmesg? já instaloval ještě kmod-fs-vfat… zapomněl jsem zmínit…

Díky, pomohlo to. Po nainstalování kmod-fs-vfat už mígrace proběhla.

Úspěšně jsem namigroval, obnovil nastavení a když jsem došel k tomu, že si znovu nakonfiguruji flashku, co mám v USB, ať ji můžu používat jako síťový disk, tak ejhle - nejde to. Nejde mi máznout stávající konfigurace a pokud ji chci použít, tak disk nelze ve Windows připojit (samba na Turrisu by měla běžet). Nicméně za tu dobu, co jsem Turris konfiguroval naposledy, určitě přibyla hromada hejblátek, který by šly nastavit a já ani nevím, že v menu jsou. Navíc se mohla změnit i nálada na původní nastavení, a tak jsem si řekl, že provedu obnovu do továrního nastavení. Jak se to ale dělá na Turrisu 1.0, který je zmigrovaný na BTRFS? Dlouhé podržení reset tlačítka se sice tváří, jako by došlo k přepsání systému (běží to déle než reboot, LEDky blikají jako při obnově), ale pak tam mám stejně zase své původní nastavení…

Ajajaj … tímto jste si pouze smazal obsah NAND paměti a přehrál obrazem ze záchranného oddílu NOR.
Pro reset bootování je potřeba “zneškodnit” partition 1 (typu VFAT) na microSD kartě.
V podstatě máte tyto 3 možnosti:

  1. vyndat fyzicky microSD kartu ze slotu
  2. zformátovat obsah VFAT partitiony na microSD kartě
  3. smazat obsah VFAT na microSD kartě (tj. soubory s kernelem zImage a FDT).

Výše uvedené povede k tomu, že Váš router začne opět bootovat z vnitřní NAND paměti, kde se po tom, co jste dlouze stiskl reset tlačítko, nachází zresetovaný systém (v té verzi, kterou máte v NOR paměti … tj. nejspíš TurrisOS 3.6.5, pokud jste při migraci na BTRFS vycházel z doporučení a podle dokumentace).

Řekněme, že se rozhodnu pro možnost 3 - zdá se mi nejjednodušší. Když se přes WinSCP připojím na Turris, tak jsem na paměťovce, je to tak? Takže jakmile smažu obsah složky boot a provedu restart Turrise, tak by měl nabootovat z NAND paměti. Co se stane pak? Musím provést migraci na BTRFS?


Edit (pro ostatní, co by taky nevěděli :slight_smile: ): Nakonec jsem vypl Turris, naformátoval paměťovku ve Win, vložil zpátky do Turrise, zapl Turris, který nabootoval z NAND paměti, prošel jsem instalačním průvodcem, ten provedl upgrade na verzi TurrisOS 3.7.3 - tady jsem zkusil provést migraci na BTRFS, ale nepovedlo se to, systém vypisoval chybu, že není připojena paměťovka. Nevím, jestli by stačil restart nebo ne, ale udělal jsem upgrade na TurrisOS 3.8.4 (bylo nutné jej vynutit - postupně spustit příkazy vypsané níže), pak jsem restartoval Turris, provedl migraci na BTRFS dle oficiální dokumentace a bylo. Nyní to vypadá, že vše jede, zjistil jsem, že Schnapps je již součástí, takže jsem si udělal obraz systému a už konečně vím, že příště jen obnovím na obraz a budu mít čistou instalaci. :slight_smile:

Díky všem za pomoc.

wget http://repo.turris.cz/turris/packages/turrispackages/updater-ng_59.3.3-1_mpc85xx.ipk
opkg-trans -a updater-ng_59.3.3-1_mpc85xx.ipk -r opkg-trans -r updater
get-api-crl
pkgupdate --batch
1 Like

Včera vyšel videonávod pro upgrade na BTRFS pro Turris 1.x:

Pokud má ještě někdo Turris 1.0 s JFFS2, tak ve videu je ukázano, jak má postupovat na přechod na UBIFS zhruba od 1:57 s tím, že je lepší si vytvořit zálohu, protože budete pak muset všechno nastavovat znovu. Nezapomenout, že na microSD kartu je potřeba nahrát aktuální obraz SD karty z repozitáře.

Zhruba od 3. minuty je přechod na BTRFS (s tím, že je potřeba mít již vloženou microSD kartu)

(Odkazy na jednotlivé videonávody můžete najít v dokumentaci.)

Díky @Nora :slight_smile:

3 Likes

Oživím tohle vlákno a zeptám se - když mi (dle dokumentace) mount | grep btrfs vypíše:

/dev/mmcblk0p2 on / type btrfs (rw,noatime,ssd,space_cache,commit=5,subvolid=257,subvol=/@)

tak to znamená, že mi Turris OS běží z paměťovky, takže jsem udělal vše správně, že? Ptám se proto, že Storage plugin mi červeně hlásí:

Device currently in use is mmcblk0p2 (internal flash).

Rád bych, abych nezatěžoval vnitřní paměť Turrise a neodrovnal si ho.
A pak ještě dotaz k tomu Storage pluginu - když v něm označím flashku, kterou mám v USB portu Turrise a uložím to, tak mi na tu flashku půjdou jen logy apod., ale systém jako takový poběží i nadále z paměťovky, co jsem dal do slotu pod RAM? Půjde na tu paměťovku v budoucnu ukládat uživatelská data? Chystám se si tam udělat pár “databází”, tak jestli to půjde i nadále takto používat.

Tak by to mělo být správně, já to mám taky tak:

Podle velikosti karty si můžete ověřit, že je to SD karta, nikoliv ta původní v Turrisu.

Máš to dobře … původní root na Turrisu se tváří jako ubifs … pokud vidíš mmcblk0p2, je to ta druhá partitiona na paměťové kartě (první je typu vfat a je pro bootování).

I storage plugin to hlásí dobře, mmcblk0p2 (internal flash) je pro něj tvá paměťovka, takže v podstatě nemusíš nic nikam přesouvat, protože si opakovanými zápisy ničíš SD kartu, což je v podstatě to samé, jako když si po přesměrování bude ničit USB flashku (jen se ta paměťovka zpod RAMky vyměňuje trošku hůře než USB flashka.

Ale paměť routeru si neopotřebováváš, a to je to podstatný a důležitý!

Na paměťovku si můžeš ukládat uživatelský data … přihlaš se do routeru pomocí SSH a vše, co vidíš, je tvá paměťovka (celý root je na ní přesunut).

Čili vytvoř si třeba nějaký adresář (nebo využij již vytvořený /mnt) a do něj si ukládej, jaká data chceš. Můžeš si ho případně i nasdílet ven pomocí SAMBY (pomocí menu Síťová sdílení v LUCi) apod.

2 Likes

Mam Turris 1.0 OS 3.11.4 a chtel bych premigrovat na BTRFS.

Opravdu musim i s touto verzi flashnout z SD?

btrfs_migrate mi pise
1.1 firmware required!

diky

Tato hláška nejspíš znamená, že jako rootový filesystém nemáte UBIFS, ale ještě to původní JFFS2

jenze z tohoto jsem zmaten

https://doc.turris.cz/doc/cs/troubleshooting/sdcard_recovery#prechod_z_jffs2_na_ubifs

Návod se zde již nenachází, protože v tuto chvíli není potřeba jelikož jsme záchranný systém automaticky aktualizovali ve verzi Turris OS 3.10.9.