Fsck disk secara agresif sebelum menginstal

12

Saya memiliki mesin HP Athlon lama yang saya gunakan untuk menguji perangkat lunak di bawah prosesor lama. Kami sering kehabisan warna coklat, dan setelah yang terakhir disk berantakan. Itu sangat buruk saya tidak bisa menjalankan fsckdan mengirim semua masalah. Saya melakukan instalasi OS baru, tapi saya masih mendapat fsckkeluhan.

Saya ingin mencoba terakhir kali untuk memuat ulang Linux sebelum mengutuk hard drive atau mesin. Setelah filesystem dibuat tetapi sebelum instalasi terjadi, saya ingin agresif fsckmelakukan untuk menandai blok yang dicurigai sebagai buruk.

Disk besar (sekitar 500 GB) dan distro Debian 8 relatif kecil (8-12 GB biasanya lebih dari cukup), jadi saya tidak peduli jika blok yang baik ditandai sebagai buruk. Saya juga suka menginstal GUI, tapi saya belum menikah dengannya.

Saya punya dua pertanyaan:

  1. Apakah Debian 8 memberikan pilihan untuk melakukan fscksebelum menginstal sistem basis? Kalau begitu, dimana itu? Jika tidak, lalu bagaimana prosesnya?

  2. Apakah fsckmemiliki pengaturan untuk mengontrol seberapa agresif blok ditandai sebagai buruk? Jika demikian, apakah itu? Jika tidak, lalu apa yang bisa digunakan?


EDIT : mesin adalah HP5850. Memasuki BIOS, menavigasi ke Storage dan kemudian Self-Test Drive Protection System (DPS) menghasilkan DPS yang merekomendasikan untuk mengganti drive. DPS tidak memberikan statistik apa pun, jadi saya tidak yakin tingkat kerusakannya.

Mengingat saya dapat membeli drive SATA II [lama] baru seharga $ 12 USD, saya hanya akan menggantinya. Tidak ada gunanya membuang-buang waktu atau energi di atasnya.


Referensi terkait adalah sebagai berikut. Tampaknya tidak ada pertanyaan yang ditujukan.


sumber
Kenapa tidak SpinRite ?
Peter Mortensen
Jika Anda memiliki blok buruk sama sekali, seluruh drive gagal secara fisik dan tidak boleh digunakan.
chrylis -on strike-
2
"Agak fsck disk" terlihat sangat kotor ...
A. Mirabeau

Jawaban:

19
  1. "Apakah Debian 8 memberikan pilihan untuk melakukan fsck sebelum menginstal sistem basis? Jika demikian, di mana itu? Jika tidak, lalu apa prosesnya?"

    Sebagai alternatif, pertama-tama unduh dan bakar CD GPartEd (atau tulis ke thumb drive). Sebelum menjalankan penginstal, boot GPartEddan partisi disk sesuai keinginan Anda dan jalankan fsckatau jalankan badblockspanjang lebar.

    Ketika Anda menjalankan installer Debian, katakan saja bagaimana cara menggunakan partisi yang ada. Pemasang tidak perlu membuat partisi sendiri. Sangat senang menggunakan partisi yang ada.

  2. "Apakah fsck memiliki pengaturan untuk mengontrol seberapa agresif blok ditandai sebagai buruk? Jika demikian, apa itu? Jika tidak, lalu apa yang bisa digunakan?"

    The -cpilihan untuk e2fsckpenyebab itu untuk menjalankan badblocksprogram untuk memindai blok buruk. Anda dapat menjalankan badblock secara langsung juga. Secara default, badblockslakukan tes hanya baca. Agar lebih agresif, Anda dapat menentukan -nuntuk tes baca-tulis yang tidak merusak. Anda juga dapat mengatur -popsi untuk menambah jumlah lintasan yang dibuatnya.

    Anda mungkin ingin menjalankan badblockssebelum mempartisi. Dengan begitu, Anda dapat menentukan -wtes menulis-saja yang lebih cepat .

John1024
sumber
1
John, +1, hanya ingin tahu apakah badblocksada metode untuk menandai pada tingkat perangkat keras, atau hanya pada tingkat FS?
heemayl
3
@heemayl Pemahaman saya adalah bahwa, pada hard disk modern , firmware hard disk mencoba melakukan semua manajemen blok buruknya sendiri. Tujuan menjalankan badblockshanyalah untuk memaksa hard disk untuk membaca / menulis semua sektor. Hard disk melakukan sendiri pendeteksian dan pemetaan ulang sektor buruk dan, jika semua berfungsi sebagaimana mestinya, badblocksprogram tidak pernah diberi tahu bahwa hard disk melakukan hal ini.
John1024
hmmm .. bisa dimengerti. Jadi pada dasarnya, fsck dapat menandai blok pada FS tetapi badblocks hanya membantu firmware disk untuk melakukan penandaan, tidak melakukan apa-apa sendiri?
heemayl
3
@heemayl Dahulu kala, badblocksakan mengeluarkan daftar bad sector dan filesystem akan mencatatnya. Di zaman modern, badblocks dan FS masih mencoba melakukan itu tetapi, dengan HD modern, daftar biasanya kosong.
John1024
1
@ Heemayl, dan jika daftar tidak kosong, disk biasanya rusak parah sehingga pilihan terbaik Anda adalah menggantinya.
Mark
7

Jika Anda mendapatkan kesalahan fsck yang sering, drive mungkin juga batuk darah. Bahkan jika Anda menandai setiap blok buruk sebagai buruk, itu tidak akan lama sebelum lebih banyak blok menjadi buruk. Saya akan membayangkan Anda bisa berubah menjadi tty lain untuk melakukan fsck jika Anda benar-benar perlu (Ctrl + alt + F2 untuk beralih ke tty2), tapi saya tidak bisa cukup menekankan seberapa banyak Anda memerlukan hard drive baru jika apa yang Anda katakan akurat.

John Leuenhagen
sumber
"Jika Anda mendapatkan kesalahan fsck yang sering ..." - apa yang saya tidak yakin tentang itu, adalah segelintir fsckmasalah setelah menginstal ulang sejauh mana masalah, atau apakah itu puncak gunung es. Sistem melakukan boot, menemukan beberapa kesalahan filesystem (4 atau 6), pulih dengan remount sebagai read-only, dan kemudian melakukan booting.
@jww dapatkah Anda memposting beberapa contoh tepat dari kesalahan sistem file tersebut?
John Leuenhagen
Mengapa beralih ke tty lain? Apa manfaatnya?
fpmurphy
@ fpmurphy1 sepertinya dia tidak bisa membuka jendela terminal, jadi beralih ke tty lain akan menjadi cara terbaik berikutnya untuk masuk ke shell.
John Leuenhagen
@ jww: Apakah blok yang sama dilaporkan setiap waktu, atau apakah set baru dilaporkan pada setiap boot?
TMN
5
  1. Tidak, dan saya pikir itu tidak sepadan. Fsck (seperti yang diterapkan oleh sebagian besar sistem file) tidak memeriksa drive Anda. Ini memvalidasi metadata sistem file dan memastikan tampilan konsisten ketika Anda memasangnya. Tidak masuk akal untuk melakukannya sebelum instalasi, karena menurut definisi, Anda hanya akan memiliki ruang kosong.

  2. Gunakan badblock sebagai gantinya. Jika Anda ingin memastikan data Anda tidak membusuk, gunakan sistem file yang mendukung scrubbing. Lvm sendiri bisa melakukannya juga .

viraptor
sumber
3

Untuk memeriksa keandalan disk modern, pertimbangkan untuk menggunakan tes bawaan; Anda dapat memicu mereka dengan utilitas smartctl, misalnya:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

Jika Anda ingin memastikan sebelumnya bahwa semuanya telah ditulis, untuk menemukan sektor yang tidak akan menulis dengan benar, Anda dapat menimpa seluruh media dengan sesuatu seperti dd dari / dev / urandom, atau rusak dengan salah satu pengacakan. pilihan.

pemeras dan prajurit
sumber
3
Perhatikan bahwa a dddari /dev/randomakan memakan waktu berhari-hari untuk diselesaikan pada drive 500GB.
Dmitry Grigoryev
1
memperbaiki kesalahan ketik, thx :) Tidak ingin menguraikan sintaks dd tepat karena saya ingin menghindari memiliki baris perintah di sekitar itu, jika tidak sengaja disisipkan ke dalam shell, akan menyebabkan kehilangan data yang benar-benar tidak dapat dipulihkan.
rackandboneman
Sayangnya, Debian tidak muncul untuk memberikan smartctl: E: Unable to locate package smartctl. Apakah ini utilitas Red Hat / Fedora?
paket debian / ubuntu adalah smartmontools. BTW, gunakan pencarian apt-cache untuk mencari paket mana yang memiliki sesuatu.
rackandboneman
2

Saya akan merekomendasikan untuk mendapatkan perangkat lunak format tingkat rendah dari produsen (jika ada) yang hanya dapat berjalan pada Windows (atau jika Anda beruntung, dari CD / DVD / USB yang dapat di-boot yang Anda inginkan untuk mengunduh gambar dari situs web mereka) . Jika Anda memiliki kontrol yang cukup atas operasi untuk mengurangi kapasitas drive yang dilaporkan dengan imbalan kumpulan sektor cadangan yang jauh lebih besar, Anda harus melakukannya, untuk mengantisipasi banyak suku cadang yang sedang diganti saat Anda menguji drive seperti yang disarankan @rackandboneman. . Jauh lebih baik untuk memiliki drive 400 atau 450-GB dengan semua sektor buruk ditukar untuk suku cadang dan lebih banyak tersisa untuk cacat di masa depan, daripada menghabiskan kumpulan cadangan dan memiliki sektor buruk di masa depan yang tidak dapat dipetakan secara transparan.

Monty Harder
sumber
Saya dapat menjalankan SeaTools untuk DOS . SeaTools melaporkan SMART tidak memicu, yang tampaknya tidak biasa. The tes panjang dan tes pendek gagal segera. Saya mengubah ukuran disk hingga 32 GB; dan kemudian menjalankan tes panjang lagi. SeaTools menemukan 4 BBA buruk di sekitar tanda 1190000 dan memperbaikinya. Instalasi OS baru berjalan dengan sempurna; dan reboot berikutnya tidak mengalami kesulitan. Karena saya membeli drive SATA II pengganti, saya akan menyimpannya sebagai cadangan panas jika drive yang ada mengalami kesalahan.
@jww kasihan Anda sudah menerima jawaban yang berbeda.
Monty Harder
Ya, ini perangkap T&J ... Saya harus mengajukan pertanyaan spesifik untuk mendapatkan jawaban yang tepat. Jika saya akan bertanya, "bagaimana cara menginstal Linux pada hard drive yang gagal", maka pertanyaannya mungkin sudah ditutup.
0

Beberapa hal mendasar jika Anda tidak memiliki alat yang lebih bagus (mis. Itu adalah disk USB dan SMART tidak berfungsi):

dd if=/dev/sdX of=/dev/null bs=1M

akan membaca semua disk. Anda akan melihat di dmesglog jika ada sektor yang tidak dapat dibaca. Meskipun itu tidak akan memberi tahu Anda jika berhasil membacanya setelah mencoba lagi. Ini tidak sebagus badblockstetapi saya menyebutkannya karena ada di mana-mana.

Jika Anda memiliki bad sector dan Anda tidak ingin apa pun pada disk:

dd if=/dev/zero of=/dev/sdX bs=1M

akan menyebabkan semua blok ditulis ulang. Jika ada sektor yang tidak dapat dibaca, ini harus menyebabkan mereka ditukar dengan sektor-sektor dalam kumpulan yang dialokasikan kembali dan menjadi dapat digunakan kembali.

Jika Anda memiliki disk di mana realokasi terjadi maka disk sedang dalam perjalanan keluar. Saya tidak akan menggunakannya untuk hal-hal penting, tetapi kadang-kadang Anda memiliki data yang tidak terlalu Anda pedulikan dan mungkin tidak masalah untuk itu.

Jika ini SSD, maka segala sesuatunya berbeda dan ini tidak berlaku.

pengguna1908704
sumber