This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
wiki:os:linux:writable-snapshot-bez-lvm [2018/01/22 15:31] root |
wiki:os:linux:writable-snapshot-bez-lvm [2018/01/22 15:37] (current) root |
||
|---|---|---|---|
| Line 33: | Line 33: | ||
| blockdev --getsize /dev/loop0 | blockdev --getsize /dev/loop0 | ||
| </ | </ | ||
| + | |||
| + | FIXME Tenhle řádek připraví soubor s definicí mapování typu "celé blokové zařízení" | ||
| + | <code bash> | ||
| + | xtable: | ||
| + | 0 975773156 linear /dev/loop0 0 | ||
| + | </ | ||
| + | |||
| + | Tohle vytvoří blokové zařízení / | ||
| + | <code bash> | ||
| + | dmsetup create base xtable | ||
| + | </ | ||
| + | |||
| + | Tohle vytvoří soubor dané velikosti (bude to odkládací prostor pro writable snapshot), pokud jde jen o dočasnost a vejde se to, dávám to do /dev/shm, velikost by měla být tak dvojnásobek předpokládaných úprav ve snapshotu - velikost těch úprav se odhaduje těžko, i jeden změněný sektor způsobí copy-on-write většího úseku. | ||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | Tohle ze souboru vyrobí blokové zařízení (tady by to nešlo dmsetupem, protože ten umí pracovat jen s blokovými zařízeními): | ||
| + | <code bash> | ||
| + | losetup /dev/loop1 / | ||
| + | </ | ||
| + | |||
| + | FIXME Tohle je největší magie, vytvoří mapování typu copy-on-write snapshot, v podstatě to říká "při přístupu k novému zařízení (to se vytvoří v dalším kroku pomocí dmsetup create) použij daný úsek zařízení / | ||
| + | <code bash> | ||
| + | mtable: | ||
| + | 0 975773156 snapshot / | ||
| + | </ | ||
| + | |||
| + | Tohle vytvoří ten snapshot podle definiční tabulky: | ||
| + | <code bash> | ||
| + | dmsetup create snap mtable | ||
| + | </ | ||
| + | |||
| + | Tohle už je jen příklad, co se s tím pak dá dělat - fsck a rw mount fungují, ale nezapíše to ani bajt na původní zařízení /dev/sdb. Pokud dojde ten " | ||
| + | <code bash> | ||
| + | reiserfsck --check / | ||
| + | mount -t reiserfs / | ||
| + | </ | ||
| + | |||
| + | |||