fstrim
requer que o dispositivo de bloco do Linux seja montado e não é muito detalhado. blkdiscard
poderia dizer, mas também isso exigiria uma operação de gravação.
Posso de alguma forma dizer se um dispositivo de bloco suporta aparar/descartar, sem realmente tentar cortar/descartar algo nele?
Você pode verificar os tamanhos máximos de descarte do dispositivo, por exemplo ,
(substituindo
X
conforme apropriado).Se isso mostrar um valor maior que 0, o dispositivo suporta descartes. A rigor,
discard_max_hw_bytes
indica o que o hardware suporta;discard_max_bytes
indica o que o software suporta, e o último geralmente é o que é relevante:(Isso está na
discard_max_hw_bytes
seção, mas é efetivamente verdade para ambos. As referências serão corrigidas em 5.15 .)Isso funciona em muitos dispositivos de bloco diferentes, não apenas em discos: dispositivos de loop, dispositivos mapeadores de dispositivos, etc.
Utilize o
hdparm
comando, que permite executar comandos de baixo nível em um dispositivo de disco.A opção
hdparm -I /dev/sda
(ou inserir dispositivo de bloco em vez de sda) irá consultar a unidade para obter informações. Há uma seção que lista as operações suportadas da unidade.A execução
hdparm -I /dev/sda | grep TRIM
em uma unidade compatível com TRIM produzirá algo como:Há também muitas outras informações úteis na saída, o comando hdparm é muito útil.
Observe que isso funcionará apenas em dispositivos SATA e em alguns dispositivos SCSI, pois
hdparm
foi projetado para executar comandos SATA em dispositivos.Para verificar se o dispositivo suporta trim/discard pode-se também usar
lsblk
o utilitário linux. Se os limites de descarte do dispositivogranularity
foremmax_sectors
diferentes de zero, então o suporte para descarte/corte está ativado, por exemplo,