7. 2. 2021

Aktivace lokálního prostředí nodejs v PowerShellu

Příkaz npm init vytvoří soubor package.json s nastavením projektu. Příkaz npm install nainstaluje závislosti projektu do adresáře node_modules. Spustitelné programy jsou uloženy v adresáři node_modules\.bin. Bohužel přímé spouštění těchto programů s cestou (např. node_modules\.bin\sass) nefunguje správně. Je potřeba toto lokální prostředí „aktivovat“, tj. zařídit, aby se cesta node_modules\.bin dostala do systémové proměnné PATH. Jednou z možností, jak to zařídit, je příkaz PowerShellu:

$Env:Path += ";$(npm bin)"

Po jeho vykonání můžeme spouštět programy nainstalované pomocí npm install bez cesty a všechno funguje správně.

6. 2. 2021

Výměna HD za SSD

Jak převést obsah starého pomalého a odcházejícího disku na nový rychlý SSD tak, aby zůstala zachována instalace Windows a všech programů a licencí?

Z USB flash disku zavedeme a bez instalace spustíme Ubuntu Desktop, takže můžeme využívat plný sortiment linuxových nástrojů. Který z nich ale vybrat?

Můžeme kopírovat celé disky stejným způsobem, jako kopírujeme soubory (sudo /dev/sda /dev/sdb), ale při prvním čtení prvního vadného sektoru ze zdrojového disku příkaz selže a není možné ho donutit k pokračování. Nebo je možné použít příkaz blokového kopírování (sudo dd if=/dev/sda of=/dev/sdb), který umožňuje ignorovat vadné bloky, ale zase je otázkou, jakou nastavit velikost kopírovaných bloků. Příliš malá velikost (např. 512 B) povede k dlouhé době kopírování, příliš velká velikost povede k přeskakování takto velkých bloků i v případě, že je v nich vadný byť jen jediný sektor.

Naštěstí existuje příkaz ddrescue. Tento příkaz se nejprve pokusí kopírovat celý obsah pomocí velkých bloků. Pokud kopírování některého bloku selže, jeho pozice se zapamatuje, ale kopírování běží dál až do konce. V dalším kole dochází ke kopírování problematických bloků po menších a menších částech, až se nakonec kopírují jednotlivé sektory. Tímto způsobem je program schopen fungovat rychle a efektivně, ale zároveň nedojde ke zbytečným ztrátám dat.

Použitá varianta příkazu

ddrescue -f -r3 /dev/sda /dev/sdb mapfile

správně zkopírovala celý obsah HD na SSD až na jediný vadný sektor.