Jak mogę korzystać z pamięci flash niskiego poziomu w systemie Linux?


13

Mój przyjaciel miał problemy z dyskiem flash USB i zasugerowałem, aby zrobił format niskiego poziomu. Potem przyszło mi do głowy, że nawet nie wiem, jak to zrobić w Linuksie. Więc ... jak mogę zapisać pamięć flash w formacie niskiego poziomu w systemie Linux? Mój przyjaciel wypróbował „pełny format” na dysku w systemie Windows i nie powiodło się.

Odpowiedzi:


12

„Formatowanie niskiego poziomu” zostało wykonane na dyskietkach, gdzie można było pisać w różnych gęstościach, wybierając różne ścieżki i sektory w inny sposób. Ale nie ma to sensu w przypadku większości nowoczesnych mediów. Pojęcie organizacji danych na urządzeniu jest stałe i niezmienne. Nie ma to żadnego sensu dla lampy błyskowej, która ma dyskretne bity, a nie domeny magnetyczne. Możliwe jest formatowanie na wyższym poziomie, czyli mkfsw unix-land.


Więc jeśli system plików na dysku flash mojego przyjaciela jest popsuty, czy mkfsjest to jego jedyna opcja? Co jeśli to nie zadziała? Nie ma nic innego, czego mógłby spróbować?
bmaupin

@Bryan: cóż, mógłby także spróbować fsck, odpowiednik dos chkdsk.
wnoise

3
@wnoise jeśli mkfszawiedzie, fscknie pomoże.
derobert,

2
Testuję mnóstwo pamięci flash USB w pracy, a jej jakość jest na całej mapie, więc nie zdziwiłbym się, gdyby dysk twojego przyjaciela został po prostu zepsuty i nie mógł już działać. Te rzeczy mogą się zepsuć na wiele różnych sposobów i niewiele można na to poradzić, oprócz kupowania pamięci z renomowanych źródeł, a następnie testowania jej pod kątem f3pewności, że nie jest zepsuta.
unfa

8

Formatowanie niskiego poziomu oznacza wiele różnych rzeczy dla różnych osób i w różnych kontekstach.

Pierwotne znaczenie było krokiem w formatowaniu dysków - napędy dyskowe wymagają nagłówka, synchronizacji i innych wzorców zapisanych na nośniku, zanim będzie mógł przechowywać na nim dane. W ten sposób głowica może wykryć, kiedy znajduje się A) na torze i B) gdzie jest na torze. Formatowanie niskiego poziomu dyskietki przygotowuje dysk do odczytu i zapisu bloków. Wczesne dyski twarde PC MFM i RLL można sformatować na niskim poziomie, często przy użyciu narzędzia wbudowanego w ROM kontrolera dysku twardego (karta ISA). Nowoczesne dyski twarde IDE i SATA są również sformatowane niskopoziomowo, ale tylko fabrycznie.

Różne inne znaczenia obejmują zapisywanie zer do wszystkich bloków, konfigurowanie napędu w celu wyłączenia „ukrytych” obszarów, takich jak HPA i DCO, a następnie zerowanie wszystkich bloków lub inne rzeczy bardziej związane z partycjonowaniem niż formatowaniem.

Surowy flash wymaga innego wstępnego kroku przygotowawczego w fabryce - każdy „kasujący blok” flasha (analogicznie do „bloku” na dyskach) musi zostać przetestowany i oznaczony jako zły, jeśli rzeczywiście jest zły. Każdy „eraseblock” ma dodatkowy mały blok „OOB”, który zawiera informacje o korekcji błędów - i właśnie tam jest oznaczony jako zły. NIE chcesz powtarzać tego kroku, ponieważ pisanie do złego bloku może uniemożliwić ponowne ustawienie tego konkretnego bitu, który identyfikuje go jako zły.

Ale nie masz do czynienia z surowym flashem. Masz do czynienia z dyskiem flash USB. We wszystkich dyskach flash znajduje się układ kontrolera, który przyjmuje polecenia USB od hosta i rozmawia z surową pamięcią flash w imieniu hosta. Niektóre z tych układów kontrolerów można skonfigurować tak, aby zgłaszały część pamięci flash jako oddzielną partycję CD-ROM lub działały jak dwa oddzielne urządzenia pamięci USB. W zależności od marki i modelu układu kontrolera możesz znaleźć narzędzie do odzyskiwania lub konfiguracji (prawdopodobnie tylko system Windows), które może zresetować ten układ kontrolera. Zaczynasz od otwarcia dysku flash, szukania mniejszego (prawdopodobnie) dwóch układów znajdujących się na małej płytce drukowanej i zrobienia Google'a. Marka i model wydrukowany na zewnątrz obudowy raczej nie pomogą ci ustalić, kto w niej umieścił kontroler.


7

Nie ma możliwości zrobienia formatu niskiego poziomu na większości urządzeń flash, ponieważ mają one dodatkową warstwę tłumaczenia z USB / ATA / SD / itp. na MTD, który przesłania niskopoziomowe urządzenia MTD (które można sformatować na niskim poziomie, jeśli dojdzie się bezpośrednio [czego nie można]).


6

użyj dddo tego poleceniadd if=/dev/zero of=/dev/hda

Spowoduje to zniszczenie WSZYSTKICH danych na dysku twardym, wszystkich informacji o sektorze rozruchowym i wszystkich danych na wszystkich partycjach. Nie spowoduje to jednak, że dysk będzie bezużyteczny, po prostu masz czysty dysk, który wymaga tylko utworzenia partycji i zainstalowania nowego sektora rozruchowego, co nastąpi po zainstalowaniu dowolnego systemu operacyjnego, w tym Linux lub Windows. Jest to dobry sposób na usunięcie wszelkich złych partycji, wirusów, nieudanych instalacji lub danych, których nie chcesz widzieć.


4
Zdajesz nie chcą używać /dev/zero, aby usunąć urządzenie pamięci flash. Zobacz wpis na moim blogu: fakkelbrigade.eu/chris/blog/2012/01/...
Chris Down

1
Zapisywanie / dev / zero na urządzeniu flash nie jest wyjątkowo błędne. Jedyną zaletą, jaką daje zapis 1s na urządzeniu, jest to, że następnym razem możesz zapisywać na dysku nieco szybciej, ponieważ nie trzeba go najpierw wymazywać - i to zależy od inteligentnej warstwy translacji flash.
Shawn J. Goff

2
@ChrisDown, Nie jestem pewien, jak wypada pod względem wydajności, ale możesz użyć badblocks -s -w -t 0xff /dev/?d??. Otrzymasz wszystkie 1 napisane i przetestowane.
Zoredache

2
@ChrisDown Twój wpis na blogu jest zgodny z 404.
derobert,

1
Jeśli flash wewnętrznie kasuje się do wszystkich, wówczas warstwa translacji powinna odwracać bity, ponieważ zwykle formatuje się dyski ze wszystkimi zerami.
psusi


2

W przeszłości spotkałem się z urządzeniami (choć nie przez jakiś czas), które implementują polecenie SCSI FORMAT UNIT - z Linuksa możesz użyć:

sg_format --format / dev / sdX

aby zresetować te urządzenia do stanu fabrycznego (specyfikacja pamięci USB pochodzi ze starszych standardów SCSI).

Wierzę, że niektóre nowsze urządzenia USB 3 również implementują polecenia bezpieczeństwa ATA, więc możesz użyć https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase, co może skutkować zresetowaniem warstwy translacji Flash do jej fabryki stan (jak zwykle w przypadku dysków SSD).


1

Istnieje coś takiego jak niskopoziomowy format pamięci Flash, ale odbywa się to w fabrykach z oprogramowaniem specyficznym dla dostawcy.

Aby to zrobić - musisz porozmawiać bezpośrednio z układem kontrolera pamięci. Niestety nie mogłem znaleźć programów, które mogłyby to zrobić w systemie Linux.

Istnieją narzędzia producenta, które przeprowadzają formatowanie niskiego poziomu i mogą zapisywać niektóre ustawienia (takie jak zachowanie diody LED, czyniąc dysk tylko do odczytu) i dane (takie jak nazwa producenta, nazwa modelu, numer seryjny) na chipsecie kontrolera pamięci, ale narzędzia te zwykle są tworzone tylko dla systemu Windows i często są w języku chińskim.

Jedno z takich narzędzi nosi nazwę „FC MP Tools”. O ile wiem, są one zaprojektowane przez Alcor Micro i wyprodukowane przez FirstChip (FC). Najwyraźniej „MP” oznacza „masową produkcję”.

Korzystam z wersji, którą znalazłem tutaj: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

Inne linki, które możesz śledzić: 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

Działa w Wine, ale nie wykrywa chipsetów napędu (prawdopodobnie potrzebuje bezpośredniego dostępu do kontrolera USB, aby to zrobić).

Ponadto - aby to działało, musisz mieć napęd flash z określonym obsługiwanym mikroukładem Alcor. Znowu - każdy sprzedawca ma własne oprogramowanie, które komunikuje się z układami kontrolera przez USB.

Mam to:

wprowadź opis zdjęcia tutaj

Zanotuj numer części chipsetu w mikrokontrolerze: FC1178 BC1 Program FC MP Tools rozpozna to jako chipset 1178BC :

wprowadź opis zdjęcia tutaj

A oprogramowanie, które podłączyłem, działa z nim pod Windows XP i 10. Jednak - zawiesi się, jeśli przełączysz program na język angielski! Ustaw preferencje w języku angielskim, a następnie uruchom ponownie program i nie zmieniaj języka - powinien on działać. Może zostanie to naprawione w nowszej wersji.

W każdym razie - różni dostawcy mają różne narzędzia, jest to królicza dziura, nie ma tutaj standardu AFAIK i (przynajmniej to narzędzie) niestety działa tylko w systemie Windows.

Z tego, co mogę powiedzieć, to przetestuje układ pamięci i zapisze mapę uszkodzonego sektora do układu kontrolera, aby mógł prezentować tylko dobrą pamięć dla systemu operacyjnego. W ten sposób można używać i sprzedawać nawet częściowo uszkodzone wióry. Prawdopodobnie są one sortowane w fabryce według jakości i niskiego poziomu sformatowane do różnych pojemności. Nazywa się to binowaniem.

Może jeśli ktoś może zebrać wiele z tych narzędzi, poddać je inżynierii wstecznej i stworzyć uniwersalne narzędzie open source dla Linuksa, możemy to zrobić - w przeciwnym razie nie widzę tego.


1

Chociaż formatowanie niskiego poziomu w sposób, w jaki zostało to zrobione na dyskach twardych i dyskietkach, nie ma sensu w przypadku dysku flash, istnieją specjalne narzędzia producenta do dysków flash „niskiego poziomu”: Jest to przykład: narzędzie do formatowania niskiego poziomu Alcor

Zadałem sobie to pytanie, szukając takiego narzędzia, które działałoby w systemie Linux. Wydaje się jednak, że producenci dysków flash nie dbają o to, aby nas uszczęśliwić.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.