Portál AbcLinuxu, 10. května 2025 05:34

Dotaz: Vypínání systému "natvrdo"

2.12.2013 06:36 RYU.cz | skóre: 16 | Vsetín
Vypínání systému "natvrdo"
Přečteno: 1055×
Odpovědět | Admin
Zdravím, potřeboval bych poradit jak na Raspberry Pi ošéfovat systém tak aby nebyl poškozen při vypnutí natvrdo. Vím že například na Voyage (pro routery WRAP a Alix) byla například karta v read only režimu.

Lze tohoto dosáhnout i u Raspianu? Popřípadě, jak?
Linux is like a teepee - no windows, no gates, apache inside. | RYU.cz
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 2.12.2013 07:19 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Odpovědět | | Sbalit | Link | Blokovat | Admin
Osobně to ve své aplikaci neřeším, spoléhám se na žurnál souborového systému. A nekonzistenci při tvrdém vypnutí na aplikační úrovni musíš řešit sám….
2.12.2013 16:08 Pat1 | skóre: 15
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Problem SD karet je ze se navenek tvari ze se na ne da zapsovat 512B bloky, skutecne bloky jsou ale mnohem vetsi. Obecne tedy muze pozadavek na zapis znamenat precteni/zapis mnohem vetsiho bloku. Logicke a fyzicke bloky nejsou namapovany 1:1 a kvuli ruznym optimalizacim a wear-levelingu se mohou pohybovat. Nejhorsi na tom je ze tyto operace obecne NEJSOU atomicke, tzn. pokud dojde k vypadku napajeni behem zapisu muze dojit k poskozeni nejen zapisovanych dat ale i dat lezicich ve stejnem fyzickem bloku. Z pohledu fs to znamena ze jeden zapis muze poskodit i uplne jina data nez s kterymi se pracovalo, a na to zadny zurnal nepomuze. Pokud je tedy vyzadovana odolnost proti vypadku proudu je nutne pouzit jedno z reseni:

- RO file system (https://wiki.debian.org/ReadonlyRoot)

- Zalohovane napajeni

- Prumyslova SD karta

K vyse uvedenemu jevu nedochazi casto, ale stava se to a pokud je RPi 100km daleko tak to dokaze nastvat ... Pokud ho mas jen na hrani a vali se ti na stole tak to asi neni potreba nejak resit.
2.12.2013 07:58 kujón
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Odpovědět | | Sbalit | Link | Blokovat | Admin
A přepnutím toho read only čudlíku na SD kartě to nejde?
2.12.2013 08:06 RYU.cz | skóre: 16 | Vsetín
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
To zas není to co ptřebuju, občas tam zápis být musí. Asi se zkusím spolehnout na žurnál, jak radí Jenda.
Linux is like a teepee - no windows, no gates, apache inside. | RYU.cz
Josef Kufner avatar 2.12.2013 08:52 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Můžeš si zlepšit šance na přežití volbami sync,commit=1,data=ordered,barrier=1 a pravidelným fsck při každém bootu (malá partition je za chvilku).
Hello world ! Segmentation fault (core dumped)
2.12.2013 11:59 R
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
A karta vydrzi 3 mesiace.
Josef Kufner avatar 2.12.2013 12:32 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Píše, že zapisuje jen občas ;-)
Hello world ! Segmentation fault (core dumped)
2.12.2013 12:57 RYU.cz | skóre: 16 | Vsetín
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Já technicky zápisy vůbec nepotřebuju, ale co systém samotný?
Linux is like a teepee - no windows, no gates, apache inside. | RYU.cz
Josef Kufner avatar 2.12.2013 15:30 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Systém zapisovat nepotřebuje. Něco dáš do tmpfs, např. /run, /tmp, /dev a další (a ve /var pak mít odpovídající symlinky). Pak je tam pár věcí, které budou zlobit, neboť jsou špatně umístěné (např. /etc/resolv.conf), ale to vyřeší pár symlinků.
Hello world ! Segmentation fault (core dumped)
Jendа avatar 2.12.2013 08:34 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Po přepnutí to nejspíš nenabootuje (nechce se mi to zkoušet).
2.12.2013 09:24 Jirka | skóre: 25
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Nevím jak vám, ale mě to na zapisuje i na zamčenou kartu.
Dokud to funguje, nešťourej se v tom!...
2.12.2013 18:56 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
jen bych upozornil, ze ten "maly plastovy cudlik na karte (TM)" je jen "maly plastovy cudlik na karte (TM)". Ctecka ma mikrospinac, kterym MUZE zjistovat polohu toho "maleho plastoveho cudliku na karte (TM)", ale s touto informaci muze nalozit podle svych potreb. Rozhodne o tom karta nevi vubec nic. :-)
Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
2.12.2013 09:24 Jirka | skóre: 25
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přidat do fstabu option sync?
Dokud to funguje, nešťourej se v tom!...
2.12.2013 14:47 pet
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bootuj z ramdisku, zapisuj na ramdisk nebo na /dev/null, kartu mountuj jen readonly. System potrebuje zapisovat jen tehdy, kdyz mu to admin dovoli (ve vychozim stavu povoleno) ;-)
4.12.2013 13:47 jbohac | skóre: 19 | Praha 5
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:
Přesně toto jsem vyřešil přiloženým initscriptem.
- vytvořit adresář /rw
- umístit do /etc/init.d skript a zapnout pomocí update-rc.d
Do /rw to namountuje tmpfs, vytvoří v něm podadresáře a ty to bindmountne na místa, kam systém obvykle potřebuje zapisovat. Pro /var/run tam nakopíruje obsah z SD karty, aby tam programy měly vytvořené své adresáře.

Chodí mi to na vlastní instalaci debianu, ale s raspbianem by to mělo být stejné. Pro běžné serverové služby to funguje dobře.

Rozběhat na tom Xka a firefox bylo trošku horší, chtělo to pár symlinků z HOME uživatele do /tmp

YMMV.

Josef Kufner avatar 4.12.2013 16:00 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Vypínání systému "natvrdo"
Má nějaký význam vytvářet jeden tmpfs a ten bindmountovat oproti prostému mountu několika tmpfs?
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.