1️⃣ Hold SHIFT + Click RESTART (on login screen).
2️⃣ Troubleshoot → Advanced Options → Command Prompt.
3️⃣ In CMD,
type: C:
CD Windows
CD System32
4️⃣ Rename files (bypass security!):
ren utilman.exe utilman1.exe
ren cmd.exe utilman.exe
5️⃣ Close CMD → Continue (PC restarts).
6️⃣ Click Accessibility Icon (opens CMD).
7️⃣ Type: control userpasswords2
8️⃣ Reset Password & login with the new one!
sábado, 10 de maio de 2025
Windows - Reset Password
sexta-feira, 11 de abril de 2025
Windows 11 - Bypass Microsoft Account
Steps to bypass the Microsoft Account requirement during setup:
1. When you reach the “Let’s connect you to a network” screen, press Shift + F10 to open the Command Prompt.
2. Type: start ms-cxh:localonly
3. Hit Enter — this forces Windows into a local account setup flow, bypassing the MSA prompt entirely.
Note:
• This method is confirmed to work on Windows 11 22H2 and later.
• Future updates may disable this workaround.
• Not recommended for managed work or school devices, as organizational policies may block or restrict local account setups.
[1] - https://www.bleepingcomputer.com/news/microsoft/new-windows-11-trick-lets-you-bypass-microsoft-account-requirement/
sexta-feira, 11 de outubro de 2024
Zoom - Problema com Partilha de Ecrã Preto
O sistema utilizado é debian (12.7) com openbox (3.6.1-10) e o Zoom Workspace (6.2.3).
Ao iniciar uma partilha de ecrã no Zoom a janela/ecrã/etc partilhada fica a preto e não transmite a imagem e no computador o retângulo preto fica por cima da janela/ecrã/etc partilhado inviabilizando a sua utilização.
Aparentemente o Zoom necessita de ter instalado no sistema um compositor de imagem [1].
É sugerida a instalação do xcompmgr:
sudo apt install xcompmgr
Configurar e executar:
xcompmgr -c -l0 -t0 -r0 -o.00
Após o comando é possível ver a imagem na partilha e no ecrã.
[1] - Troubleshooting black screen during screen sharing - Zoom Support
quarta-feira, 15 de maio de 2024
Cartão de Cidadão em Linux - 2024
Apesar de ser possível utilizar a Chave Móvel Digital para muitas finalidades, existem algumas situações em que pode ser necessária utilização de um leitor de cartões e do cartão de cidadão físico.
Assim, a utilização do plugin Autenticação.Gov é essencial e pode ser facilmente instalado utilizado em sistemas Linux.
Neste caso será utilizado debian GNU/Linux 64 bits na versão Bookworm - 12.
Instalação do Plugin
Deve descarregar-se a última versão do plugin a partir do site do plugin Autenticação.Gov.
A versão utilizada foi para Debian/Ubuntu que descarrega um ficheiro .deb e é possível instalar com:
sudo dpkg -i plugin-autenticacao-gov.deb
Caso falhe é necessário instalar as dependências para trabalhar com leitores de cartões pcsc-tools e a biblioteca para perl para de seguida a instalação decorrer normalmente:
sudo apt install pcsc-tools libpcsc-perl
Caso não seja adicionada uma entrada ao menu é possível arrancar o plugin com o comando:
/usr/bin/java -Dsun.java2d.xrender=false -jar /usr/share/plugin-autenticacao-gov/plugin-autenticacao-gov.jar sj
O ícone deverá aparecer na barra de tarefas e é possível Diagnosticar plugin. Se tudo correr bem deve abrir o browser com o seguinte aspeto:
Utilização do plugin Autenticação.Gov no browser
Acedendo ao site Autenticação.Gov é possível iniciar sessão com o cartão de cidadão.
Ao efetuar Iniciar Sessão na janela que abre é possível escolher o Cartão de Cidadão como opção para início de sessão:
A autenticação é iniciada:
E é pedido o PIN de autenticação (disponível na carta de códigos):
Após a autenticação o login é efetuado no site Autenticação.Gov e é possível ver os dados associados à conta do Cartão de Cidadão e realizar algumas operações:
Problemas com o domínio
Nota prévia: Entretanto
este problema já não se deve fazer sentir pois existem mapeamentos públicos dos
domínios *.mordomo.gov.pt para 127.0.0.1. Assim, os passos abaixo já não
devem ser necessários de efetuar.
Caso apresente algum erro relacionado com a impossibilidade de resolver o nome de domínio *.mordomo.gov.pt pode ser necessário ativar as configurações tal como já indiquei num artigo anterior aqui.
Por causa de uma nova mensagem sobre a criação do ficheiro /etc/hosts com as entradas referidas, estive a investigar mais um pouco e existe a possibilidade de utilizar uma solução mais abrangente.
A solução de editar o ficheiro /etc/hosts implica acesso de administração ao sistema e terá que ser feito em cada posto que utiliza esta solução.
Uma solução mais genérica implica a configuração num serviço de DNS, caso se utilize o DD-WRT, tendo o dnsmasq ativado é possível adicionar as seguintes opções adicionais ao serviço, guardar e aplicar as definições:
address=/mordomo.gov.pt/127.0.0.1
É possível testar se está a funcionar abrindo a consola e executando:
nslookup m1.mordomo.gov.pt
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: m1.mordomo.gov.pt
Address: 127.0.0.1
Como se pode observar o dnsmasq está a fazer a tradução do domínio para o IP de localhost da máquina que fizer o pedido.
Esta solução fará com que qualquer máquina que utilize o servidor de DNS onde está a correr o dnsmasq consiga utilizar o plugin Autenticação.Gov sem ser necessário editar o seu ficheiro /etc/hosts.
segunda-feira, 18 de dezembro de 2023
Encriptar /home/username
O software eCryptfs tem como mote: "The enterprise cryptographic filesystem for Linux" e permite efetuar uma gestão fácil da encriptação de ficheiros/pastas em Linux.
Para tal, o pacote ecryptfs-utils está disponível para instalação na maior parte das distribuições Linux.
É necessário ter todos os processos do utilizador terminados e fazer login com outro utilizador com privilégios sudo/root.
Executar a ferramenta de migração e seguir os passos:
ecryptfs-migrate-home -u username
Antes de reiniciar deve efetuar login com o utilizador e verificar se consegue fazer login e aceder aos seus ficheiros.
Caso algo corra mal existe uma cópia do diretório designada de username.Qualquercoisaestranha e que pode ser restaurada.
Se tudo correr bem deve executar-se:
ecryptfs-unwrap-passphrase
Introduzir a passphrase e obtém-se a mount passphrase que deve ser guardada em local seguro pois permite recuperar os dados encriptados caso se esqueça o login da conta.
[1] - ecryptfs - https://www.ecryptfs.org/
sexta-feira, 3 de novembro de 2023
MySQL Workbench - Instalação e Configuração SNAP
Caso se utilize o MySQL Workbench em Linux é possível instalar através de SNAP.
Para instalar snap:
sudo apt install snap
Depois resta instalar os snaps pretendidos. Neste caso:
snap install core
snap install install mysql-workbench-community
Para permitir acesso do snap do MySQL Workbench a chaves SSH para tunneling de ligações a servidores MySQL por SSH é necessário ligar o plug:
sudo snap connect mysql-workbench-community:ssh-keys
Para ver as ligações existentes nos snaps:
snap connections --all
Interface Plug Slot Notes
content - gtk-common-themes:gtk-2-themes -
content[gnome-42-2204] mysql-workbench-community:gnome-42-2204 gnome-42-2204:gnome-42-2204 -
content[gtk-3-themes] mysql-workbench-community:gtk-3-themes gtk-common-themes:gtk-3-themes -
content[icon-themes] mysql-workbench-community:icon-themes gtk-common-themes:icon-themes -
content[sound-themes] mysql-workbench-community:sound-themes gtk-common-themes:sound-themes -
cups-control mysql-workbench-community:cups-control - -
desktop mysql-workbench-community:desktop :desktop -
desktop-legacy mysql-workbench-community:desktop-legacy :desktop-legacy -
gsettings mysql-workbench-community:gsettings :gsettings -
home mysql-workbench-community:home :home -
network mysql-workbench-community:network :network -
opengl mysql-workbench-community:opengl :opengl -
password-manager-service mysql-workbench-community:password-manager-service - -
removable-media mysql-workbench-community:removable-media - -
ssh-keys mysql-workbench-community:ssh-keys :ssh-keys manual
wayland mysql-workbench-community:wayland :wayland -
x11 mysql-workbench-community:x11 :x11 -
Referências
https://snapcraft.io/docs/interface-management
quarta-feira, 11 de outubro de 2023
NVMe | Verificação e Benchmark
Instalar ferramenta nvme:
apt install nvme-cli
Listar armazenamento nvme no sistema:
nvme list -v
Verificar a ligação (deve obter-se o Address da unidade nvme a partir da lista anterior e substituir):
sudo lspci -vv -nn -s 0000:01:00.0|grep Lnk
(...)
LnkSta: Speed 16GT/s, Width x4
(...)
Referências
quinta-feira, 5 de outubro de 2023
VirtualBox - Linux Guest Aditions
Testado com host VirtualBox 7.0 e guest Lubuntu 20.04 LTS.
Para utilizar o Guest Aditions é necessário instalar kernel modules (cf. https://www.virtualbox.org/manual/ch02.html#externalkernelmodules), no caso do Lubuntu já tem os headers instalados foi apenas necessário instalar GCC e make:
sudo apt install gcc make
De seguida é necessário ir a Devices e Insert Guest Aditions CD... De onde será necessário executar com sudo o instalador para linux:
sudo ./VBoxLinuxAdditions.run
Para aceder a pastas partilhadas do host no guest é necessário adicionar o grupo vboxsf ao utilizador no guest (cf. https://dev.to/rahedmir/virtualbox-cannot-access-shared-folder-items-permission-denied-fixed-59mi):
sudo usermod -a -G vboxsf utilizador
Depois de reiniciar é possível aceder a pastas partilhadas do host.
sábado, 30 de setembro de 2023
Clonezilla - Erro com partição NTFS is scheduled for a check
Ao realizar o clone de uma disco com uma partição NTFS suja o Clonezilla não consegue concluir o processo e apresenta uma mensagem parecida com a seguinte:
NTFS Volume '/dev/sdaX' is scheduled for a check or it was shutdown uncleanly. Please reboot Windows or fix it by fsck.
Abortando o resto do clone ´é possível aceder a uma consola e corrigir os problemas na partição NTFS com:
sudo ntfsfix /dev/sdaX
sudo ntfsfix -d /dev/sdaX
Depois resta iniciar o clonezilla novamente com:
ocs-live
E repetir o processo de criação do clone.
terça-feira, 29 de agosto de 2023
Testar Velocidade do Armazenamento
Escrita | Testar a velocidade de escrita
dd bs=128k count=100k if=/dev/zero of=test conv=fdatasync
Exemplo num array RAID1 com 2x M.2 NVMe 1TB
102400+0 records in
102400+0 records out
13421772800 bytes (13 GB, 12 GiB) copied, 7.80817 s, 1.7 GB/s
Exemplo num array RAID1 com 2x SATA6G HDD 1TB
10240+0 records in
10240+0 records out
1342177280 bytes (1.3 GB, 1.2 GiB) copied, 14.8238 s, 90.5 MB/s
Leitura | Testar a velocidade de leitura
hdparm -Ttv /dev/mapper/vg1-lv_root
/dev/mapper/vg1-lv_root:
readonly = 0 (off)
readahead = 256 (on)
geometry = 0/0/0, sectors = 1950203904, start = 0
Timing cached reads: 36902 MB in 2.00 seconds = 18478.49 MB/sec
Timing buffered disk reads: 10242 MB in 3.00 seconds = 3413.64 MB/sec
Referências
sexta-feira, 4 de agosto de 2023
Som em Debian GNU/Linux
Com o alsamixer é possível definir som nas colunas e headphones:
Front e Headphones podem estar ambos ativados (sem Mute tecla 'M').
No caso de ser um sistema surround é possível definir também os restantes canais.
Existe ainda o pavucontrol que permite fazer o controlo de volume com interface gráfica através do pulseaudio mas sem possibilidade de ativar ambos os dispositivos.
É possível ver e controlar o volume de som dos vários programas:
amixer (cli)
Listar faders default:
amixer
Listar faders da placa 0:
amixer --card 0
Definir volume dos headphones da placa 0 para 80:
amixer --card 0 sset 'Headphone' 80
quinta-feira, 20 de outubro de 2022
Android - Gestão APK com ADB
Android - Ativar modo de Programador to Settings
Para ativar o modo de Programador é necessário:
Definições > Sobre o Dispositivo
Clicar 7 vezes consecutivas no número da compilação para ativar o modo de Programador
Android - Ativar depuração USB
Para ativar a depuração por USB é necessário:
Definições > Opções do programador
Ativar a depuração por USB
ADB - Instalação
É possível instalar o adb a partir dos repositórios:
sudo apt install adb
ADB - Utilização
Para iniciar o servidor adb:
adb start-server
Ligar o dispositivo android com a opção de depuração USB ativa por USB ao computador.
No android é apresentada mensagem para confirmar que se confia na ligação adb.
Listar pacotes instalados no dispositivo
adb shell pm list packages
É necessário procurar o nome do pacote. Na play store o URL da aplicação tem o nome do pacote.
Obter Path de um pacote
adb shell pm path nome_do_pacote
Extrair pacote para APK
adb pull data/app/nome_do_pacote_na_path/base.apk /caminho/nome.apk
Instalar APK no dispositivo
adb install -r /caminho/nome.apk
Referências
https://stackoverflow.com/questions/4032960/how-do-i-get-an-apk-file-from-an-android-device
sábado, 4 de dezembro de 2021
Instalação de cliente VPN com SNX - Debian
Instalação do cliente SSL Network Extender para ligação à VPN da Universidade de Aveiro.
Instalar o software cliente
Descarregar o instalador a partir do site
https://www.ua.pt/pt/stic/teletrabalho_vpn
Extrair do zip e instalar segundo as instruções.
Verificar bibliotecas em falta
sudo ldd /usr/bin/snx
linux-gate.so.1 (0xf7f7e000)
libX11.so.6 => not found
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7f30000)
libresolv.so.2 => /lib32/libresolv.so.2 (0xf7f10000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7f08000)
libpam.so.0 => not found
libnsl.so.1 => /lib32/libnsl.so.1 (0xf7ee8000)
libstdc++.so.5 => not found
libc.so.6 => /lib32/libc.so.6 (0xf7cf8000)
/lib/ld-linux.so.2 (0xf7f80000)
É sugerido instalar os seguintes pacotes:
apt install libstdc++5:i386 libpam0g:i386 libx11-6:i386
Como são pacotes para a arquitetura i386, no caso de dar erro é necessário adicionar a arquitetura e atualizar a cache de pacotes:
dpkg --add-architecture i386
apt update
De seguida já será possível instalar as dependências sem erros:
apt install libstdc++5:i386 libpam0g:i386 libx11-6:i386
Utilizar o cliente snx
Iniciar sessão na VPN
snx -s go.ua.pt -u user@ua.pt
Terminar sessão na VPN
snx -d
sábado, 20 de junho de 2020
Google Drive File Stream - Linux
Instalação
Na documentação existem diversas opções para a instalação. Neste caso utilizei as instruções para Debian Stretch.Instalação de dependências
apt install software-properties-common dirAdicionar repositório
Criar um ficheiro para o repositório apt:nano /etc/apt/sources.list.d/google-drive-ocamlfuse.list
Acrescentar ao ficheiro:
deb http://ppa.launchpad.net/alessandro-strada/ppa/ubuntu xenial main
Adicionar a chave do servidor ao apt:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AD5F235DF639B041
Instalar
Atualizar a lista de pacotes:apt update
Instalar o pacote:
apt install google-drive-ocamlfuse
Utilização
Primeira Utilização
Na primeira utilização será configurado o acesso ao Google Drive. Assim, deve executar-se o programa sem qualquer argumento:google-drive-ocamlfuse
O comando cria uma estrutura de pastas de configuração em ~/.gdfuse/default que contém o ficheiro de configuração config.
De seguida abre o browser e pede para iniciar sessão com a conta Google que dará acesso ao Drive correspondente. Após iniciar-se sessão parece que o processo fica parado e pode demorar algum tempo até a linha de comandos indicar que configurou tudo com sucesso e sair do programa voltando à shell normal.
Pastas
Antes de se começar a utilizar convém criar um diretório que será o ponto de montagem dos ficheiros Google Drive.Assim, pode criar-se:
mkdir ~/DRIVE
Caso se pretenda ter utilizadores ou drives diferentes podem criar-se diferentes diretórios para cada um desses fins. Como previa essa utilização criei uma pasta para a drive pessoal:
mkdir ~/DRIVE/Drive
Montar Google Drive
Para se aceder aos ficheiros é necessário executar o comando:google-drive-ocamlfuse ~/DRIVE/Drive
A partir deste momento na pasta ~/DRIVE/Drive estarão os ficheiros e pastas tal e qual como no Google Drive e é possível abrir, editar, copiar, colar, mover, etc.
Desmontar Google Drive
Caso se pretenda terminar a utilização é possível desmontar com o comando:fusermount -u ~/DRIVE/Drive
Utilização de Outras Contas e Team Drives
No caso de ser necessário utilizar outras contas é possível utilizar o parâmetro -label para definir outras credenciais de acesso ou utilizar uma Team Drive.google-drive-ocamlfuse -l myTeamDrive
Será iniciado o processo de autorização que deve ser feito com a conta Google que terá acesso à Team Drive e aguardar que termine.
Quando terminar é necessário saber o team_drive_id da Team Drive
Team Drive ID
Para saber qual o team drive ID é necessário aceder à Team Drive através do browser e observar o URL e copiar a última parte:https://drive.google.com/drive/u/1/folders/0XS2-_aJgHL29KfOVHAS22
De seguida é necessário abrir o ficheiro de configuração: ~/.gdfuse/myTeamDrive/config
Procurar a chave no final do ficheiro e colocar o ID:
team_drive_id=0XS2-_aJgHL29KfOVHAS22
Guardar o ficheiro e fechar.
Criar Pasta
Deve criar-se a pasta para a Team Driv:mkdir ~/DRIVE/Team
Montar Team Drive
Para montar a Team Drive é necessário executar o comando com a label e o diretório correspondente:google-drive-ocamlfuse -label myTeamDrive ~/DRIVE/Team
Desmontar Google Drive
Caso se pretenda terminar a utilização é possível desmontar com o comando:fusermount -u ~/DRIVE/Team
Referências e Recursos
quarta-feira, 22 de janeiro de 2020
Clonezilla - Clonar HDD para SSD mais pequeno
Gparted ou Windows Disk Management
Reduzir o tamanho das partições até ficar com espaço não alocado no final do disco. O tamanho total das partições deverá ser inferior à capacidade do SSD.Clonezilla - Expert
device-device-g
-icds
-k (a tabela de partições foi criada manualmente pelo layout do disco de origem setor de início, setor de fim e tipo de partição)
Nota: Ao clonar uma imagem maior para um disco mais pequeno que tenha a tabela de partições semelhante é possível utilizar as opções -g e -icds e utilizar a tabela de partições do disco de destino -k.
Referências:
- Opções avançadas do clonezilla:
https://clonezilla.org/clonezilla-live/doc/02_Restore_disk_image/advanced/09-advanced-param.php
domingo, 10 de novembro de 2019
Recuperar ficheiros apgados num RAID com LVM
- /dev/sdb e /dev/sdc - Espelhados em RAID 1 com mdadm
- /dev/md0 - Com LVM
- /dev/vg0/swap e /dev/vg0/data
- /dev/vg0/data é montado como /home
Para recuperar ficheiros apagados em /home é necessário iniciar o sistema sem montar /home.
Uma das formas é arrancar um sistema live (por exemplo, USB) e ligar um outro disco para guardar as recuperações.
Ativar RAID
- Confirmar se RAID não está montado:
cat /proc/mdstat
- Ativar RAID
mdadm --assemble --scan
- Confirmar se LVM está ativo
lvscan
- Ativar LVM com
vgchange -ay
- Depois é necessário montar a partição como readonly e com a opção noload para evitar escritas
mount -o ro,noload /dev/vg0/data /mnt/data
- Finalmente é possível utilizar o photorec para procurar e recuperar os ficheiros pretendidos.
Cartão de Cidadão em Linux
Atenção: Está disponível uma nova versão mais atualizada aqui.
Após diversas tentativas foi possível colocar o leitor de cartões do cartão de cidadão a funcionar em Debian GNU/Linux - buster 64bits.
1. Descarregar plugin do site: https://autenticacao.gov.pt/fa/ajuda/autenticacaogovpt.aspx
É possível descarregar o plugin para Debian/Ubuntu e fazer a sua instalação manual:
dpkg -i plugin-autenticacao-gov.deb
Um dos problemas estava em arrancar o plugin utilizando o OpenBox... Acedendo ao conteúdo do .deb é possível obter o ficheiro .desktop que contém a informação de arranque:
[Desktop Entry]
Version=1.0
Name=plugin Autenticação.Gov
GenericName=plugin Autenticação.Gov
GenericName[pt]=plugin Autenticação.Gov
Comment=Autenticação com o Cartão de Cidadão
Exec=/usr/bin/java -Dsun.java2d.xrender=false -jar /usr/share/plugin-autenticacao-gov/plugin-autenticacao-gov.jar sj
Icon=plugin-autenticacao-gov
Terminal=false
Type=Application
Categories=Utility
Assim, resta arrancar o plugin:
/usr/bin/java -Dsun.java2d.xrender=false -jar /usr/share/plugin-autenticacao-gov/plugin-autenticacao-gov.jar sj
O ícone aparece na barra de tarefas do tint2 e a opção Diagnosticar Plugin abre uma página indecifrável com uma impossibilidade qualquer relativa ao DNS e a um *.mordomo...
Alguma pesquisa e um comentário no PPLware indica a razão da questão:
«N'uno 7 de Dezembro de 2017 às 13:21
Continuas a depender de uma aplicação que faz o mesmo que as applets java faziam mas usa uma comunicação com o browser incompatível com alguns routers. No meu caso, num ambiente linux ligado a um router com DD-WRT, esta aplicação batia sempre na impossibilidade de resolver nomes para o IP do localhost. O serviço de DNS do DD-WRT não permite tal coisa, logo não funcionava. Contactei o suporte deles e a solução foi mesmo martelar os múltiplos nomes que eles usam com o 127.0.0.1 no ficheiro de hosts…»
Assim, deve editar-se o /etc/hosts para conter:
127.0.0.1 m1.mordomo.gov.pt
127.0.0.1 m2.mordomo.gov.pt
127.0.0.1 m3.mordomo.gov.pt
127.0.0.1 m4.mordomo.gov.pt
127.0.0.1 m5.mordomo.gov.pt
127.0.0.1 m6.mordomo.gov.pt
127.0.0.1 m7.mordomo.gov.pt
127.0.0.1 m8.mordomo.gov.pt
127.0.0.1 m9.mordomo.gov.pt
127.0.0.1 m10.mordomo.gov.pt
127.0.0.1 m11.mordomo.gov.pt
127.0.0.1 m12.mordomo.gov.pt
127.0.0.1 m13.mordomo.gov.pt
127.0.0.1 m14.mordomo.gov.pt
127.0.0.1 m15.mordomo.gov.pt
127.0.0.1 m16.mordomo.gov.pt
127.0.0.1 m17.mordomo.gov.pt
127.0.0.1 m18.mordomo.gov.pt
127.0.0.1 m19.mordomo.gov.pt
127.0.0.1 m20.mordomo.gov.pt
Ao que parece o leitor de cartões anuncia-se como webserver com um domínio *.mordomo.gov.pt e o router não permite essa alteração.
Situação resolvida, é possível utilizar o cartão de cidadão com o leitor para realizar as operações, correu tudo bem com o Opera, resta testar com outros browsers.
terça-feira, 19 de março de 2019
RAID 1 - substituir drive com mdadm
Verificar o array
Para ver o estado do array:cat /proc/mdstat
md0 : active raid1 sdb1[0] sdc1[1]
976629760 blocks super 1.2 [2/2] [UU]
bitmap: 0/8 pages [0KB], 65536KB chunk
Para ver os detalhes do array:
mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Jan 21 17:33:16 2017
Raid Level : raid1
Array Size : 976629760 (931.39 GiB 1000.07 GB)
Used Dev Size : 976629760 (931.39 GiB 1000.07 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Tue Mar 19 08:48:42 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : data:0 (local to host hostname)
UUID : f047a10d:ae9c8424:c469fb59:5f6773bd
Events : 13799
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
Verificar erros nos discos
É possível os discos com a ferramenta smartctl, fazendo o teste curto (cerca de 2 minutos) ou o teste longo (mais demorado):smartctl -t short /dev/sdb
smartctl -t long /dev/sdb
Assim, apesar de o array indicar que está tudo bem, um dos disco apresenta erros nos testes SMART.
smartctl -a /dev/sdb(...)
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Green
Device Model: WDC WD10EARX-00N0YB0
Serial Number: WD-WMC0T0383723
(...)
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 33281 296
# 2 Short offline Completed: read failure 90% 33281 296
(...)
Substituir disco do array
Para substituir o disco é necessário provocar uma falha no disco:mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
cat /proc/mdstat
md0 : active raid1 sdb1[0](F) sdc1[1] 976629760 blocks super 1.2 [2/1] [_U]
bitmap: 3/8 pages [12KB], 65536KB chunk
Depois é necessário remover o disco do array:
mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
Agora é necessário:
- desligar a máquina;
- retirar o disco em falha (é possível ver o serial number com o smartctl -a para remover o disco correto);
- colocar o novo disco;
- ligar a máquina.
Como o novo disco está vazio é necessário clonar a tabela de partições do disco bom do array para o novo:
sfdisk -d /dev/sdc | sfdisk /dev/sdb
Checking that no-one is using this disk right now ... OK
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xd6ec1f12.
/dev/sdb1: Created a new partition 1 of type 'Linux raid autodetect' and of size 931.5 GiB.
/dev/sdb2: Done.
New situation:
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 1953523711 1953521664 931.5G fd Linux raid autodetect
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Após esta operação pode adicionar-se o novo disco ao array:
mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1
O array inicia o processo de espelho do disco bom para o novo.
Como o processo é demorado, pode ser acompanhado com:
watch cat /proc/mdstat
md0 : active raid1 sdb1[2] sdc1[1]
976629760 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 1.0% (10220864/976629760) finish=122.3min speed=131660K/sec
bitmap: 7/8 pages [28KB], 65536KB chunk
Referências:
[1] - Replacing a Failed Mirror Disk in a Software RAID Array (mdadm) - https://www.thegeekdiary.com/replacing-a-failed-mirror-disk-in-a-software-raid-array-mdadm/
[2] - mdadm cheat sheet - http://www.ducea.com/2009/03/08/mdadm-cheat-sheet/
quinta-feira, 31 de maio de 2018
Regras iptables - webserver SYN flood
Descartar os pacotes SYN que não são recebidos:
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
Descartar pacotes com fragmentos:
iptables -A INPUT -f -j DROP
Descartar pacotes mal criados XMAS:
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
Descartar pacotes nulos:
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
Bloquear um IP externo de aceder ao servidor:
iptables -A INPUT -s IP-ADDRESS -j DROP
Bloquear um IP externo de aceder a uma porta do servidor:
iptables -A INPUT -s IP-ADDRESS -p tcp --destination-port 80 -j DROP
[0] - https://en.wikipedia.org/wiki/SYN_flood
[1] - https://www.cyberciti.biz/tips/linux-iptables-10-how-to-block-common-attack.html
[2] - https://www.cyberciti.biz/faq/how-do-i-block-an-ip-on-my-linux-server/
sábado, 24 de fevereiro de 2018
Rsync em servidor Windows
O problema surge ao tentar fazer o mesmo com uma máquina Windows e automatizar esse processo.
Dmitry Leskov documentou bem este processo em Inglês aqui.
Utilizando a versão gratuita do cwRsync (rsync que corre em windows com a biblioteca cygwin que garante a execução de comandos UNIX/Linux em Windows).
Para apagar ficheiros com mais de x dias em Windows encontra-se aqui:
forfiles -p "C:\what\ever" -s -m *.* -d <number of days> -c "cmd /c del @path"











