Partisi saya /dev/sda3
pada drive SSD tidak mengandung sistem file apa pun, tetapi berisi sampah. Bagaimana saya melakukan operasi TRIM / DISCARD di seluruh partisi?
linux
partitioning
ssd
trim
Poin
sumber
sumber
Jawaban:
Jika versi util-linux Anda cukup baru (September 2012), sebenarnya ada alat yang dibuat khusus
blkdiscard
,, itulah cara terbaik untuk melakukan ini:Tetapi jika Anda memerlukan kompatibilitas dengan versi distro Linux yang lebih lama, baca terus ... Ada beberapa kasus di mana
hdparm
/wiper.sh
menolak untuk menyentuh volume karena itu bukan partisi, jadi kami membutuhkan sesuatu di luar itu.Cara yang paling didukung yang saya temukan adalah untuk mengambil keuntungan dari kenyataan bahwa volume swap Linux mendukung DISCARD ketika diaktifkan. Wipef pada akhirnya ada sehingga volume tidak dikenali sebagai swap nanti.
Ini mengeluarkan DISCARD pada sebagian besar perangkat.
sumber
blkdiscard
. Perintah berbahaya ... :)WARNING: All data in the discarded region on the device will be lost!
Saya tahu pertanyaan ini cukup lama, tapi ...
Cara paling sederhana untuk melakukan ini adalah dengan hanya membuat sistem file ext4 pada partisi dengan versi yang cukup baru
mkfs.ext4
. Hal pertama yang dilakukan alat ini adalah TRIM seluruh partisi. Setelah Anda selesai melakukannya, Anda dapat menimpa data yang dibuatnya dengan sistem file apa pun yang Anda inginkan.(Saya baru saja melakukan ini untuk membuat partisi vfat baru pada kartu SD, misalnya.)
sumber
mkfs.ext4 -J size=4 -N1 /dev/my/device
-E lazy_journal_init
tampaknya menghasilkan sedikit menulis lebih sedikit daripada yang-J size=4
dilakukan. (Berdasarkan percobaan menggunakan file jarang daripada SSD fisik dandu
untuk memverifikasi berapa banyak yang telah ditulis.)hdparm --trim-sektor-rentang tingkat rendah, seharusnya berbicara langsung ke SSD, jadi tidak ada ketergantungan pada sistem file. Apa yang dilakukan wiper.sh adalah menggunakan program khusus filesystem untuk memetakan wilayah (sistem file) gratis ke sektor (perangkat keras) SSD, mereka menggunakan hdparm untuk memotongnya.
Menjawab pertanyaan, Anda dapat menggunakan hdparm untuk memotong partisi itu, tetapi Anda harus sangat berhati-hati . Cara untuk melakukannya adalah mendapatkan kisaran sektor yang digunakan oleh partisi, lalu gunakan hdparm pada rentang sektor itu. Mungkin Anda harus melewati beberapa rentang sektor, karena masing-masing rentang untuk --trim-sektor-rentang maksimum memiliki 65535 sektor.
fdisk -l dapat memberi tahu Anda awal dan ukuran partisi. Perhatikan unit yang digunakan fdisk, dan ukuran sektor SSD Anda.
Contoh (SSD saya):
Untuk membuang spasi sebelum partisi ini, saya bisa memangkas 2047 (512 byte berukuran, pada saya SSD) sektor mulai dari sektor 1:
hdparm --trim-sector-ranges 1:2047
. Saya tidak dapat memotong mulai dari sektor 0 karena itu adalah MBR (tidak tahu bagaimana kelanjutannya untuk GPT).Untuk membuang ruang yang digunakan oleh partisi, saya akan lakukan
hdparm --trim-sector-ranges 2048:65535 67583:65535 133118:65535 ...
. Itu bisa dituliskan tetapi saya tidak akan menulisnya sekarang.Juga hanya untuk memastikan: Saya tidak menjamin apa pun di sini, saya mungkin telah salah menghitung sektor, melakukan pencadangan semuanya sebelum secara efektif menggunakan --trim-sektor-range.
Catatan : jika Anda memangkas ruang "kosong" sebelum partisi pertama, seperti yang saya tunjukkan, pastikan untuk menginstal ulang GRUB (atau boot loader apa pun yang Anda gunakan) sebelum me-reboot, karena GRUB menyimpan sebagiannya di sektor "tidak digunakan" sebelum partisi pertama . Tidak tahu bootloader lain, tapi saya rasa ini masalahnya, jadi berhati-hatilah.
sumber
wiper.sh
sudah usangfstrim
yang jauh lebih aman, tetapi untuk penggunaan khusus iniblkdiscard
mengalahkan keduanya. Pada 2013, tidak perlu mengambil risiko rentang komputasi secara manual.Anda bisa melihat skrip yang
wiper.sh
disertakan dengan paket hdparm. Ia menggunakan perintah hdparm--trim-sector-ranges
untuk TRIM semua sektor kosong pada partisi, setidaknya jika itu berisi sistem file ext3 / 4. Tidak yakin apakah itu berfungsi dengan partisi yang tidak diformat, tetapi Anda selalu dapat memformatnya sementara dengan ext4.sumber
wiper.sh
akan memangkas hampir semua partisi kecuali untuk metadata ext4. Tapi saya ingin memotong seluruh partisi.blkdiscard
dapat bekerja pada partisi, tidak hanya pada seluruh drive. Saya mengujinya dengan sukses di Fedora 20. Saya memeriksa sumberblkdiscard
- ini adalah program yang sangat sederhana yang tidak tahu apa-apa tentang partisi. Saya berasumsi kernel melakukan terjemahan.Berhati-hatilah,
blkdiscard
jangan bertanya dan tidak menunjukkan informasi kemajuan.Jika blkdiscard tidak tersedia, gunakan skrip ini dan masukkan hasilnya ke hdparm. Argumen pertama adalah jumlah sektor yang harus dipotong, yang kedua adalah sektor pertama yang dipotong.
sumber
Berikut ini adalah artikel menarik yang membahas tentang penggunaan HDDErase untuk menjalankan fitur erase aman SSD bawaan, yang seharusnya membuat Anda menginginkan yang Anda inginkan:
http://www.windowsitpro.com/article/file-systems/q-how-can-i-reset-a-solid-state-disk-ssd-to-a-fully-erased-clean-state-
sumber
blkdiscard --secure
dilakukannya.