Bagaimana saya memformat memori flash level rendah di Linux?

13

Teman saya mengalami masalah dengan USB flash drive, dan saya menyarankan dia melakukan format tingkat rendah. Kemudian terpikir oleh saya bahwa saya bahkan tidak tahu bagaimana melakukannya di Linux. Jadi ... bagaimana saya bisa memformat memori flash level rendah di Linux? Teman saya mencoba "format penuh" pada drive di Windows dan gagal.

bupupin
sumber

Jawaban:

12

"Pemformatan level rendah" dilakukan pada disket, di mana Anda dapat menulis pada kepadatan yang berbeda dengan memilih untuk mengatur trek dan sektor secara berbeda. Tetapi ini tidak masuk akal bagi kebanyakan media modern. Gagasannya tentang bagaimana mengatur data pada perangkat adalah tetap dan tidak dapat diubah. Sama sekali tidak masuk akal untuk flash, yang memiliki bit diskrit, daripada domain magnetik. Pemformatan level yang lebih tinggi dimungkinkan, yaitu mkfsdi unix-land.

Wnoise
sumber
Jadi jika sistem file pada flash drive teman saya berantakan, mkfsapakah satu-satunya pilihannya? Bagaimana jika itu tidak berhasil? Tidak ada lagi yang bisa dia coba?
bmaupin
@Bryan: yah, dia juga bisa mencoba fsck, setara dengan dos chkdsk.
Berkumandang
3
@wnoise jika mkfsgagal, fscktidak akan membantu.
derobert
2
Saya menguji banyak memori USB flash di tempat kerja dan kualitasnya ada di peta, jadi saya tidak akan terkejut jika drive teman Anda rusak dan tidak dapat bekerja lagi. Hal-hal ini dapat pecah dengan berbagai cara dan tidak banyak yang dapat Anda lakukan tentang hal itu, selain membeli memori dari sumber yang memiliki reputasi baik dan kemudian mungkin mengujinya f3untuk memastikan tidak rusak.
unfa
8

Pemformatan level rendah berarti banyak hal berbeda untuk orang yang berbeda dan pada konteks yang berbeda.

Arti asli adalah langkah yang diperlukan dalam memformat disk - disk drive perlu tajuk, sinkronisasi, dan pola lain yang ditulis di media sebelum dapat menyimpan data ke dalamnya. Dengan cara ini kepala dapat mendeteksi kapan A) di trek dan B) di mana berada di trek. Memformat disket tingkat rendah menyiapkan disk untuk dapat membaca dan menulis blok. Hard drive PC MFM dan RLL awal bisa diformat level rendah, sering menggunakan utilitas yang tertanam dalam ROM pengontrol hard drive (kartu ISA). Hard drive IDE dan SATA modern juga diformat level rendah, tetapi hanya di pabrik.

Berbagai arti lainnya termasuk menulis nol untuk semua blok, mengkonfigurasi drive untuk menonaktifkan area "tersembunyi" seperti HPA dan DCO dan kemudian memusatkan semua blok, atau hal-hal lain yang lebih terkait dengan mempartisi daripada memformat.

Flash mentah memerlukan langkah persiapan awal yang berbeda di pabrik - setiap flash "eraseblock" (analog dengan "blok" pada disk) perlu diuji dan ditandai sebagai buruk jika memang buruk. Setiap "eraseblock" memiliki blok kecil "OOB" tambahan yang menyimpan informasi yang mengoreksi kesalahan - dan ini adalah tempat yang ditandai sebagai buruk. Anda TIDAK ingin mengulangi langkah ini karena tindakan menulis ke blok yang buruk dapat mencegah Anda dari menetapkan bit tertentu lagi yang mengidentifikasi itu sebagai buruk.

Tetapi Anda tidak berurusan dengan flash mentah. Anda berhadapan dengan USB flash drive. Ada chip pengontrol di semua flash drive yang menerima perintah USB dari host dan berbicara ke flash mentah di dalam atas nama host. Beberapa chip pengontrol ini dapat dikonfigurasi untuk melaporkan bagian flash sebagai partisi CD-ROM yang terpisah, atau bertindak seperti dua perangkat penyimpanan USB yang terpisah. Bergantung pada merek dan model chip pengontrol, Anda mungkin dapat menemukan utilitas pemulihan atau konfigurasi (kemungkinan hanya Windows) yang dapat mengatur ulang chip pengontrol ini. Anda akan mulai dengan membuka flash drive, mencari yang lebih kecil dari (kemungkinan) dua chip yang ada di PCB kecil, dan melakukan beberapa Googling. Model dan cetakan yang tercetak di bagian luar kasing tidak akan membantu Anda menemukan siapa yang membuat bagian dalamnya.

LawrenceC
sumber
7

Tidak ada cara untuk melakukan format tingkat rendah pada sebagian besar perangkat flash, karena mereka memiliki lapisan terjemahan tambahan dari USB / ATA / SD / dll. ke MTD yang mengaburkan perangkat MTD level rendah (yang bisa diformat level rendah jika langsung [yang tidak bisa]).

Ignacio Vazquez-Abrams
sumber
6

gunakan ddperintah untuk inidd if=/dev/zero of=/dev/hda

Ini akan menghancurkan SEMUA data pada hard drive, semua info sektor boot, dan semua data di semua partisi. Namun itu tidak akan membuat disk tidak berguna, Anda hanya memiliki disk bersih yang hanya perlu memiliki partisi dibuat dan sektor boot baru diinstal, yang akan terjadi ketika Anda menginstal OS apa pun termasuk Linux atau Windows. Ini adalah cara yang baik untuk membersihkan partisi, virus, instalasi yang rusak atau data yang tidak ingin Anda lihat.

harish.venkat
sumber
4
Anda tidak ingin menggunakan /dev/zerountuk menghapus perangkat memori flash. Lihat entri di blog saya: fakkelbrigade.eu/chris/blog/2012/01/…
Chris Down
1
Tidak salah menulis / dev / zero ke perangkat flash. Satu-satunya keuntungan yang diberikan tulisan 1 ke perangkat adalah Anda bisa mendapatkan waktu menulis sedikit lebih cepat saat berikutnya Anda menulis ke disk karena tidak harus dihapus dulu - dan itu tergantung pada lapisan terjemahan flash yang cerdas.
Shawn J. Goff
2
@ ChrisDown, Tidak yakin bagaimana perbandingannya dalam kinerja, tetapi Anda bisa menggunakannya badblocks -s -w -t 0xff /dev/?d??. Anda mendapatkan semua 1 yang ditulis, dan diuji juga.
Zoredache
2
@ChrisDown entri blog Anda sudah sesuai 404.
derobert
1
Jika flash secara internal menghapus semua yang ada, maka layer terjemahan harus membalik bit karena biasanya memformat disk dengan semua nol.
psusi
4

mkfs.vfat /dev/hda1 akan melakukan hal yang sama dengan perintah "format" MSDOS.

Paul Tomblin
sumber
2

Saya telah menemukan perangkat di masa lalu (meskipun tidak untuk sementara waktu) yang mengimplementasikan perintah UNI SCM FORMAT - dari Linux Anda dapat menggunakan:

sg_format --format / dev / sdX

untuk mengatur ulang perangkat ini ke kondisi pabrik (spesifikasi penyimpanan USB berasal dari standar SCSI yang lebih lama).

Saya percaya beberapa perangkat USB 3 yang lebih baru juga menerapkan perintah keamanan ATA, sehingga Anda dapat menggunakan https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase yang kemungkinan memiliki efek menyetel ulang lapisan terjemahan flash ke pabriknya. negara (seperti biasanya dengan SSD).

Tim Small
sumber
1

Ada yang namanya format tingkat rendah untuk memori Flash, tetapi dilakukan di pabrik dengan perangkat lunak khusus vendor.

Untuk melakukan itu - Anda perlu berbicara langsung dengan chip pengontrol memori. Untungnya saya tidak dapat menemukan program yang dapat melakukannya di Linux.

Ada alat pabrikan yang melakukan pemformatan level rendah dan dapat menulis beberapa pengaturan (seperti perilaku LED, membuat drive hanya dapat dibaca) dan data (seperti nama pabrikan, nama model, nomor seri) ke chipset pengontrol memori, tetapi alat ini biasanya dibuat hanya untuk Windows, dan sering kali dalam bahasa Cina.

Salah satu alat tersebut disebut "Alat FC MP". Sejauh yang saya tahu, ini dirancang oleh Alcor Micro , dan diproduksi oleh FirstChip (FC). Rupanya "MP" adalah singkatan dari "Produksi Massal".

Saya menggunakan versi yang saya temukan di sini: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

Tautan lain yang dapat Anda ikuti: https://repusb.cubava.cu/?page_id=2052 https://www.rmprepusb.com/tutorials/repair-your-usb-flash-drive http://reboot.pro/topic / 20865-alcor-micro-usb-pen-drive-repair / http://reboot.pro/topic/19901-no-alcor-mptool-is-recognizing-my-usb/ https://www.elektroda.pl /rtvforum/topic3145335.html http://flashboot.ru/files/file/30/ http://www.flashdrive-repair.com/2014/05/download-fc-mptool-v402-for-fixing.html https : //www.cdrinfo.pl/download/356133849

Ini berjalan di Wine, tetapi tidak akan mendeteksi chipset drive (mungkin perlu akses langsung ke pengontrol USB untuk melakukan hal itu).

Juga - agar ini berfungsi, Anda harus memiliki flash drive dengan chipset Alcor tertentu yang didukung. Lagi - setiap vendor memiliki perangkat lunak sendiri yang berbicara dengan chip pengontrol via USB.

Aku punya ini:

masukkan deskripsi gambar di sini

Perhatikan nomor bagian chipset pada mikrokontroler: FC1178 BC1 Program FC MP Tools akan mengidentifikasi ini sebagai chipset 1178BC :

masukkan deskripsi gambar di sini

Dan perangkat lunak yang saya tautkan berfungsi dengannya pada Windows XP dan 10. Namun - itu akan macet jika Anda mengganti program ke bahasa Inggris! Setel preferensi Anda dalam bahasa Inggris, kemudian mulai ulang programnya dan jangan ubah bahasa - itu akan berhasil. Mungkin itu akan diperbaiki di versi yang lebih baru.

Pokoknya - vendor yang berbeda memiliki alat yang berbeda, ini lubang kelinci, tidak ada standar di sini AFAIK, dan (setidaknya alat ini) hanya akan berfungsi pada Windows sayangnya.

Dari apa yang bisa saya katakan, ini akan menguji chip memori dan menulis peta bad sector ke chip controller sehingga hanya dapat menyajikan memori yang baik ke OS. Dengan cara ini, bahkan chip yang rusak sebagian dapat digunakan dan dijual. Ini mungkin diurutkan di pabrik berdasarkan kualitas dan level rendah yang diformat untuk kapasitas yang berbeda. Ini disebut binning.

Mungkin jika seseorang dapat mengumpulkan banyak alat ini, merekayasa baliknya dan membuat alat open-source universal untuk Linux, kita dapat melakukannya - jika tidak, saya tidak melihat itu akan terjadi.

unfa
sumber
1

Meskipun memformat level rendah seperti yang dilakukan pada drive hard disk dan floppy drive tidak masuk akal untuk flash drive, ada utilitas khusus pabrikan untuk drive flash "format tingkat rendah": Ini adalah contoh: Utilitas format level rendah Alcor

Saya jatuh pada pertanyaan ini sambil mencari utilitas yang akan bekerja di Linux. Namun, tampaknya produsen flash drive tidak peduli membuat kami bahagia.

Tarik
sumber