
E minhas aventuras com LVM continuam. Um dos HDDs começou a chiar. Mas chiar mesmo, fazendo barulho de marteladas e resets. Olhando nos logs eu vi que já tinha dado o que tinha que dar. E justamente o HDD que fazia parte do mirroring em que estão os jogos da steam.
Então procedi com o comando pra terminar a montagem em mirroring.
lvconvert -m 0 diskspace/steam /dev/sdb3
Infelizmente eu dei um reboot em seguida e não salvei nada pra poder postar aqui. Mas o mais importante foi depois de removido HDD e instalado um novo (também de 2 TB) que tinha parado aqui. Como eu esqueci de remover o /dev/sdb3 do LVM, claro que subiu com vários erros. Particionei o novo HDD (/dev/sdb) com uma só partição LVM. E fui adicionar quando...
root@goosfraba ~# pvcreate /dev/sdb1
WARNING: Couldn't find device with uuid CvlXC4-LiEI-mr0c-vSky-oryk-Khrl-J1dyBa.
WARNING: VG diskspace is missing PV CvlXC4-LiEI-mr0c-vSky-oryk-Khrl-J1dyBa (last written to /dev/sdb3).
Physical volume "/dev/sdb1" successfully created.
Epa! Que catzo de CvlXC4-não-sei-lá-o-que é esse? Sim, o disco que removi fisicamente e não tirei logicamente do LVM. Com "vgdisplay" pude ver que realmente o problema estava lá.
root@goosfraba ~# vgdisplay
WARNING: Couldn't find device with uuid CvlXC4-LiEI-mr0c-vSky-oryk-Khrl-J1dyBa.
WARNING: VG diskspace is missing PV CvlXC4-LiEI-mr0c-vSky-oryk-Khrl-J1dyBa (last written to /dev/sdb3).
--- Volume group ---
VG Name diskspace
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 230
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 9
Open LV 2
Max PV 0
Cur PV 2
Act PV 1
VG Size 5.45 TiB
PE Size 4.00 MiB
Total PE 1429493
Alloc PE / Size 518912 /
Resolver não foi nada complicado. Bastou o seguinte comando:
root@goosfraba ~# vgreduce --removemissing diskspace
WARNING: Couldn't find device with uuid CvlXC4-LiEI-mr0c-vSky-oryk-Khrl-J1dyBa.
WARNING: VG diskspace is missing PV CvlXC4-LiEI-mr0c-vSky-oryk-Khrl-J1dyBa (last written to /dev/sdb3).
WARNING: Couldn't find device with uuid CvlXC4-LiEI-mr0c-vSky-oryk-Khrl-J1dyBa.
Wrote out consistent volume group diskspace.
Pronto! Metadados do disco antigo removidos.
root@goosfraba ~# vgdisplay
--- Volume group ---
VG Name diskspace
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 231
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 9
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size
Agora o trabalho seguinte foi adicionar o espaço novo dentro do VG (diskspace é o nome):
root@goosfraba ~# vgextend diskspace /dev/sdb1
Volume group "diskspace" successfully extended
root@goosfraba ~# vgdisplay
--- Volume group ---
VG Name diskspace
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 232
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 9
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size
Em seguida colocar o disco novo como mirroring novamente:
root@goosfraba ~# lvconvert -m 1 /dev/diskspace/steam /dev/sdb1
Are you sure you want to convert linear LV diskspace/steam to raid1 with 2 images enhancing resilience? [y/n]: y
Logical volume diskspace/steam successfully converted.
E pronto. Acabou. Isso mesmo. Foi fácil assim. Agora é só ir monitorando o progresso da cópia no disco novo.
root@goosfraba ~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home diskspace -wi-a----- 500.00g
opt diskspace -wi-a----- 2.00g
root diskspace -wi-ao---- 10.00g
steam diskspace rwi-a-r--- 750.00g 0.88
swap diskspace -wi-a----- 15.00g
tmp diskspace -wi-a----- 5.00g
usr diskspace -wi-ao---- 95.00g
usrlocal diskspace -wi-a----- 600.00g
var diskspace -wi-a----- 50.00g
root@goosfraba ~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home diskspace -wi-a----- 500.00g
opt diskspace -wi-a----- 2.00g
root diskspace -wi-ao---- 10.00g
steam diskspace rwi-a-r--- 750.00g 1.10
swap diskspace -wi-a----- 15.00g
tmp diskspace -wi-a----- 5.00g
usr diskspace -wi-ao---- 95.00g
usrlocal diskspace -wi-a----- 600.00g
var diskspace -wi-a----- 50.00g
Como são 750 GB a coisa demora um pouco. Mas com LVM, tudo é muito fácil.
Happy hacking :)

Essa dúvida surgiu no grupo de Ubuntu do Telegram (https://t.me/ulboficial) e ao invés de responder lá eu preferi escrever um artigo sobre isso.

O método que uso, principalmente em laptops novos, é basicamente o mesmo desde... acho que aprendi a fazer isso por volta dos anos 2000. Era um capítulo do venerado livro "Unix Power Tools", a bíblia dos scripts pra sysadmins.
Eu primeiramente insiro o HD novo e particiono. Não vou usar o exemplo de LVM, que é mais simples, mas o mais cabeludo que é quando se cria todas as partições que vai usar. Então digamos que eu adicione um novo HD que aparecerá para mim como /dev/sdb (pra facilitar). Supondo que o particionamento seja o seguinte:
O passo seguinte, após formatar as partições no formato desejado (eu geralmente uso XFS), é montar essas partições em um local onde possa copiar os dados. Eu normalmente uso o /mnt pra essa finalidade.
root@goosfraba ~# mount /dev/sdb5 /mnt
root@goosfraba ~# mount /dev/sdb1 /mnt/boot
root@goosfraba ~# mount /dev/sdb6 /mnt/home
Uma vez com tudo montado é fazer cópia de um lado pro outro evitando copiar o /mnt, que já está em uso com o disco novo, e diretórios como /proc, /dev ou /sys, que são criados durante o boot. E pra isso eu uso o comando tar.
root@goosfraba ~# tar cvf - --exclude=./proc --exclude=./sys --exclude=./dev --exclude=./mnt -C / . | tar xf -C /mnt
Com isso o disco já está todo pronto em /mnt. Resta corrigir o boot. Pra isso eu uso chroot pra acessar o disco novo a partir de /mnt e montando tanto /proc quanto /dev pro grub localizar o disco corretamente.
root@goosfraba ~# mkdir /mnt/{proc, dev}
root@goosfraba ~# mount --bind /proc /mnt/proc
root@goosfraba ~# mount --bind /dev /mnt/dev
root@goosfraba ~# chroot /mnt
root@chroot ~$ grub-install /dev/sdb
Assumindo que vá remover o primeiro disco, /dev/sda, e sdb será o novo sda, nada mais é preciso. Agora caso vá ficar com sdb como disco principal, então é preciso modificar as entradas do /etc/fstab pra conter os dados corretos do novo disco.
Ao terminar e antes de rebootar, tenha com você o disco de instalação em mãos pra utilizar o modo de recuperação em caso de algum problema (e não precisar ficar colocando o disco antigo).

Não sei já descrevi isso aqui ao longo desses 20 anos de blog/site, mas a maioria das coisas que publico são pra mim mesmo. Como tenho certeza que não vou lembrar o que fiz daqui algum tempo (provavelmente dias), eu deixo aqui registrado como bloco de notas pra referência. E, claro, espero que isso também ajude mais pessoas além de mim.
Como moro fora do Brasil já faz algum tempo, e ainda não domino a língua (na verdade só apanho dela), eu preciso de tempos em tempos pegar documentos e ler. A forma que encontrei é passar o documento em um scanner, se for papel, mas ter a certeza de ter o documento digitalizado em formato PDF no final. Esse foi o formato que mais facilitou o uso de outro software pra OCR (Optical Character Recognition), ou reconhecimento ótico de caracter.
Também percebi que o melhor é ter o documento separado em vários PDFs se possível, um pra cada página. Isso facilita pro software de OCR de reconhecer cada página corretamente.
Pra usar como exemplo aqui vou adotar um documento sobre o imposto de renda sueco. Ele está disponível na página do que seria equivalente à receita federa: https://www.skatteverket.se
O documento será esse aqui: https://www.skatteverket.se/download/18.7eada0316ed67d7282aedd/1582550479006/dags-att-deklarera-skv325-utgava41.pdf
Pra começar, apenas baixar o documento usando o curl:
curl -o report.pdf https://www.skatteverket.se/download/18.7eada0316ed67d7282aedd/1582550479006/dags-att-deklarera-skv325-utgava41.pdf
Em seguida serão necessários os seguintes pacotes de software (assumindo um sistema ubuntu ou debian): curl, ghostscript, imagemagick, tesseract-ocr e tesseract-<língua>. Como no caso eu pego os documentos em sueco, uso então tesseract-swe.
sudo apt install curl ghostscript imagemagic tesseract-ocr tesseract-swe
O arquivo então será baixado e salvo como "report.pdf". Ao abrir o documento eu vejo quantas páginas são, o que poderia ser feito de alguma outra forma mais automática, mas a visualização assim é fácil até pra detectar logo se tem alguma página pra pular com imagens. Esse documento tem 8 páginas.
Então pra separar o arquivo em PDF baixado em páginas separadas, que depois vai facilitar o trabalho de tradução, eu uso o seguinte comando:
for i in $(seq 1 8)
do
gs -sDEVICE=pdfwrite -q -dNOPAUSE -dBATCH -sOutputFile=report-$i.pdf -dFirstPage=$i -dLastPage=$i report.pdf
done
Com as páginas criadas separadamente em formato PDF e com os nomes como report-1.pdf, report-2.pdf, report-3.pdf, etc e o próximo passo é converter cada uma no formato TIFF, que é o formato onde o reconhecimento de caracteres funciona melhor. O programa "convert" que faz isso é parte do pacote imagemagick
for i in $(seq 1 8)
do
convert report-$i.pdf report-$i.tiff
done
Isso gera então as sequências report-1.tiff, report-2.tiff, etc.
Agora finalmente o passo final pra ter os textos em plain text.
for i in (seq 1 8)
do
tesseract report-$i.tiff report-$i -l swe
done
E isso cria os documentos com extensão "txt". Esse documento que escolhi não foi muito feliz na detecção de caracteres. O arquivo que mais foi reproduzido de forma satisfatória foi a página 7:
helio@xps13ubuntu:exemplo$ cat report-7.txt
Har du skatt att betala på din
preliminära skatteuträkning?
Tabellen på sidan 6 visar när skatten senast ska vara
betald. Fram till dess kan du göra delbetalningar.
Du kan när som helst betala in pengar till ditt
skattekonto. Du kan betala antingen med Swish
BIS
Om duvill betala med Swish loggar du in på Mina
sidor och följer instruktionerna där, Du kan också
enkelt betala din kvarskatt med Swish i samband
med att du deklarerar med edegitimation i
tjänsten. Du kan betala skatt med maximalt
15.000 kronor per dygn med Swish.
Om du betalar genom att göra en inbetalning till
BARR Sr ehe
angeditt OCR-nummer som du hittar i din preli-
PST RR NAS TT NT
www.skatteverketse/ocr.
Läs mer på wwwskotteverket.se/betalokvarskatt.
O passo seguinte é copiar essas páginas e colocar no google translator. Eu não automatizo esse passo e uso o simple copy&paste no browser.
E esse seria o resultado do trecho acima:
Você tem imposto a pagar sobre o seu
cálculo preliminar do imposto?
A tabela na página 6 mostra quando o imposto deve durar
pago. Até então, você pode parcelar.
Você pode depositar dinheiro no seu a qualquer momento
conta fiscal. Você pode pagar com Swish
BIS
Se você quiser pagar com Swish, faça login no Mina
páginas e siga as instruções lá, você também pode
pague facilmente seu imposto residual com o Swish em conjunto
com isso você declara com edegitimação em
o serviço. Você pode pagar impostos com um máximo
SEK 15.000 por dia com Swish.
Se você pagar fazendo outro pagamento
BARR Sr ehe
número OCR especificado que você encontra na sua
PST RR NAS TT NT
www.skatteverketse / ocr.
Leia mais em wwwskotteverket.se/betalokvarskatt.

Esses dias precisei fazer uma migração de uma mediawiki que usamos na empresa de uma máquina que rodava CentOS 6.8 pra um Ubuntu 18.04.
Para garantir seu funcionamento, primeiro eu queria testar os upgrades necessários em minha máquina. Nada melhor que copiar os arquivos e rodar a versão exata do site remoto com containers em docker.
Mas ao rodar o container... ele simplesmente saia com código de erro 139. Mais nada. Sem logs, sem describe, sem nada que pudesse ajudar.
~ > docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8ffcdf12d761 centos:6.8 "bash" 52 minutes ago Up 52 minutes 0.0.0.0:8080->80/tcp elated_ganguly 7bd9374248fd centos:6.8 "bash" 56 minutes ago Exited (139) 56 minutes ago dreamy_fermat 80ff07e9b84e centos:6.8 "bash" 10 hours ago Exited (139) 10 hours ago romantic_hertz 3db1d6c1f68b centos:6 "bash" 10 hours ago Exited (139) 10 hours ago bold_kilby
Olhando pela Internet, descobri em alguns sites pessoas relatando o mesmo problema. É algo relacionado com a versão da glibc do container com a versão do kernel que estou rodando, que é muito mais novo:
~ > uname -a Linux elxa7r5lmh2 5.9.0-rc5-helio #10 SMP Sat Sep 19 12:04:57 CEST 2020 x86_64 x86_64 x86_64 OSI/Linux
A solução é adicionar um parâmetro a mais no grub a opção "vsyscall=emulate":
~ > grep GRUB_CMDLINE_LINUX /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 pcie_aspm=off pci=nomsi vsyscall=emulate"
e fazer um update no próprio grub.
~ > sudo update-grub2 && sudo reboot -f
Após um reboot os containers funcionaram sem problemas.
~ > docker run -it --rm=true centos:6.8 bash [root@224aecaba978 /]# hostname 224aecaba978 [root@224aecaba978 /]# exit exit ~ > docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ca68add255bd ubuntu:18.04 "bash" 2 hours ago Exited (1) 2 hours ago festive_galois ~ >
Eu tentei configurar diretamente no kernel através da interface em /sys, mas eu só consegui com isso gerar um kernel panic. O jeito mais fácil e seguro foi mesmo rebootando meu laptop.

Esses dias eu dei uma boa arrumada na minha estante e encontrei um laptop que estava parado desde 2014. Quando liguei, estava ainda com o Ubuntu 14.04 instalado e rodando. Pensei no mesmo momento que seria perfeito pra verificar o estado da proteção que as distros ditas livres e que são baseadas no GNU Linux Libre possuem.
Eu entrei na página da FSF eu fui seguindo as distros recomendadas como 100% livres. Peguei pra testar as seguintes: Trisquel, Parabola e Guix. Eu ia tentar também a Gnewsense mas a página principal mostra que depois de anos parada seu desenvolvimento foi simplesmente abandonado. Mas ainda está listada na página da FSF.
(Foto By Rafael Bonifaz - Alexandre Oliva, CC BY-SA 2.0,https://commons.wikimedia.org/w/index.php?curid=8939097)
Pra ter alguma comparação eu também testei Debian puro, sem nada a parte de firmwares, e também um Ubuntu. Vou descrever cada um em separado.
Esse morreu na praia pra mim. Como essas distribuições não usam firmwares, não consigo ativar o wifi do laptop. O Guix exige que a instalação siga por rede pra terminar. Eu deixei o laptop numa mesa longe da rede cabeada. Entre mexer o laptop pra minha mesa ou puxar um cabo até o outro quarto eu preferi simplesmente deixar de lado. Tentei procurar por um livecd ou algo do gênero mas não encontrei.
O Trisquel teve a instalação relativamente tranquila. Uma voz robotizada ficava falando tudo o que eu teclava mas deu tudo certo. Como esperado não funcionou com o wifi mas teve o touchpad do laptop funcionado desde a instalação.

uname:
Linux triquel 4.4.0-119-generic #143+8.0trisquel2 SMP Thu Apr 5 16:24:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
cpuinfo:
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i7-4600M CPU @ 2.90GHz stepping : 3 microcode : 0x16 cpu MHz : 2222.578 cache size : 4096 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_ perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movb e popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb invpcid_single retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 e rms invpcid rtm xsaveopt dtherm ida arat pln pts bugs : cpu_meltdown spectre_v1 spectre_v2 bogomips : 5786.73 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management:
vulnerabilidades:
/sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI /sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: OSB (observable speculation barrier, Intel v6) /sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Full generic retpoline

uname:
Linux parabolaiso 5.1.6-gnu-1 #1 SMP PREEMPT Sat Jun 1 21:40:45 UTC 2019 x86_64 GNU/Linux
cpuinfo:
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i7-4600M CPU @ 2.90GHz stepping : 3 microcode : 0x16 cpu MHz : 1069.269 cache size : 4096 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_ perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe p opcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm xsaveopt dtherm ida arat pln pts bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds bogomips : 5788.69 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management:
vulnerabilidades:
/sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable /sys/devices/system/cpu/vulnerabilities/mds:Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable /sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI /sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable /sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: __user pointer sanitization /sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Full generic retpoline, STIBP: disabled, RSB filling

uname:
Linux debian 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29) x86_64 GNU/Linux
cpuinfo:
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i7-4600M CPU @ 2.90GHz stepping : 3 microcode : 0x16 cpu MHz : 1903.637 cache size : 4096 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_ perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe p opcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm xsaveopt dtherm ida arat pln pts bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit bogomips : 5786.32 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management:
vulnerabilidades:
/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Mitigation: Split huge pages /sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable /sys/devices/system/cpu/vulnerabilities/mds:Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable /sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI /sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable /sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: usercopy/swapgs barriers and __user pointer sanitization /sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Full generic retpoline, STIBP: disabled, RSB filling /sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable

uname:
Linux ubuntu 4.15.0-29-generic #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
cpuinfo:
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i7-4600M CPU @ 2.90GHz stepping : 3 microcode : 0x16 cpu MHz : 2047.970 cache size : 4096 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_ perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe p opcnt aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm xsaveop t dtherm ida arat pln pts bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass bogomips : 5786.49 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management:
vulnerabilidades:
/sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI /sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable /sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: __user pointer sanitization /sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Full generic retpoline
A comparação é difícil porque cada um dos sistemas operacionais roda com uma versão de kernel diferente. Todas baseadas em Linux.
Todas mostram em cpuinfo que detectam as falhas de spectre_v[1,2] e meltdown, além das demais.
Como mostrado pelas distros com kernels mais recentes, várias vulnerabilidades estão ainda abertas. O sistema continua vulnerável aos ataques de especulação mas não aos spectre v1 e v2, nem meltdown. Realmente sobre essas duas vulnerabilidades o Oliva está certo. Só errou que o restante continua vulnerável e inseguro sem as correções de firmware.
Não imagino que possam ser corrigidas em versões mais recentes pois precisam do firmware da Intel pra mudar o microcode direto na CPU.
Quem continuar utilizando algumas dessas distros é interessante ficar de olho qual bug de CPU foi corrigido e qual ainda está pendente. E ter cuidado ao usar o computador, pois o mesmo continua vulnerável a ataques de especulação mesmo rodando somente software livre.