Každý robíme nejakú nudnú činnosť. Či už to je umývanie riadov, nakladanie alebo vykladanie riadov do umývačky alebo v mojom prípade písanie protokolov do školy na predmet Elektrotechnické merania. Ale zatiaľ čo umývanie riadov vám umelá inteligencia (logicky) nemôže robiť, tak písanie protokolov už áno. Dnes sa pozrieme na Claude Cowork, funkciu Claude Desktop, ktorá automatizuje nudné veci, a ktorá vám vie nahradiť s pomocou MCP serverov (model context protocol = funkcia pre cloudové a pre lokálne hostované modely, ktorá prepája služby v reálnom svete s jazvykovým modelom) prehliadač. Inštalácia Poznámka: Na to, aby ste mohli využívať Cowork, tak si musíte predplatiť minimálne predplatné Claude Pro, ktorý stojí podľa môjho výpisu z účtu 18 eur a 54 centov. Claude Desktop je dostupný pre Windows, macOS a neoficiálne pre Linux. Pre Windows a macOS choďte na ich stránku (pre Linux choďte sem ), stiahnite a nainštalujte si Claude Desktop. Prihláste sa do Claude a máte ho...
Podľa mojich štatistík, ktoré si pozerám, tak mojou druhou najväčšou skupinou su tí, ktorí sú na nejakej linuxovej distribúcií (mne sa to tam zobrazuje iba ako ,,Linux˝). Prečo som práve toto napísal? Lebo práve táto skupina ľudí nepriamo štartuje svoj systém cez niečo, čo sa volá initramfs. Poďme sa to pozrieť na to, čo to je a ako to využiť v náš prospech.
Čo to je?
V skratke je initramfs pico-operačný systém, ktorý je skomprimovaný cez program, ktorý sa volá cpio, a ktorý sa pri spustení systému rozbalí do operačnej pamäte. Je to starý, ale spoľahlivý spôsob, ako skomprimovať súbory a používa sa od nepamäti. Väčšinou sa komprimuje do formátu, ktorý sa volá Gzip.
Initramfs sa využíva na rôzne veci. Či už na resetovanie hesla, pripojenia obskúrne nastaveného média (napríklad 40 diskov, ktoré sú v MergerFS zväzku (MergerFS = súborový systém, ktorý slúži na vytvorenie jedného superdisku z viacero menších diskov) zašifrované cez LUKS + polovica diskov má iný súborový systém), alebo v našom prípade na reset/obnovu/aktualizáciu operačného systému.
Ako to funguje?
Najskôr sa z operačného systému nastavia potrebné parametre (v našom prípade sú to názov obrazu, server, odkiaľ sa ten obraz bude sťahovať bez názvu obrazu, SHA256 kontrolný súčet, cieľový disk na reset/obnovu/aktualizáciu a či chcemé preformátovať disk), ktoré sa dávajú v prípade GRUBu dávajú ako Bashu-podobná funkcia typu menuentry za cestu k linuxovému jadru, kde druhý riadok slúži na špecifikáciu cesty ku initramfs cez keyword initrd.
Keď sme ten súbor uložili, tak stačí reštartovať počítač a reset/obnova/aktualizácia sa začne. Akonáhle sa tento proces dokončí, tak sa zvyšné miesto rozdelí medzi zavádzajúcou partíciou a a partíciou, kde má používateľ priečinok.
A nakoniec program, ktorý toto spravil, reštartuje systém.
Existuje toto vôbec?
Áno, existuje. Ja som to nazval recenv, čo je skratka pre Recovery Environment. Ale na to, aby sa dalo toto ,,zneužité˝ initramfs prostredie použiť, tak potrebujeme disk s troma partíciami a internetové pripojenie cez kábel (taktiež známe ako Ethernet).
Funguje to následovne:
- Keď linuxové jadro uvidí program/skript (nezáleží, hlavne aby bol označený predtým, že ho môže spustiť každý cez príkaz chmod +x), ktorý sa volá init, tak ho spustí.
- Tento program/skript pripojí devtmpfs, procfs a sysfs (špeciálne súborové systémy, ktoré mal ešte prvý Unix) na /dev, /proc a na /sys.
- V normálnom prípade by zavolal switch_root a cezeň by spustil reálny init, ale keďže jadru je jedno, čo spúšťa (hlavne nech sa to volá init a je to spustiteľné), tak tento program/skript zavolá program, ktorý obnoví/aktualizuje/zresetuje disk podľa parametrov, ktoré jadro uloží v /proc/cmdline.
Záver
Initramfs je jedna z najlepších vecí, čo existuje na linuxovom systéme. Pokiaľ viem, tak ani BSD systémy, ani MacOS (a Windows už vôbec, ale aj tak to nie je Unixu podobný operačný systém) nemajú toto tu, čo sa tu dá urobiť.
Ak sa vám tento článok páčil, tak ho neváhajte zdieľať svojej rodine, priateľom, jednoducho každému.
Ahoj Matúš, super blogy! Veľmi dobre spracované! Určite budem čítať daľej! Ak budeš mať čas napíš mi do DM ako sa ti darí… Filip D.
OdpovedaťOdstrániť