Apakah ini "lebih baik" untuk penyimpanan flash untuk diisi dengan angka 1 daripada angka 0?

0

Ketika saya membuat cadangan drive, saya suka mengompres gambar, jadi saya mengisinya terlebih dahulu dengan semua nilai yang sama sehingga ruang kosong hampir tidak ada apa-apa:

cat /dev/zero > ~/zeros
sync
rm ~/zeros

Untuk penggerak mekanis / magnetik, ini hanya menulis 0 untuk semua ruang kosong dalam satu operasi per bit, tetapi untuk perangkat solid-state / flash seperti kartu SD atau SSD, menulis 0 sebenarnya membutuhkan dua operasi per bit:

  • Penghapusan massal, yang menetapkan seluruh blok menjadi semua 1 sekaligus
  • Tulisan individual, yang mengembalikan bit terpilih ke 0

Jadi, dengan mengisi perangkat solid-state / flash dengan 1 bukannya 0 seperti jawaban ini menjelaskan cara melakukannya , apakah saya akan mempercepat proses atau memperpanjang umur perangkat dengan menghindari langkah kedua dari proses penulisan?

AaronD
sumber
Apa tujuannya?
Ramhound
@Ramhound: Pada dasarnya pertanyaan di akhir. Secara khusus, saya melakukan banyak percobaan dan kesalahan mencoba membangun Pi seperti yang saya inginkan dan meronta-ronta kartu SD banyak dalam proses. Mencadangkan keberhasilan parsial, kemudian mencoba pendekatan yang sama sekali berbeda, dll. Saya tidak berpikir aplikasi spesifik itu relevan kecuali bahwa saya banyak menulisnya.
AaronD
Saya pikir menghapus hanya menghapus tautan entri ke lokasi file atau tabel partisi, dan membiarkan data tidak tersentuh. Jika saat mengembalikan drive memutuskan untuk tidak menulis karena bit kebetulan sudah benar, saya kira itu adalah fitur installer atau pengontrol drive dan bukan cara penyimpanan flash bekerja.
Louis
@ Louis: Ya, rm <file>lakukan itu, tapi saya gunakan dduntuk backup / restore, bukan salinan file yang melewatkan hal-hal yang bukan file. Inti dari file full-drive yang segera dihapus adalah untuk mengatur semua ruang kosong ke nilai yang sama sehingga gambar drive dapat dikompres secara efisien. ~ 600MB untuk kartu SD 8GB dengan ~ 2GB yang digunakan, misalnya. Meskipun file itu hanya ~ 600MB, itu harus dikembalikan ke kartu 8GB atau lebih besar. Poin keseluruhannya adalah untuk membaca kembali banyak dari nilai yang sama ketika membuat cadangan, terlepas dari bagaimana cara kerjanya di bawah ... kecuali bahwa tidak ada banyak blok cadangan.
AaronD
Pertanyaan Anda tidak jelas, jadi jelaskan, apa tujuan akhir Anda menulis 0 atau 1 ke perangkat?
Ramhound

Jawaban:

0

Ini terasa seperti masalah XY - jawaban yang tepat adalah mungkin tidak masalah sama sekali , tetapi masuk akal untuk melakukannya nanti.

Kebanyakan SSD mengenkripsi atau mengacak data untuk keperluan leveling keausan, jadi semua yang Anda mungkin lakukan adalah mengosongkan drive sedikit lebih cepat, saya kira. Kartu SD, saya tidak yakin tentang. Sangat jarang menggunakannya sebagai boot drive di luar skenario dengan sangat sedikit penulisan.

Jika ini adalah cadangan yang relatif kecil, saya sebenarnya curiga cara 'pintar' adalah untuk gambar, kemudian mount dan nol ruang kosong pada gambar kemudian mengompresi tampak cerdas. Anda bekerja pada penyimpanan yang relatif cepat, meminimalkan penulisan ulang pada penyimpanan flash dan Anda membaca seluruh drive dan memulai dengan gambar yang tidak terkompresi. Pencitraan terlebih dahulu kemudian memusatkan perhatian kemudian mengompresi menghemat pakai

Ini juga layak dipertimbangkan jika saya ingat dengan benar, noobs bekerja dari disk image pada drive fat32, dan jika demikian, Anda dapat memasang SSD, menyalin gambar disk di dalam dan melakukan operasi di sana. Kemudian ganti gambar disk sesuai kebutuhan. Atau hanya menyalin isi drive dan mengompresnya 'sesuai kebutuhan' dan mengganti konten drive lama dengan yang baru.

Journeyman Geek
sumber
Ooo, itu terdengar menarik! Saya tidak akan pernah memikirkan itu! Oke, jadi pada laptop Lubuntu, bagaimana saya bisa memasang file gambar yang tidak terkompresi dengan beberapa partisi (dibuat dddari seluruh kartu fisik) dan mengisi ruang kosongnya dengan hal-hal yang dapat dikompres?
AaronD
ya. Saya percaya kpartx -a -v backup.img akan menambahkan serangkaian perangkat di / dev / mapper, yang dapat Anda pasang seolah-olah itu adalah disk fisik
Journeyman Geek
Saya harus menginstalnya terlebih dahulu, dan harus dijalankan sebagai sudo, tetapi kemudian dipasang gambar SD mentah seolah-olah saya telah memasukkan kartu fisik. Sayangnya, struktur direktori tampaknya hanya bisa dibaca. (setiap upaya untuk membuat file, bahkan sebagai sudo, menghasilkan Permission denied) Halaman manual tidak menyebutkan opsi readonly (-r), tapi saya tidak menggunakannya; hanya menyalin / menempelkan milik Anda sejauh ini, dengan backup.img berubah menjadi apa sebenarnya.
AaronD
erf. Saya biasanya menggunakannya hanya baca - Anda memperlakukan hal-hal di / dev / mapper sebagai perangkat kan? jadi Anda harus me-mount mereka untuk benar-benar bekerja pada mereka, Anda dapat menjalankan dd pada mereka seperti perangkat sdx ...
Journeyman Geek
Saya tidak yakin apa yang Anda maksud di sana. Saya yakin saya kehilangan banyak hal di bawah tenda, tetapi dari apa yang sebenarnya bisa saya lihat: Saya mendapatkan bookmark / tautan cepat di browser sistem file (PCManFM) untuk setiap partisi dalam gambar, sama seperti ketika saya mencolokkan sebuah kartu masuk. Saya mengklik salah satunya, ikon ejectnya muncul seperti halnya kartu fisik, dan saya bisa membacanya dan mengubah file yang ada; Saya tidak bisa membuat file, bahkan dengan sudo.
AaronD
0

@ Harun

Apakah Anda mencoba bertanya apakah menghapus ruang kosong lebih baik dilakukan dengan
pola 0 atau 1 karena akan ada lebih sedikit blok yang digunakan dan diisi ulang?

Berpikir 0 untuk kosong 1 sedang digunakan, dan dengan logika itu akan membantu menambah atau mengurangi umur drive SSD. Memiliki logika kedua yaitu akan memecah blok agar tidak digunakan, alih-alih memiliki ruang kosong dengan item yang dihapus atau dihapus masih data menggunakan ruang dan lebih banyak blok, memiliki lebih banyak penulisan, yang membuat degradasi lebih cepat

Anda kehilangan poin mengapa Ramhound tidak mengerti pertanyaan Anda.

Ini dengan logika Anda, dengan menghapus ruang kosong dan membuat serta menyalurkannya

cat> ~ / nol

Membuat tulisan dengan menghapus blok yang digunakan masih berupa tulisan di drive itu, yang berarti gagasan buruk, tetapi pemikiran yang baik memiliki logika yang buruk terlepas dari apakah membantu memiliki gambar cadangan yang lebih kecil atau tidak. Proses ini akan membantu untuk membuat gambar cadangan terkompresi yang lebih kecil tetapi Anda membunuh drive Anda dalam proses.

Dengan memipipkan file output pada drive yang sama dan membersihkan ruang kosong Anda membuat file besar dengan> pada drive yang sama b / c yang masih menulis drive dengan data meskipun itu adalah ruang kosong. Menulis ke drive adalah menulis, dan menulis besar-besaran pada saat itu.

Saya pikir Anda mengajukan pertanyaan yang dimuat, artinya logika yang Anda ajukan masuk akal, tetapi itu salah, dan 100% kontra produktif, dan mungkin menghabiskan drive Anda 10x lebih cepat.

Memiliki drive yang bebas dari ruang tetapi menciptakan menulis dengan menggunakan file yang akan memiliki ukuran file besar, menulis adalah menulis, oleh karena itu seluruh logika meskipun saya mendapatkannya, masih dengan pemikiran Anda memiliki gambar cadangan terkecil adalah membantu yang memang benar, ruang kosong menyeka menciptakan lebih banyak menulis daripada bahkan dengan ruang kosong di gambar cadangan Anda akan membuat, bahkan dengan proses melakukannya berulang-ulang, dengan menulis ruang kosong yang merupakan jumlah bisu kemudian membuat file tulis dari seluruh ruang kosong pada drive masih membuat penulisan besar-besaran, di mana ruang kosong, hanya akan menggunakan sejumlah kecil ruang. Drive akan lebih buruk karena menulis file. menghapus menghapus file, Anda menulis file.

Jason Swartz
sumber
Itu tidak begitu banyak bahwa balok digunakan atau tidak. Mereka semua digunakan ketika saya menulis file dan dibebaskan ketika saya menghapus file, terlepas dari nilai apa yang saya isi file tersebut. Satu-satunya perbedaan tingkat atas adalah nilai residu yang dibaca kembali dari apa yang secara teknis merupakan ruang bebas sekarang, dan saya berharap dapat menghemat sedikit keausan dan mungkin bahkan beberapa kecepatan dengan memotong paruh kedua siklus penulisan generik sambil mengisi berkas. Benar-benar semua itu - hanya rutin pengisian-dengan-hal-hal-sebelum-kompresi, tetapi dengan nilai pengisian yang berbeda untuk mencoba dan mengoptimalkan proses.
AaronD
Meski begitu, saya sangat suka ke mana Journeyman Geek pergi. Itu menjanjikan untuk mengesampingkan masalah ini sama sekali, jika kita bisa menyelesaikan satu atau dua bug terakhir.
AaronD