Qual é a maneira recomendada de esvaziar um SSD?

48

Acabei de receber meu novo SSD desde que o antigo morreu. Este SSD Intel 320 suporta TRIM. Para fins de teste, meu distribuidor colocou o Windows nele, mas eu quero me livrar disso e instalar o Kubuntu nele.

Não precisa ser um "apagamento seguro", só preciso esvaziar o disco da maneira mais saudável. Acredito que dd if=/dev/zero of=/dev/sda preenche os blocos com zeros e, assim, tomar outra gravação (corrija-me se estiver errado).

Eu vi a resposta Como ativar o TRIM , mas parece que é adequado para limpar blocos vazios, não limpando o disco.

hdparm parece ser o programa para fazer isso, mas não tenho certeza se ele limpa o disco OU limpa os blocos vazios. De sua página de manual:

  --trim-sector-ranges
          For  Solid State Drives (SSDs).  EXCEPTIONALLY DANGEROUS. DO NOT
          USE THIS OPTION!!  Tells the drive firmware to discard  unneeded
          data  sectors,  destroying  any  data that may have been present
          within them.  This makes those sectors available  for  immediate
          use  by  the firmware's garbage collection mechanism, to improve
          scheduling for wear-leveling of the flash  media.   This  option
          expects  one  or  more  sector range pairs immediately after the
          option: an LBA starting address, a colon, and  a  sector  count,
          with no intervening spaces.  EXCEPTIONALLY DANGEROUS. DO NOT USE
          THIS OPTION!!
          E.g.  hdparm --trim-sector-ranges 1000:4 7894:16 /dev/sdz

Como posso fazer com que todos os blocos pareçam vazios usando o TRIM?

    
por Lekensteyn 12.05.2011 / 16:01

5 respostas

44

ATA Secure Erase

Você deve usar o recurso de exclusão de segurança da unidade.

  1. Certifique-se de que a segurança da unidade não esteja congelada . Se for, pode ajudar a suspender e retomar o computador.

    # hdparm -I /dev/sdX
    
    [...]
    
    Security: 
           Master password revision code = 65534
                   supported
           not     enabled
           not     locked
           not     frozen <-------------------- This drive is not frozen, continue.
           not     expired: security count
                   supported: enhanced erase
           2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
    
  2. Defina uma senha de usuário (essa senha também é apagada, a escolha exata não importa).

    hdparm --user-master u --security-set-pass Eins /dev/sdX
    
  3. Emita o comando ATA Secure Erase

    hdparm --user-master u --security-erase Eins /dev/sdX
    

Nota:

  • /dev/sdX é o SSD como um dispositivo de bloco que você deseja apagar.
  • Eins é a senha escolhida neste exemplo.

Consulte o link acima para obter instruções completas, incluindo solução de problemas.

    
por psusi 12.05.2011 / 17:10
24

util-linux 2.23 oferece blkdiscard , que descarta dados sem limpá-los de forma segura. Eu testei: funciona em SATA e mmcblk, mas não em USB.

Um trecho da página de manual de blkdiscard(8) :

  

NAME

     

blkdiscard - descarta setores em um dispositivo

     

SINOPSE

blkdiscard [-o offset] [-l length] [-s] [-v] device
     

DESCRIÇÃO

     

blkdiscard é usado para descartar setores de dispositivos. Isso é útil para   drivers de estado sólido (SSDs) e armazenamento thin-provisioned. Ao contrário   fstrim (8) este comando é usado diretamente no dispositivo de bloco.

     

Por padrão, o blkdiscard descartará todos os blocos no dispositivo. As opções podem ser usadas para modificar esse comportamento com base no intervalo ou no tamanho, conforme explicado abaixo.

     

O argumento do dispositivo é o nome do caminho do dispositivo de bloco.

     

AVISO: todos os dados na região descartada no dispositivo serão perdidos!

O comando está lá desde o Ubuntu 15.04 e o OpenSUSE 13.1 (sim, o OpenSUSE tem dois anos à frente do Ubuntu).

    
por Peer Gynt 30.09.2013 / 11:05
5

Se você não precisa de um apagamento seguro, por que você não instala o kubuntu usando as opções para 'usar o disco inteiro' e o equivalente ao 'formato rápido' (não se lembra da terminologia exata agora)

Dessa forma, você abandona a tabela de alocação de arquivos e a unidade é efetivamente esvaziada para sobrescrever. Você realmente não precisa esvaziá-lo.

    
por Rory Alsop 12.05.2011 / 17:47
0

Se a unidade tiver um arquivo do Linux, você poderá usar fstrim . Por padrão, o Ubuntu recente executa fstrim nas unidades dos seguintes fornecedores:

    if [ -z "$NO_MODEL_CHECK" ]; then
        if ! contains "$HDPARM" "Intel" && \
           ! contains "$HDPARM" "INTEL" && \
           ! contains "$HDPARM" "Samsung" && \
           ! contains "$HDPARM" "SAMSUNG" && \
           ! contains "$HDPARM" "OCZ" && \
           ! contains "$HDPARM" "SanDisk" && \
           ! contains "$HDPARM" "Patriot"; then
            #echo "device $DEV is not a drive that is known-safe for trimming"
            continue

Uma vez por semana.

Portanto, uma resposta à sua pergunta é inicializar o sistema e esperar uma semana!

    
por Bryce 05.12.2014 / 08:53
-4

Basta remover a partição, não é necessário limpar todo o disco, os dados antigos serão sobrescritos quando o armazenamento for necessário para outra coisa.

Para ativar o TRIM:

gksudo gedit /etc/fstab

Mude "ext4 errors = remount-ro 0" para "ext4 descard, errors = remount-ro 0". (Adicionar descarte)

Salvar e reinicializar, o TRIM agora deve estar ativado.

Verifique se o TRIM está ativado:

sudo -i
dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
hdparm --fibmap tempfile

Use o primeiro endereço begin_LBA.

hdparm --read-sector [begin_LBA] /dev/sda

Agora, ele deve retornar números e caracteres. Remova o arquivo e sincronize.

rm tempfile
sync

Agora, execute o seguinte comando novamente. Se retornar zeros, o TRIM está habilitado.

hdparm --read-sector [begin_LBA] /dev/sda
    
por Alex 12.05.2011 / 17:04

Tags