Obnova OPNsense z obrazu

x x

Obnova OPNsense z obrazu
« kdy: 04. 08. 2024, 17:22:35 »
Z ssd s opnsense jsem si udělal v ubuntu kopii pomoci dd "dd if=/dev/sdd conv=sync,noerror bs=128K | gzip -c > SSD_image.gz"
Pak jsem na disku zkoušel jiný systém a nyní jsem se chtěl vrátit k tomu co bylo. Takže jsem chtěl obnovit z archivu pomocí "gunzip -c SSD_image.gz | dd of=/dev/sdd". Jenže ouha - "dd: otevření '/dev/sdd' selhalo: Operace zamítnuta"
Zkusil jsem to ještě s balenaEtcher a ten říká že disk je malý ?!?
Jsem docela v koncích co s tím. To image má 3 partišny - fat32,neznámou a ufs.
Zkoušel jsem něco vygooglit, ale nic jsem nevypátral. Dokáže mi někdo poradit?


alex6bbc

  • *****
  • 1 673
    • Zobrazit profil
    • E-mail
Re:obnova img opnsense
« Odpověď #1 kdy: 04. 08. 2024, 17:30:27 »
Z ssd s opnsense jsem si udělal v ubuntu kopii pomoci dd "dd if=/dev/sdd conv=sync,noerror bs=128K | gzip -c > SSD_image.gz"
Pak jsem na disku zkoušel jiný systém a nyní jsem se chtěl vrátit k tomu co bylo. Takže jsem chtěl obnovit z archivu pomocí "gunzip -c SSD_image.gz | dd of=/dev/sdd". Jenže ouha - "dd: otevření '/dev/sdd' selhalo: Operace zamítnuta"
Zkusil jsem to ještě s balenaEtcher a ten říká že disk je malý ?!?
Jsem docela v koncích co s tím. To image má 3 partišny - fat32,neznámou a ufs.
Zkoušel jsem něco vygooglit, ale nic jsem nevypátral. Dokáže mi někdo poradit?

nemaji vliv ty parametry dd?
bs, noerror, sync?

jinak i kdyby to na ssd uz neslo dat, tak to jde namountovat s loop.

x x

Re:Obnova OPNsense z obrazu
« Odpověď #2 kdy: 04. 08. 2024, 17:40:56 »
No s loopem jsem to zkusil - jenže čím eventuelně zkoušet resize ufs aby to bylo menší? Pokud jsem to pochopil správně tak gparted to neumí.

Re:Obnova OPNsense z obrazu
« Odpověď #3 kdy: 04. 08. 2024, 18:42:25 »
No s loopem jsem to zkusil - jenže čím eventuelně zkoušet resize ufs aby to bylo menší? Pokud jsem to pochopil správně tak gparted to neumí.

a gparted nejde pouzit na /dev/loop zarizenim?

x x

Re:Obnova OPNsense z obrazu
« Odpověď #4 kdy: 04. 08. 2024, 19:10:16 »
no právě že ne >:(  přesně řečeno gparted se nechce bavit s ufs - nejde resize


Re:Obnova OPNsense z obrazu
« Odpověď #5 kdy: 05. 08. 2024, 09:07:34 »
Taková zbytečná práce - a přitom stačilo zazálohovat config.xml. Příště budeš chytřejší. A až to budeš reinstalovat, tak použij ZFS. Nikdy, ale opravdu nikdy nikde nepoužívej UFS - zhroucení po jakémkoliv výpadku napájení zaručeno a fsck naprosto beznadějně rozbité a nefunkční.

Re:Obnova OPNsense z obrazu
« Odpověď #6 kdy: 05. 08. 2024, 12:06:10 »
Jj, přesně jak píše LolPhirae, na obnovu stačí ta samá verze OPNsense a ten zmíněný konfigurák.

Ta chybová hláška z dd je divná, pokud by tam mělo být něajké blbé zarovnání nebo delší image než cílový device, tak by to dd dojelo kam až to půjde a nakonec napsalo něco v duchu "No space left on device".
Ale asi se zeptám blbě. Není fakt problém, že k tomu zařízení opravdu nemůžete, protože nemáte práva roota (sudo -i) nebo že na tom cílovém zařízení je nějaký jiný soub. systém a ten je v tu chvíli připojený v systému. Podobně třeba pokud je tam LVM, tak se musí nejdřív deaktivovat přes vgchange -a n volume_group_name

Nakonec ještě jeden tip, pokud máte rychlou stroage (SSD) a děláte si takhle na pokusy komprimované image, tak zstd už pár let zpátky dokáže přímo pracovat s blokovými zařízeními, když se použije parametr --force. Jak na komprimování, tak dekomprimování. Je to výrazně rychlejší, protože když zná celou délku vstupu, tak jede přes všechna jádra CPU, narozdíl od situace, kdy se to tlačí přes stdin, stdout.

x x

Re:Obnova OPNsense z obrazu
« Odpověď #7 kdy: 05. 08. 2024, 17:26:01 »
no chybami se člověk učí. Samozřejmě že jsem se o obnovu pokoušel pod sudo. No nic znova a lépe :)
Jinak si nevybavuji, že bych při instalaci měl na výběr typ filesystému - ale možná je to jen skleróza, ostatně to se pozná.
Děkuji všem za náměty a holt budu muset chcanecha podstoupit novou instalaci.

Re:Obnova OPNsense z obrazu
« Odpověď #8 kdy: 05. 08. 2024, 20:08:12 »
Jinak si nevybavuji, že bych při instalaci měl na výběr typ filesystému - ale možná je to jen skleróza, ostatně to se pozná.

https://docs.opnsense.org/manual/install.html#opnsense-installer



Re:Obnova OPNsense z obrazu
« Odpověď #9 kdy: 05. 08. 2024, 21:46:25 »
Samozřejmě že jsem se o obnovu pokoušel pod sudo.

Stejně je ta chybová hláška podivná, indikuje spíš problém z přístupem na cílové zařízení a ne s tím imagem, co jste si vytvořil. V tomhle případě dd nemůže zapsat na cílové zařízení, opravdu tam nemáte z toho disku nějaký připojený filesystém, nebo něco jiného, co by to mohlo blokovat?
Mělo by tam jít zapsat víceméně odkudkoliv třeba klidně náhodná data.
Např. pokud bych tomu chtěl přijít na kloub a nešlo by mi o ty data (stejně bych to smazal), tak bych ještě vyzkoušel třeba
sudo dd if=/dev/urandom of=/dev/sd-něco bs=1M count=50 oflag=direct
Pokud projde pokusný zápis 50M, tak byste měl být schopen zapsat i tu rozbalenou image. Try harder :)

Jinak i kdyby to nešlo, tak není všem dnům konec i s tou konfigurací. Jestli ještě máte tu image, tak by se měla dát připojit na Linuxu přes loop.
Je to trochu manuální job, ale zas to může být docela zábavné na hraní a třeba i v budoucnu pokud budete někdy zachraňovat data.

Nejdřív se musí zjistit, kde začíná a končí ten nějvětší root oodíl s UFS v imagi. Počítám třeba, že je tam GPT rozložení a pomůžu si přes sfdisk.
sfdisk -d /tmp/bsd-disk-image
To by mělo vypsat tabulku rozložení oddílů, hledáme ten největší. V jeho řádku bude kde začíná (offset) a jak je dlouhý. Oba údaje jsou v sektorech (512 B). Takže si obě získaná čísla postupně vynásobím 512, abych získal výsledek v bajtech, které budeme potřebovat později.

Ovladač pro UFS v Linuxu existuje, ale např. v OpenSUSE (používám Tumbleweed) je blacklistovaný a nezavede se automaticky podle potřeby.
Takže se musí zavést manuálně pomocí: sudo modprobe ufs
Zeptá se to, jestli chcete permanentně zrušit blacklist, což nebude třeba.
Až se modul zavede, tak když se pak pro kontrolu spustí: grep ufs /proc/filesystems tak by to mělo vypsat řádek s ufs.

Nakonec bychom mohli zkusit připojit UFS oddíl do nějakého připravené pomocného mountpointu, třeba /mnt/tmp

sudo mount -t ufs -o ufstype=ufs2,loop,offset=20000000,sizelimit=100000000,ro /tmp/bsd-disk-image /mnt/tmp

Volba loop zařídí, že se připojí image. Do voleb offset a sizelimit napíšete offset a délku z sfdisk přepočtenou na bajty.
A nakonec ufstype=ufs2 je potřeba, aby modul věděl jakou verzi UFS používáte. Moderní FreeBSD používá UFS2.
Nakonec je volba ro, nebude třeba do toho zapisovat.

Až to bude připojené, tak ten config.xml by měl být v podadresáři /conf
Po zkopírování standardně odpojit sudo umount /mnt/tmp

Používám jak Linux, tak FreeBSD a tohle by mělo normálně fungovat. Teoreticky by se to mohlo to zjišťování offsetu zkomplikovat, pokud se místo GPT použije BSD disklabel, ale i to by mělo jít rozklíčovat.

Re:Obnova OPNsense z obrazu
« Odpověď #10 kdy: 05. 08. 2024, 22:07:20 »
Jinak ještě k tomu UFS. Úplně nesdílím ty špatné zkušenosti, co psal LolPhirae.
Používal jsem to léta na FreeBSD i OpenBSD. Ještě dávno předtím, než bylo k dispozici ZFS v nějaké rozumné formě. Kolikrát i třeba na děsivých konfiguracích bez UPS, případně kde to rovnou někdo omylem sundal jističem :) Nikdy jsem nepřišel o zásadní data, pokud tam nebyl vyloženě problém s hardwarem (čemuž nepomůže v zásadě nic a odejde v podstatě jakýkoliv FS). Žádná specifická konfigurace, jen standardně zapnutý soft-updates a samozřejmě synchronní zápisy, tam kde to bylo nutné.
Navíc okolo FreeBSD 9 se soft-updates vylepšilo o vestavěné žurnálování (SU+J). Oboje se ve výchozím nastavení standardně používá v OPNsense.

Naopak ZFS mi přijde do nějakého menšího routeru/firewallu jako vcelku overkill. Větší paměťová zátěž, řádově komplexnější FS, amplifikace zápisů kvůli CoW (což je problém když se použije eMMC). A ve výsledku to pro ten workload víceméně nic nepřinese - narozdíl třeba od nějakého serveru kde mi jde o online verifikaci dat, snapshoty atd.

samozřejmě YMMV :)

Re:Obnova OPNsense z obrazu
« Odpověď #11 kdy: 06. 08. 2024, 14:53:45 »
Osobne by som gzip rozbalil do suboru. Nasledne pomocou programu kpartx pripojil rozbaleny subor ako loop zariadenia.Z loop zariadenia by si mal vediet dostat config pre OPNsense.

x x

Re:Obnova OPNsense z obrazu
« Odpověď #12 kdy: 06. 08. 2024, 16:20:36 »
Osobne by som gzip rozbalil do suboru. Nasledne pomocou programu kpartx pripojil rozbaleny subor ako loop zariadenia.Z loop zariadenia by si mal vediet dostat config pre OPNsense.
config není zdaleka primární záležiost pro mne - touto cestou obnovy ze zálohy SSD jsem se chtěl vyhnout znova celému instalačnímu procesu neboť v mezičase jsem na témže ssd testoval něco jiného /openwrt/

Re:Obnova OPNsense z obrazu
« Odpověď #13 kdy: 06. 08. 2024, 20:59:25 »
Navíc okolo FreeBSD 9 se soft-updates vylepšilo o vestavěné žurnálování (SU+J).

Ano, tím se ta neopravitelnost ještě "vylepšila"... Asi před 10 lety jsem reportoval pár bugů - absolutně nikoho to nezajímalo a dodnes je to otevřené. Fakt jsem nikdy nic horšího nepotkal, včetně "podpory" vývojářů. Ultra šmejd.

Re:Obnova OPNsense z obrazu
« Odpověď #14 kdy: 07. 08. 2024, 00:05:31 »
Ano, tím se ta neopravitelnost ještě "vylepšila"... Asi před 10 lety jsem reportoval pár bugů - absolutně nikoho to nezajímalo a dodnes je to otevřené. Fakt jsem nikdy nic horšího nepotkal, včetně "podpory" vývojářů. Ultra šmejd.

Já vám to neberu, jen jsem psal, že jsem s tím UFS neměl v praxi až tak negativní zkušenosti. Možná jsem jen klikař ¯\_(ツ)_/¯.
Fakt jsem to používal hodně, protože prostě v té době 15-20 let zpátky jednoduše nebyla jiná možnost, na FreeBSD to bylo UFS2, na OpenBSD pak ten původní flavor 4.4BSD a softdep. Od normálních serverů, PCček co si hrály na servery, přes nějaké m0n0wally, PC engines s CF kartami atp. Jak jsem zmínil, když to nevadilo výkonu a hodilo se to (např. logy, mail adresář na poštovním serveru, atp.), tak jsem to prostě připojil s parametrem sync.
Jinak v poslední době jsou to povětšinou virtuály a neplánované výpadky se moc nekonají, takže nemám úplně aktuální zkušenosti s nějakými opravami UFS, nebo fsck_ffs z posledních verzí BSD.

Ale jasně, pokud bude na stroji s OPNsense aspoň 4GB paměti a normální disk (ne nějaká karta), kde se nebude řešit  počet zápisů, tak poběží samozřejmě v pohodě i to ZFS. Jen mi to pro tenhle use-case nepřišlo tak zásadní (pro nejhorší případ je konfigurace v jednom XML, a třeba výhoda v ZFS boot environments mi nepřijde na firewallu tak kritická, jako u normálního serveru), ale zas pokud to "nic" nestojí, proč to nepoužít.
« Poslední změna: 07. 08. 2024, 00:07:27 od Michal Šmucr »