Dobrý den,
jak na Turrisu 1.1 správně provést přechod na btrfs? Je zde na fóru několik témat, ale s prominutím je v tom takový bordel a zmatek, že po dvoudenním pročítání fóra se v tom už vůbec nevyznám. Tak jsem se obrátil na podporu se žádostí, jestli by mi nemohli postup, který najdete níže zkonzultovat a říci mi, jestli někde není nějaká bota. Ale podpora nepodporovala, prostě se na mě vy…
Dobrý den,
nejsem nyní schopen odhadnout jak se bude router s vámi popisovaným postupem chovat. Oficiálně podporovaný je pouze postup uvedený na našich stránkách: Migrace Turris 1.x na Btrfs [Turris wiki]
Bohužel nyní vzhledem k zátěži nejsem časově schopen daný problém problém nyní nijak verifikovat zda bude i do budoucna funkční nebo ne.
s pozdravem
Honza
Turris Support
Tak jsem se rozhodl, že se do toho pustím na vlastní Turris. Teda, vlastní, ještě je pod smlouvou :-). Veškeré příkazy a poznatky jsem posbíral zde různě na fóru, takže to jen zhustím na jedno místo.
Info o zařízení:
Turris RTRS02, tedy verze 1.1
Turris OS version: 3.8.2.1
Kernel version: 4.4.89-d74822050ae7ec4a1e49c6af6d672787-2
Verze firmwaru: OpenWrt turris 15.05 r47055 / LuCI 49c3edd5861fd032fa8379ceda525c27a908a114 branch (git-17.212.24321-49c3edd)
V routeru je vložena SSD karta o kapacitě 8 GB. Po poslední aktualizaci jsem router restartoval, neběží ucollect a firewall, ale na to teď sere Bílej Tesák.
Verze v NOR
root@turris:~# mount /dev/mtdblock3 /mnt
root@turris:~# xz -cd /mnt/*medkit* | tar -Ox ./etc/turris-version
2.4
Nesmíme zapomenout svazek odmontovat
umount /mnt
##_____________________________________
Důležité
Aby bylo možné následující kroky podniknout, je třeba mít v routeru fw verze minimálně 3.8 a vyšší. Zde na fóru je zde popsáno mnoho případů, kdy se aktualizace po továrním obnovení zasekne na verzi 3.7.3. Pokud patříte mezi takto postižené, doporučuje se následující postup. Po připojení se přes ssh zadáme v terminálu postupně tyto příkazy:
Stáhneme balíček s novějším updaterem
wget http://repo.turris.cz/turris/packages/turrispackages/updater-ng_59.3.3-1_mpc85xx.ipk
Případně si nejnovější číslo verze balíčku updater-ng najdeme v adresáři repositáře Index of /turris/packages/turrispackages/ a příslušně upravíme název souboru ve výše uvedeném příkazu.
Poté zadáme
opkg-trans -a updater-ng_59.3.3-1_mpc85xx.ipk -r
Následně
opkg-trans -r updater
Potom
get-api-crl
A nakonec
pkgupdate --batch
Poté bychom měli být na poslední verzi.
Tuto část nemám vyzkoušenou na vlastním routeru, za její zaslání děkuji @ajb007.
##_____________________________________
Update NOR na na verzi 3.6.5
Vyšší verze bohužel nejde flashnout. Flash skončí chybou, ale naštěstí router po rebootu nastartoval. Balíček medkit verze 3.8.2.1 má velikost 20 MB a zřejmě se do NOR nevejde. Verze 3.6.5 má velikost 11 MB a flash proběhne bez problémů.
1 - Po přihlášení přes ssh zadáme příkaz ke stažení medkitu
wget https://repo.turris.cz/archive/turris/3.6.5/medkit/medkit.squashfs
a v terminálu nám poběží
2017-10-06 16:56:58-- https://repo.turris.cz/archive/turris/3.6.5/medkit/medkit.squashfs
Resolving repo.turris.cz... 2001:1488:ac15:ff80::105, 217.31.192.105
Connecting to repo.turris.cz|2001:1488:ac15:ff80::105|:443... failed: Permission denied.
Connecting to repo.turris.cz|217.31.192.105|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11303967 (11M)
Saving to: 'medkit.squashfs'
medkit.squashfs 100%[=======================================>] 10.78M 2.32MB/s in 4.6s
2017-10-06 16:57:03 (2.33 MB/s) - 'medkit.squashfs' saved [11303967/11303967]
2 - Máme staženo, můžeme flashovat. Zadáme příkaz
mtd write medkit.squashfs "NOR (RO) NAND FW backup"
Výstup v konzoli bude:
Unlocking NOR (RO) NAND FW backup ...
Writing from medkit.squashfs to NOR (RO) NAND FW backup ...
Čas jsem neměřil, ale netrvalo to dlouho. Minutku, možná dvě…
3 - Přesvědčíme se, že máme správně naflashováno
mount /dev/mtdblock3 /mnt xz -cd /mnt/*medkit* | tar -Ox ./etc/turris-version 3.6.5
Pokud vidíme 3.6.5 jako na řádku výše, vše se povedlo. Můžeme tedy zadat
umount /mnt
reboot
čímž odpojme svazek mtdblock3 a následně restartujeme router.
4 - Provedeme migraci na btrfs
Opět v konzoli, do níž jsme se přihlásili přes ssh nejprve aktualizujeme balíčky a následně nainstalujeme balíček turris-btrfs-migrate
opkg update
opkg install turris-btrfs-migrate
poté zadáme příkaz k vlastní migraci
btrfs_migrate
a potvrdíme, že víme, co děláme. Výstup je poměrně ukecaný, necháme vše doběhnout.
Are you sure you want to loose everything on mmcblk0? (yes/no)
yes
11+0 records in
11+0 records out
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x8616aea1.
Command (m for help): Created a new DOS disklabel with disk identifier 0xf49f7c98.
Command (m for help): Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): Partition number (1-4, default 1): First sector (2048-15564799, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-15564799, default 15564799):
Created a new partition 1 of type 'Linux' and of size 100 MiB.
Command (m for help): Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): Partition number (2-4, default 2): First sector (206848-15564799, default 206848): Last sector, +sectors or +size{K,M,G,T,P} (206848-15564799, default 15564799):
Created a new partition 2 of type 'Linux' and of size 7.3 GiB.
Command (m for help): The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
mkfs.fat 3.0.28 (2015-05-16)
btrfs-progs v4.11
See http://btrfs.wiki.kernel.org for more information.
Detected a SSD, turning off metadata duplication. Mkfs with -m dup if you want to force metadata duplication.
Performing full device TRIM /dev/mmcblk0p2 (7.32GiB) ...
Warning, could not drop caches
Warning, could not drop caches
Label: (null)
UUID: 84ea0564-14e2-4359-a5b1-65e6078b1744
Node size: 16384
Sector size: 4096
Filesystem size: 7.32GiB
Block group profiles:
Data: single 8.00MiB
Metadata: single 8.00MiB
System: single 4.00MiB
SSD detected: yes
Incompat features: extref, skinny-metadata
Number of devices: 1
Devices:
ID SIZE PATH
1 7.32GiB /dev/mmcblk0p2
Warning, could not drop caches
Create subvolume '/tmp/btrfs-convert/target/@'
Warning: Bad CRC, using default environment
Migration successful, please reboot!
Poslechneme a restartujeme
reboot
5 - Po restartu bychom měli být na btrfs a můžeme vytvořit svou první zálohu. Přihlásíme se do konzole a zadáme příkaz
schnapps create
Vytvoření je velmi rychlé. Že se záloha vytvořila můžeme buď příkazem
schnapps list
nebo například příkazem
ls -C /mnt
kde ve výstupu vidíme v mém případě dvě zálohy @1 a @2
1.info 2.info @ @1 @2
Ověření, že systém běží z brtfs na ssd kartě
Po přihlášení do konzole zadáme jednoduchý příkaz
mount
který primárně slouží k mountování disků, ale pokud je vyvolán bez parametrů, zobrazí aktuální stav přippojených disků a oddílů. Zajímat nás tady bude pouze první řádek. V mém případě je to:
/dev/mmcblk0p2 on / type btrfs (rw,noatime,ssd,space_cache,commit=5,subvolid=257,subvol=/@)
Tento řádek říká, že zařízení /dev/mmcblk0p2 (sd karta, druhý oddíl) je namontována do / tedy rootu. A je jasné, že systém jede z SD karty
#Trablšůtink aneb, když se nedaří
- Pokud se na Turrisu 1.0 nedaří úpřechod z JFFS na UBIS dle firemní dokumentace, zkusíme nainstalovat kmod-fs-vfat, popřípadě ještě kmod-nls-cp437 a kmod-nls-iso8859-1