Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.
Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.
ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.
Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.
Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.
Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.
Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.
50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.
Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.
Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].
Linearni cteni z toho v bode (a) dela: Timing buffered disk reads: 306 MB in 3.01 seconds = 101.62 MB/sec Timing buffered disk reads: 314 MB in 3.02 seconds = 103.93 MB/sec Timing buffered disk reads: 318 MB in 3.01 seconds = 105.54 MB/sec Linearni cteni z toho v bode (b) dela: Timing buffered disk reads: 330 MB in 3.02 seconds = 109.39 MB/sec Timing buffered disk reads: 298 MB in 3.00 seconds = 99.32 MB/sec Timing buffered disk reads: 332 MB in 3.01 seconds = 110.35 MB/secTakze to v podstate staci vyizit 1 klienta na gigabitu. Vic lidi paralelne by to uz asi nezvladalo tak pekne. RAID 10 v degradovanym rezimu to umi jen 63MB/sec RAID 5 v degradovanym rezimu umi mezi 44 az 55MB/sec podle zateze na desktopu to klesa az pod 20MB/sec a jeste ze jsem se podival :) ... jak se to pred mesicem upeklo, tak jeden disk prestal reagovat na a vytuhl system a bylo to degradovany :)
fdisk -l /dev/sda Disk /dev/sda: 251.0 GB, 251000193024 bytes 255 heads, 63 sectors/track, 30515 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda2 * 1 19 151199+ fd Linux raid autodetect Partition 2 does not end on cylinder boundary. /dev/sda3 1294 30516 234729936 8e Linux LVM Partition 3 does not end on cylinder boundary. md1 : active raid1 sdd2[3] sdc2[2] sdb2[1] sda2[0] 151104 blocks [4/4] [UUUU] mount /dev/mapper/r5-stable on / type reiserfs (rw) /dev/md1 on /boot type ext3 (rw) /dev/mapper/r10-var on /var type reiserfs (rw) /dev/mapper/r5-data on /data type reiserfs (rw) /dev/mapper/r6-home on /home6 type reiserfs (rw) /dev/mapper/r10-home on /home type reiserfs (rw) Jinak zbytek systemu: cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty] md10 : active raid10 dm-10[3] dm-1[0] dm-7[2] dm-4[1] 31457152 blocks 64K chunks 2 near-copies [4/4] [UUUU] md6 : active raid6 dm-0[0] dm-9[3] dm-6[2] dm-3[1] 20971392 blocks level 6, 64k chunk, algorithm 2 [4/4] [UUUU] md5 : active raid5 dm-11[4] dm-2[0] dm-8[2] dm-5[1] 597688128 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_] [====>................] recovery = 21.0% (41840592/199229376) finish=50.8min speed=51553K/sec md1 : active raid1 sdd2[3] sdc2[2] sdb2[1] sda2[0] 151104 blocks [4/4] [UUUU] unused devices: /opt/initrd/sbin/lvm.static vgs VG #PV #LV #SN Attr VSize VFree a 1 3 0 wz--n 223.86G 8.86G b 1 3 0 wz--n 223.86G 8.86G c 1 3 0 wz--n 223.86G 8.86G d 1 3 0 wz--n 223.86G 8.86G r10 1 3 0 wz--n 30.00G 2.00G r5 1 2 0 wz--n 570.00G 16.00G r6 1 1 0 wz--n 20.00G 0 to jen pro mapovani cisel dm-# na vg-lv ls -l -1 /dev/mapper/* | sed -e 's/[[:space:]]\+/ /g' | cut -d " " -f 6,9 | sort -n 0 /dev/mapper/a-raid6 1 /dev/mapper/a-raid10 2 /dev/mapper/a-raid5 3 /dev/mapper/b-raid6 4 /dev/mapper/b-raid10 5 /dev/mapper/b-raid5 6 /dev/mapper/c-raid6 7 /dev/mapper/c-raid10 8 /dev/mapper/c-raid5 9 /dev/mapper/d-raid6 10 /dev/mapper/d-raid10 11 /dev/mapper/d-raid5 12 /dev/mapper/r5-data 13 /dev/mapper/r5-stable 14 /dev/mapper/r6-home 15 /dev/mapper/r10-swap 16 /dev/mapper/r10-var 17 /dev/mapper/r10-homejinak na disku je rezerva pro uplne novy druh partition. vsechny 4 disky vypadaji stejne. kazdej disk je resenej samostatne, aby se dal jednotlive vyhodit bez velkyho stvani. proto je kazda LVM partition ve vlstani VG . Nad VG jsou delany LV raidX tak aby se dal delat enlargement podle potreb. Dany LV raidX pouzivam v mdX o levelu X. No a kdybych nahodou chtel neco jako limit pro adresar bez kvot, ruzny FS nebo mount optiony, tak v kazdym raidu je opet LVM s VG rX.
ramdisk: find | grep -ve '\.\/dev' . ./etc ./etc/lvm ./lib ./lib/libdevmapper.a.1.01 ./lib/libdevmapper.so.1.01 ./lib/libdevmapper.so ./lib/libdevmapper.a ./man ./man/man5 ./man/man5/lvm.conf.5 ./man/man8 ./man/man8/lvreduce.8 ./man/man8/vgexport.8 ./man/man8/vgextend.8 ./man/man8/vgrename.8 ./man/man8/vgremove.8 ./man/man8/lvextend.8 ./man/man8/lvrename.8 ./man/man8/lvremove.8 ./man/man8/lvm.8 ./man/man8/lvs.8 ./man/man8/pvs.8 ./man/man8/vgs.8 ./man/man8/vgmerge.8 ./man/man8/vgsplit.8 ./man/man8/lvresize.8 ./man/man8/pvremove.8 ./man/man8/vgdisplay.8 ./man/man8/vgchange.8 ./man/man8/vgcfgrestore.8 ./man/man8/dmsetup.8 ./man/man8/pvmove.8 ./man/man8/lvchange.8 ./man/man8/pvscan.8 ./man/man8/pvchange.8 ./man/man8/lvmdiskscan.8 ./man/man8/lvmchange.8 ./man/man8/vgconvert.8 ./man/man8/pvdisplay.8 ./man/man8/vgck.8 ./man/man8/vgmknodes.8 ./man/man8/lvdisplay.8 ./man/man8/vgcreate.8 ./man/man8/vgimport.8 ./man/man8/vgscan.8 ./man/man8/vgcfgbackup.8 ./man/man8/lvcreate.8 ./man/man8/pvcreate.8 ./man/man8/lvscan.8 ./man/man8/vgreduce.8 ./sys ./var ./var/lock ./var/lock/lvm ./usr ./usr/share ./usr/share/man ./usr/share/man/man4 ./usr/share/man/man4/md.4 ./usr/share/man/man5 ./usr/share/man/man5/mdadm.conf.5 ./usr/share/man/man8 ./usr/share/man/man8/mdadm.8 ./busy ./proc ./sbin ./sbin/lvm ./sbin/lvs ./sbin/pvs ./sbin/vgs ./sbin/vgck ./sbin/lvm.static ./sbin/lvconvert ./sbin/mdadm ./sbin/dmsetup ./sbin/lvdisplay ./sbin/pvchange ./sbin/pvcreate ./sbin/vgmknodes ./sbin/pvremove ./sbin/pvresize ./sbin/lvmchange ./sbin/lvmsadc ./sbin/vgcfgrestore ./sbin/lvmdiskscan ./sbin/pvdisplay ./sbin/lvmsar ./sbin/lvscan ./sbin/vgchange ./sbin/vgcreate ./sbin/pvmove ./sbin/pvscan ./sbin/vgexport ./sbin/vgextend ./sbin/vgimport ./sbin/vgscan ./sbin/vgmerge ./sbin/vgsplit ./sbin/lvchange ./sbin/lvcreate ./sbin/lvextend ./sbin/dmsetup.static ./sbin/vgreduce ./sbin/vgrename ./sbin/vgremove ./sbin/vgconvert ./sbin/vgcfgbackup ./sbin/lvreduce ./sbin/lvrename ./sbin/lvremove ./sbin/lvresize ./sbin/vgdisplay ./sbin/busybox ./linuxrc ./include ./include/libdevmapper.h ./lost+found start skript #!/sbin/busybox sh PATH=/sbin alias lvm=lvm.static mount -t sysfs none /sys mount -t proc none /proc lvm pvscan lvm vgscan lvm lvscan lvm lvchange -a y a lvm lvchange -a y b lvm lvchange -a y c lvm lvchange -a y d mdadm --assemble /dev/md5 /dev/a/raid5 /dev/b/raid5 /dev/c/raid5 /dev/d/raid5 mdadm --assemble /dev/md6 /dev/a/raid6 /dev/b/raid6 /dev/c/raid6 /dev/d/raid6 mdadm --assemble /dev/md10 /dev/a/raid10 /dev/b/raid10 /dev/c/raid10 /dev/d/raid10 mdadm --assemble /dev/md10 /dev/a/raid10 /dev/b/raid10 /dev/d/raid10 lvm pvscan lvm vgscan lvm lvscan lvm lvchange -a y r5 lvm lvchange -a y r6 lvm lvchange -a y r10 #echo 64522 > /proc/sys/kernel/real-root-dev real-root-dev /dev/mapper/r5-stable umount /sys umount /procreal-root-dev je taky trivka. vraci jen device cislo z lstatu struct_fs - jen pro jistotu, aby to bootovalo i kdyz nahodou nekdo zmeni jadro a zmeni se cislo zarizeni. akorat kdyz disk uplne chcipne neob se vytahne, tak se nedostane pres: mdadm --assemble /dev/md5 /dev/a/raid5 /dev/b/raid5 /dev/c/raid5 /dev/d/raid5 mdadm --assemble /dev/md6 /dev/a/raid6 /dev/b/raid6 /dev/c/raid6 /dev/d/raid6 mdadm --assemble /dev/md10 /dev/a/raid10 /dev/b/raid10 /dev/c/raid10 /dev/d/raid10 mdadm --assemble /dev/md10 /dev/a/raid10 /dev/b/raid10 /dev/d/raid10 mdadm v te verzi co mam rve, ze mu chybi zarizeni... mozna by stalo za to provist upgrade a checknout jak jsou na tom. pro cistku, aby system po nabehnuti odpovidal tomu co se delo v ramdisku...
rcS.d# cat S05moje_lvm #!/bin/sh echo "LVM hack pre-init tmpfs mounts and config" mount -nt tmpfs -o size=5m none /etc/lvm; mount -nt tmpfs -o size=1m none /var/lock/lvm; cp /etc_cust/lvm/lvm.conf /etc/lvm/ echo "LVM hack rescanning LVs"; /opt/initrd/sbin/lvm.static lvscan; echo "LVM hack recreating device mapper block device nodes"; /opt/initrd/sbin/lvm.static vgmknodes; echo "LVM hack post cleanup tmpfs unmounts" umount -n /etc/lvm umount -n /var/lock/lvm echo "LVM hack finished";
cat real-root-dev.c #define _GNU_SOURCE #include stdio.h #include stdlib.h #include sys/types.h #include sys/stat.h #include unistd.h #include errno.h #include fcntl.h extern int errno; int main(int argc, char **argv) { int r=-1,d=-1; FILE *p=NULL; struct stat st; char *strp=NULL; /* arg check */ if (argc !=2) { fprintf(stderr, "Need just one block device\n"); exit(1); } /* prevent argument moving during/after checks */ d= open(argv[1],O_RDONLY); if (-1==d) { perror("opening parameter"); exit(1); } else if (0>d) { fprintf(stderr,"Opened parameter with invalid ret\n"); close(d); exit(1); } /* get the locked argument's properties */ r= fstat(d, &st); if (0==r) { } else if (-1== r) { perror("fstating parameter"); close(d); exit(1); } else { fprintf(stderr, "Stated parametr with invalid ret\n"); perror("fstating parameter"); close(d); exit(1); } /* inspect the properties */ if (! (S_ISBLK(st.st_mode))) { fprintf(stderr, "Parameter is not block device\n"); close(d); exit(1); } close(d); /* get the proc file */ p= fopen("/proc/sys/kernel/real-root-dev", "w"); if (NULL==p) { perror("opening proc"); exit(1); } /* write it */ d= fprintf(p,"%d", st.st_rdev); fclose(p); /* memorize it */ r= asprintf( &strp, "%d", st.st_rdev); /* compare the result !!! */ if ((-1 == r) || (-1 == d) || (r != d)) { fprintf(stderr, "Trying to sleep for 2 minutes before shit happens\n"); fprintf(stderr, "It's up to you to push the button and reboot into rescue\n"); usleep(120000000); fprintf(stderr, "Woke up and going to see the shit.\n"); fprintf(stderr, "...hope you have the interactive rescue on my error\n"); exit(1); } exit(0); }
Je to asi marné, ale zkusím to ještě jednou: Ten dotaz je skoro dva a půl roku starý. Opravdu myslíte, že tazatel čekal s realizací toho pole přes dva roky, než mu odpovíte?
Tiskni Sdílej: