Dle plánu certifikační autorita Let's Encrypt nově vydává také certifikáty s šestidenní platností (160 hodin) s možností vystavit je na IP adresu.
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 14.0 (Mastodon). Forgejo je fork Gitei.
Just the Browser je projekt, 'který vám pomůže v internetovém prohlížeči deaktivovat funkce umělé inteligence, telemetrii, sponzorovaný obsah, integraci produktů a další nepříjemnosti' (repozitář na GitHubu). Využívá k tomu skrytá nastavení ve webových prohlížečích, určená původně pro firmy a organizace ('enterprise policies'). Pod linuxem je skriptem pro automatickou úpravu nastavení prozatím podporován pouze prohlížeč Firefox.
Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.
Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.
Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny
… více »D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.
CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.
Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.
Pokud bychom chtěli provádět migraci v rámci bitové kopie, tzn., číst data od začátku do konce disku, přesně tak, jak jdou za sebou a ve stejném pořadí je zapisovat i na nový disk, tak si můžeme ušetřit několik problémů, jelikož všechno toto nemusíme dělat:
K tomuto se používá několik druhů řešení, zmiňme tři:
# ddrescue, který se dokáže převalit přes vadné sektory nebo navazovat přerušenou migraci: ddrescue -f -n /dev/sda /dev/sdb log.txt # klasické dd: dd if=/dev/sda of=/dev/sdb # ne moc ideální cat: cat /dev/sda > /dev/sdb
Všechny tyto věci se udělají „sami“ (vše se zkopíruje). Ovšem má to i několik nevýhod:
Naproti tomu, ruční migrace, tzn., rozdělení disku, formátování, kopírování vybraných dat, dotváření adresářové struktury, instalace zavaděče apod. je sice složitější, ale myslím si, že i mnohem výhodnější.
Konzistence dat je celkem problém. Jde nám o to, aby když provádíme migraci živého systému, jsme měli data z určitého času. Představme si, že kopírujeme několik TiB dat z běžícího systému. V takovém případě nemůžou být kopírovaná data nikdy konzistentní, jelikož zkopírování těch dat nějakou dobu trvá (třeba několik hodin) a mezitím se hodně věcí změní, takže soubory, které kopírujeme na začátku budou starší než soubory, jež kopírujeme ke konci a rozdíl může být i několik zmíněných hodin a náš nový systém nebude úplně v pořádku.
Nejideálnější způsob migrace je takový, kdy je systém vypnutý a migraci na jinou stanici/disk provádíme z jiného než migrovaného systému (třeba z Live CD). V takovém případě nemusíme hlídat nějakou konzistenci dat. Prostě PC vypneme, nabootujeme ze záchraného CD a data zkopírujeme na jiný disk.
Člověk je ale tvor lenivý
a u pracovní stanice nebo malého serveru není důvod, proč neprovést migraci přímo za běhu. V takovém případě je vhodné stopnout nějaké služby, u kterých nám záleží na konzistenci dat. Takže třeba mailserver, webserver, databázový server apod. Grafické prostředí není třeba vypínat a při migraci si klidně můžete pouštět svou oblíbenou sbírku skladeb, dívat se na film, nebo na novinky na Internetu. Jen je potřeba si dávat pozor, abychom neupravovali nějaká důležitá data.
Jelikož nemigrujeme jen tak z nudy a chceme třeba přerozdělit disk, vyzkoušet jiný souborový systém nebo nasadit LVM, tak budeme provádět ruční migraci v rámci běžícího systému (chci se při migraci dívat na film a ne koukat na čáru života kopírovaných dat).
Zmigrovat běžící systém je celkem hračka. Řekněme, že jsme si do našeho počítače přidali disk (/dev/sdb) a systém migrujeme na něj.
Nejdříve si nový disk vhodně rozdělíme a naformátujeme na – pro nás vhodný – souborový systém. Já si dost často vystačím s jednoduchým programem cfdisk:
cfdisk /dev/sdb
Osobně doporučuji pro desktop rozdělit disk minimálně na 3 oddíly: „/", “/home" a swap. Taktéž nezapomenout na možnost zarovnání: Optimalizace práce s SSD disky v Linuxu. Následně informujeme systém, aby si všiml nových změn (pokud tak již neučinil). K takovému účelu dobře postačuje program partprobe z balíku „parted“:
partprobe /dev/sdb
Partition naformátujeme (každý svým nej souborovým systémem) a nezapomeneme na swap:
mkreiserfs /dev/sdb1 mkreiserfs /dev/sdb2 mkswap /dev/sdb3
Nyní si připojíme oddíl do /mnt, abychom měli kam kopírovat data:
mkdir /mnt/newsys mount /dev/sdb1 /mnt/newsys mkdir /mnt/newsys/home mount /dev/sdb2 /mnt/newsys/home
Po zastavení služeb, u kterých nechceme, aby nám míchaly data, se pustíme do kopírování všeho, co nám přijde do cesty:
cp -av /bin/ /boot/ /dev/ /etc/ /home/ /lib/ /opt/ /root/ /sbin/ /srv/ /usr/ /var/ /mnt/newsys # vytvoříme symlink "lib64 -> lib" cd /mnt/newsys ln -s lib lib64
Tady bych upozornil na jednu věc, v debianu squeeze je /lib64 hardlink na /lib a v případě, že bychom vše kopírovali najednou, tak dostaneme hlášku:
cp: pevný odkaz „/mnt/newsys/lib64“ na adresář „/mnt/newsys/lib“ nebude vytvořen
Hardlink na adresářích je nepodporovaná záležitost, nechápu tedy, kde se to v debianu vzalo. Známý má vytvořeny klasicky symlinky na všech debianech stejné verze. Já zkoušel čistou instalaci pomocí netinstall a vytvořil se mi hardlink. To, zda se jedná o hardlink lze zjistit např. pomocí utility „stat“:
root@debian:# stat /lib/ File: „/lib/“ Size: 12288 Blocks: 24 IO Block: 4096 adresář Device: 801h/2049d Inode: 40721 Links: 11 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2012-05-02 21:49:39.000000000 +0200 Modify: 2012-02-25 21:45:58.000000000 +0100 Change: 2012-02-25 21:45:58.000000000 +0100 root@debian:# stat /lib64/ File: „/lib64/“ Size: 12288 Blocks: 24 IO Block: 4096 adresář Device: 801h/2049d Inode: 40721 Links: 11 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2012-05-02 21:49:39.000000000 +0200 Modify: 2012-02-25 21:45:58.000000000 +0100 Change: 2012-02-25 21:45:58.000000000 +0100
Takže, tuto lehkou odbočku si nechám na jindy (až bude více času nebo se podělte v diskusi, jak si na tom stojí váš Debian), nyní jdeme dál.
Nekopírujeme jen tyto adresáře:
"/mnt" – nebudeme kopírovat „sami sebe do sebe“, když tam máme připojen nový disk
"/media" – podobně jako s „/mnt“, můžeme tam mít připojené nějaké medium apod. a zbytečně kopírovat něco, co nepotřebujeme, ba naopak
"/sys" a „/proc“ – obsah a hierarchii si vytváří jádro a s obsahem v těchto adresářích není, pro neznalé, dobré nijak mainupulovat
"/tmp" – je zbytečné, né-li nežádoucí, kopírovat dočasná data, která se v tomto adresáři vytvářejí
Pokud jde o adresář „/dev“, tak ten se nemusí kopírovat celý, k funkčnosti nám postačí několik málo souborů a zbytek si dovygeneruje udev sám. Ale nemá to cenu řešit, jelikož zkopírování celého adresáře nevadí (udev si to už protřídí).
Co jsme nezkopírovali, musíme dohonit. Takže začneme dovytvářet potřebné adresáře:
mkdir /mnt/newsys/tmp chmod 1777 /mnt/newsys/tmp mkdir /mnt/newsys/sys mkdir /mnt/newsys/proc mkdir /mnt/newsys/mnt mkdir /mnt/newsys/media
Z minulého dílu víme, že je oddíly dobré připojovat pomocí LABEL nebo UUID. UUID se generuje automaticky, ale LABEL nikoli. Kdo používá LABEL, musí si nyní popsat unikátními názvy filesystémy na novém disku (vizte minulý díl). Námi vymyšlené a použité LABELy, nebo v mém případě UUID, přepíšeme v boot manageru (v našem případě grub1):
/mnt/newsys/boot/grub/menu.lst ... # (0) Debian GNU/Linux title Debian GNU/Linux root (hd0,0) kernel /boot/vmlinuz26 root=UUID=14640e9e-d1c3-0960-5b02-06071eecbc2b ro vga=795 initrd /boot/kernel26.img
a v konfiguračním souboru:
/mnt/newsys/etc/fstab # # <file system> <dir> <type> <options> <dump> <pass> devpts /dev/pts devpts defaults 0 0 shm /dev/shm tmpfs nodev,nosuid 0 0 UUID=14640e9e-d1c3-0960-5b02-06071eecbc2b / reiserfs defaults 0 1 UUID=b35303fe-6ece-491b-8661-ded90e2f0bf8 /home reiserfs defaults 0 0 UUID=ac7b118b-f394-46bb-8a1d-458ae32b9e38 swap swap defaults 0 0
Jelikož jsme v běžícím systému a používáme GRUB stejné verze, tak netřeba dělat chroot a můžeme jej rovnou zapsat na druhý disk:
root@debian:# grub
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> root (hd1,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd1) (hd1)1+17 p (hd1,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit
Nyní stačí vypnout PC, vyndat první disk a voilá, fungujeme z nového disku
.
Ne vždy je možné nebo nejjednodušší, připojit druhý disk do stejného počítače a provést migraci. Někdy třeba migrujeme i na jiný počítač. V takovém případě stačí na druhém počítači nabootovat nějaké Live CD (pokud migrujeme 64bit systém, tak nějaké 64bit Live CD kvůli pozdějšímu chrootu), na kterém lze spustit ssh. Poté si na vzdáleném PC provedeme úpravu a připojení partition dle bodů 1. a 2. Kopírování dat na takové PC bude vypadat následovně (kopírujeme z počítače, kde nám běží systém, nejsme tedy již přihlášeni přes ssh na systém livecd):
tar cvf - /bin/ /boot/ /dev/ /etc/ /home/ /lib/ /opt/ /root/ /sbin/ /srv/ /usr/ /var/ | ssh root@192.168.1.1 "cd /mnt/newdisk && tar xvf -"
Jedná se tedy o klasický „tar over ssh“. Poté se na vzdálený pc opět přihlásíme přes ssh, dovytvoříme adresářovou strukturu (dle bodu 4.), upravíme menu.lst a fstab (dle bodu 5.). Doposud je tedy vše stejné, jako v bodech, jež jsme si uvedli. Jediný rozdíl nastává u posledního bodu, kterým je instalace zavaděče do MBR. Jelikož Live CD obsahuje jiný systém, tak bude potřeba, abychom se chrootli do zkopírovaného systému a provedli instalaci zavaděče z něj. Chroot provedeme takto:
mount -o bind /dev/ /mnt/newsys/dev mount -o bind /proc/ /mnt/newsys/proc mount -o bind /sys/ /mnt/newsys/sys chroot /mnt/newsys/
Nebo takto:
mount -t proc none /mnt/newsys/proc/ mount -t sysfs none /mnt/newsys/sys/ mount -o bind /dev/ /mnt/newsys/dev chroot /mnt/newsys/
Dále zápis GRUBu (máme jeden disk, takže hd0,0):
root@debian:# grub
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit
To je vše, nyní by měl systém bez problémů nabootovat.
Jak lze vidět, ve finále to není nic zabijáckého. Šest drobných kroků a je zmigrováno. Některé věci si lze dokonce i ulehčit. Třeba bod 3. a 4. lze trochu zkrátit tak, že si root oddíl připojíme do nějakého jiného adresáře a odsud root oddíl zkopírujeme na nový disk, čímž by nám vypadl bod 4.
Pro migraci lze využít i sofistikované nástroje, jakými je "partimage", nebo Clonezilla. Nejvíce napřed je CloneZilla, ale ani ta nezvládá migraci disku z většího na menší (pouze na stejně velký nebo větší).
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Jde nám o to, aby když provádíme migraci živého systému, jsme měli data z určitého času.Teda musím říct, že tato věta mi vyrazila dech. Nejsem češtinář, ale pár hrubek tu přímo bije do očí:
cd source; tar -c ./ | (cd dest/; tar -xvf -; )Při migraci souborového systému jsem jednou použil i meziuložiště v podobě druhého disku. Operace pak vypadala následovně:
cd /data tar -c ./ > /dev/sdb umount /data; mknovyfs /dev/sdaX; mount /dev/sdaX data/; cd /data/ tar -xvf /dev/sdbKdyž jsem migroval data z datového úložiště, tak mi přišlo zbytečné, abych ukládal ohromný stream dat na souborový systém, když to není potřeba... Použít celý dosk bylo logické, navíc tím odpadla režie oprací FS vrstev...
+1 (teda, az na to, ze "xvf" se pise bez "-" a mas tam navic zbytecne jeden strednikcd source; tar -c ./ | (cd dest/; tar -xvf -; )
)
cd /dest; do_something bych vřele doporučoval použít cd /dest && do_something. Ono se to cd nemusí vždy podařit
.
U toho taru samozřejmě stačí tar c . | tar x -C dest/
.
Jinak právě na nových PC s SSD diskem může 8GB ukrojeného třeba z 64GB disku někomu vadit může. Nehledě na zbytečné zápisy navíc. Obzvláště, když za tisícovku může mít o 8GB RAM víc.
# box 0 tar -cf | netcat -l -p 12345 # box 1 netcat box0 12345 | tar -xf -
# box 0 dd if=/dev/md0 bs=1480 | netcat -l -p 12345 # box 1 netcat box0 12345 | dd of=/dev/md1
tar cvf - /bin/ /boot/ /dev/ /etc/ /home/ /lib/ /opt/ /root/ /sbin/ /srv/ /usr/ /var/ | ssh root@192.168.1.1 "cd /mnt/newdisk && tar xvf -"Taky jsem to tak dělal. Pak mi ve 2/3 kopírování 120GB disku spadnul net.
-p, --preserve-permissions, --same-permissions extract information about file permissions (default for superuser)Toto je asi ten důvod, proč se tím člověk nezabývá, je to prostě default a pod rootem to není třeba.
.