ست و در چه مرحله ای؟
ChatGPT said:
🔹 TRIM چیست و چرا باید غیرفعال باشد؟
TRIM یک فرمان در SSD است که به سیستمعامل اجازه میدهد تا بلاکهای دادهای که دیگر استفاده نمیشوند را به SSD اطلاع دهد تا آنها را پاک کند. این کار باعث افزایش سرعت و عمر SSD میشود اما برای بازیابی دادهها خطرناک است زیرا پس از اجرای TRIM، اطلاعات حذفشده دیگر قابل بازیابی نخواهند بود.
🔹 در چه مرحلهای TRIM را غیرفعال کنیم؟
اگر قصد بازیابی داده از یک SSD را دارید، باید قبل از شروع فرآیند بازیابی TRIM را غیرفعال کنید تا از حذف دائمی دادهها جلوگیری شود.
✅ بررسی وضعیت TRIM در لینوکس
برای اینکه ببینید TRIM فعال است یا نه، این دستور را اجرا کنید:
cat /sys/block/sdX/queue/discard_max_bytes
(بهجای sdX
نام دیسک خود را قرار دهید، مثلاً sda
یا nvme0n1
.)
- اگر مقدار ۰ باشد، TRIM غیرفعال است.
- اگر مقدار بزرگتر از ۰ باشد، TRIM فعال است و باید آن را غیرفعال کنید.
🔹 روشهای غیرفعال کردن TRIM
۱️⃣ غیرفعال کردن TRIM در لینوکس موقتاً (تا ریاستارت بعدی)
fstrim -d /mountpoint
یا اگر دیسک شما /dev/sdX1
است:
bashCopyEditsudo mount -o remount,nodiscard /dev/sdX1
با این کار TRIM روی آن پارتیشن غیرفعال میشود.
۲️⃣ غیرفعال کردن دائمی TRIM در fstab
اگر میخواهید TRIM همیشه غیرفعال باشد، در فایل /etc/fstab
مقدار discard
را حذف کنید.
برای ویرایش:
bashCopyEditsudo nano /etc/fstab
خطی که به /
یا هر پارتیشن SSD مربوط است را پیدا کنید، اگر discard
در آن وجود دارد، آن را حذف کنید.
قبل:
iniCopyEditUUID=xxxx-xxxx / ext4 defaults,noatime,discard 0 1
بعد از تغییر:
iniCopyEditUUID=xxxx-xxxx / ext4 defaults,noatime 0 1
سپس fstab
را ریلود کنید:
bashCopyEditsudo mount -o remount /
🔹 آیا TRIM باعث حذف دائمی دادهها شده است؟
- اگر TRIM قبلاً اجرا شده باشد:
به نظر میرسد که در دستورات یک سری اشکالات وجود دارد. من آنها را اصلاح میکنم:
🔹 اصلاح دستورات برای غیرفعال کردن TRIM
۱️⃣ بررسی اینکه TRIM فعال است یا نه
ابتدا وضعیت TRIM را بررسی کنید:
lsblk --discard
خروجی چیزی شبیه این خواهد بود:
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 512B 2G 0
nvme0n1 0 512B 2G 0
- مقدار DISC-MAX اگر بزرگتر از ۰ باشد، TRIM فعال است.
۲️⃣ غیرفعال کردن TRIM بهصورت موقت
🔹 اگر پارتیشن شما قبلاً Mount شده است:
میتوانید آن را با گزینه nodiscard
دوباره Mount کنید:
sudo mount -o remount,nodiscard /mountpoint
(بهجای /mountpoint
مسیر واقعی مثل /
یا /mnt/ssd
را قرار دهید.)
🔹 اگر دیسک شما هنوز Mount نشده است:
برای مثال اگر /dev/sdb1
باشد:
sudo mount -o nodiscard /dev/sdb1 /mnt/ssd
۳️⃣ غیرفعال کردن TRIM بهصورت دائمی (پس از ریاستارت هم غیرفعال بماند)
فایل fstab
را ویرایش کنید:
sudo nano /etc/fstab
خطی که به SSD مربوط است را پیدا کنید. مثلاً:
UUID=xxxx-xxxx / ext4 defaults,noatime,discard 0 1
عبارت discard
را حذف کنید:
UUID=xxxx-xxxx / ext4 defaults,noatime 0 1
فایل را ذخیره کنید (CTRL+X
سپس Y
و Enter
).
سپس تغییرات را اعمال کنید:
sudo mount -o remount /
۴️⃣ غیرفعال کردن سرویس fstrim.timer
در سیستمهای مدرن (Debian, Ubuntu)
در برخی از توزیعها، TRIM بهصورت دورهای اجرا میشود. برای اطمینان از غیرفعال بودن آن:
sudo systemctl stop fstrim.timer
sudo systemctl disable fstrim.timer
برای بررسی وضعیت:
systemctl status fstrim.timer
باید ببینید که inactive
شده است.
✅ حالا TRIM غیرفعال شده است و میتوانید عملیات بازیابی داده را ادامه دهید.