TRIMには「ドロップ」インストールが必要ですか?

TRIMには「ドロップ」インストールが必要ですか?

そのオプションを使用してSSDをインストールするかどうか疑問に思いますdiscardman mount)実際にATA TRIMをSSDコントローラに送信する必要があります。

discard証拠はやや情況的です。サンディスクSSDプラス、削除されたファイルはすぐにTestDiskを実行して回復できません。ファイルパスはそのままですが、ファイルの内容は消えました。これからTRIMがSSDで実行されており、ファイル内容を回復できないようにすることが疑われます。

見てみるとsystemctl list-timersランニングユニットはないようですfstrim

パーティションがマウントされていなくてもファイルが削除された後、カーネルはTRIMを送信しますかdiscard?それとも、TestDiskがSSDからファイルを確実に回復できないもう一つの理由ですか?


私はArch Linux 5.12.3を使用しています。

findmntパーティションとマウントオプションについて教えてください。

TARGET                       SOURCE     FSTYPE OPTIONS
/                            /dev/sda3  ext4   rw,relatime
└─/sda1                      /dev/sda1  ext4   rw,relatime,lazytime,discard

ベストアンサー1

ファイルシステムがマウントされている場合、discardファイルを削除すると自動的にTRIMコマンドが実行されます。これはしばしばパフォーマンスに悪影響を及ぼすため、通常はそのマウントオプションを使用せずに定期的に実行することをお勧めしますfstrim。これは、すべてのブロックデバイス層がそれをサポートしている限り機能します(暗号化にLUKSを使用する場合はこれを使用する必要があります。)cryptsetup --allow-discardsこのマウントオプションを使用しないと、ファイルリンクを解放するとファイルシステムドライバは自動的にTRIMコマンドを送信しません。

を使ってインストールしてみることもできますnodiscard。これはデフォルトであり、通常は必要ありませんが、ファイルシステムに継続的なTRIMサポートが追加されている可能性がありますtune2fs -o discard /dev/sda1tune2fs -o ^discard /dev/sda1

debugfsこのユーティリティを使用すると、ファイルを削除する前に最初にファイルの実際のブロックを一覧表示してから、削除後にブロックに直接アクセスして、そのブロックがゼロになっているか中断されていないが割り当てられていないデータを返すことを確認して、問題が何であるかを判断できます。あります。

debugfs以下は、削除されたファイルの内容をブロック番号を使用して読み取ることができるかどうかをテストするシェルスクリプトです。

#!/bin/sh

file=test_file
echo "Current date: $(date)" > "$file"; sync
# Get the device of our test file, for example "/dev/sda1"
device=$(df -P "$file" | awk 'END{print $1}')
# The block of the file's contents, stat gets the inode number
block=$(sudo debugfs -R "blocks <$(stat -c %i "$file")>" "$device")
rm $file; sync
# Read the contents of the deleted file, -D bypasses the buffer cache
sudo debugfs -D -R "block_dump $block" "$device"

おすすめ記事