Para fins de teste ou administração, às vezes pode ser necessário redefinir o estado do disco do sistema para que ele não seja iniciado e os dados não sejam mais facilmente acessíveis, por exemplo, para testar procedimentos de instalação ou impedir que qualquer sistema operacional inicie e inicialize a partir de um mídia de instalação externa na próxima inicialização. Especialmente com PCs de consumo, é muito difícil interromper o processo normal de inicialização quando um sistema é instalado, porque não está claro qual tecla pressionar (vi ESC, F2, F8, F9, F10, F11, F12, Enter) , como (pressão curta ou longa) e a que horas. Alguns modelos semelhantes a tablets exigem até mesmo o pressionamento de uma combinação de teclas especiais, como liga / desliga ou volume. Além disso, os sistemas UEFI se comportam de maneira diferente dos sistemas não UEFI, aumentando a complexidade.
Uma maneira rápida de fazer isso seria simplesmente excluir a tabela de partições do sistema em execução.
No Linux, isso pode ser conseguido facilmente em poucos segundos com dois comandos:
sudo dd if=/dev/zero of=/dev/sda bs=512 count=32
sudo sync
Isso evita que sistemas UEFI e não UEFI sejam inicializados na próxima inicialização. Isso também torna o acesso aos dados no disco muito mais difícil e pode até causar perda de dados, esteja avisado.
Não conheço nenhum equivalente de dd em um sistema Windows padrão. A ferramenta de alto nível para particionamento no Windows não permite isso, por exemplo com o diskpart:
> select disk 0
> clean
Virtual Disk Service error:
Clean is not allowed on the disk containing the current boot, system, pagefile, crashdump or hibernation volume.
Então, existe uma maneira de "redefinir" o estado do disco do sistema em um sistema Windows em execução?
Obviamente, é fácil inicializar a partir de um disco diferente, mas isso leva muito mais tempo e pode ser impossível pelos motivos mencionados acima.
Os sistemas UEFI têm uma solução diferente para isso:
a variável “BootNext” que permite que um sistema operacional solicite a inicialização em um sistema operacional diferente – é isso que o Windows usa quando você Shift+reinicia e seleciona a opção “Escolha outro sistema operacional”; na maioria dos sistemas, haverá opções genéricas para "Mídia removível USB" etc.
ou o sinalizador "indicações do sistema operacional" que solicita a abertura da tela de configuração do firmware na próxima inicialização, que pode ser definida
shutdown /r /fw
no Windows ousystemctl reboot --firmware
no Linux.A operação realizada por
dd
é apenas uma gravação normal de arquivo, portanto pode ser replicada por qualquer programa que possa gravar em arquivos (incluindo aquele nomeadodd
para windows , ou o outro , ou o 'dd' do Cygwin).O que é realmente necessário é o equivalente a um arquivo de dispositivo como /dev/sda no Windows, e que existe em todas as versões do Windows NT (incluindo Win11, WinXP e assim por diante) – um programa pode abrir
\\.\PhysicalDrive0
e gravar bytes nele. (Este é um alias para\\?\Device\Harddisk0\DR0
, se eu entendi corretamente o relacionamento entre os dois namespaces.)Portanto, você pode baixar um dd para Windows e
dd if=garbage.txt of=\\.\PhysicalDrive0
, ou pode abrir o disco físico por meio de um editor hexadecimal e editá-lo manualmente.Mas você
dd of=/dev/sda bs=512 count=1
apenas sobrescreve o MBR, e a maioria dos sistemas não se importa mais com o MBR; eles leem partições da tabela de partição GPT que está após o MBR (34 setores no total, mais uma cópia de backup no final do disco) e carregam o código de inicialização de dentro de uma partição e não do MBR como no passado . Portanto, você precisa excluir um pouco mais e provavelmente é mais fácil usar uma ferramenta de particionamento como o sgdisk para essa finalidade.Versões recentes do Windows (10, 11) possuem camadas de proteção para evitar modificação direta dos discos ou partições usadas pelo sistema em execução. Os acessos diretos
\\.\PhysicalDrive0
falharão, assim como ferramentas de alto nível como o diskpart.Existem pelo menos duas ferramentas gratuitas de terceiros que permitirão isso.
HxD , um editor gráfico. Abra o disco relevante no modo de gravação (o padrão é somente leitura) e preencha os primeiros 65.536 bytes do disco com zeros.
Cygwin , uma coleção de ferramentas GNU e de código aberto do mundo Unix/Linux portadas para Windows. Cygwin mapeia os discos do Windows para dispositivos semelhantes ao Linux. Inicie um Cygwin como administrador do Windows e execute:
Ambas as soluções limparão a tabela de partições, MBR ou GPT, evitando que o sistema seja iniciado na próxima reinicialização.