Linux에서 로우 레벨 포맷 플래시 메모리를 어떻게 사용할 수 있습니까?


13

제 친구는 USB 플래시 드라이브에 문제가 있었고 저수준 포맷을 제안했습니다. 그런 다음 Linux에서 어떻게 해야하는지조차 알지 못했습니다. 그렇다면 ... 어떻게 리눅스에서 저수준 포맷 플래시 메모리를 사용할 수 있습니까? 내 친구가 Windows의 드라이브에서 "전체 형식"을 시도했지만 실패했습니다.

답변:


12

"낮은 레벨 서식"은 플로피에서 수행되었으며, 트랙과 섹터를 다르게 구성하여 다른 밀도로 쓸 수 있습니다. 그러나 이것은 대부분의 현대 미디어에는 의미가 없습니다. 장치에서 데이터를 구성하는 방법에 대한 개념은 고정되어 있으며 변경할 수 없습니다. 자성 영역이 아닌 이산 비트를 갖는 플래시에는 전혀 의미가 없습니다. mkfs유닉스 랜드에 있는 더 높은 레벨의 포맷이 가능합니다 .


친구의 플래시 드라이브에있는 파일 시스템이 엉망인 mkfs경우 유일한 옵션일까요? 그래도 작동하지 않으면 어떻게합니까? 그가 시도 할 수있는 게 또 없나요?
bmaupin

@Bryan : 글쎄, 그는 fsckdos '와 동등한 것을 시도 할 수 있습니다 chkdsk.
wnoise

3
@wnoise가 mkfs실패하면 fsck도움이되지 않습니다.
derobert

2
나는 직장에서 수많은 플래시 USB 메모리를 테스트하고 그 품질은 전 세계에 걸쳐 있습니다. 그래서 친구의 드라이브가 고장 나서 더 이상 작동하지 않더라도 놀라지 않을 것입니다. 이러한 것들은 여러 가지 방법으로 깨질 수 있으며 평판 좋은 소스에서 메모리를 구입 한 다음 테스트하여 메모리가 f3손상되지 않았는지 확인하는 것 외에는 할 수있는 일이 많지 않습니다.
unfa

8

낮은 수준의 서식은 사람들과 상황에 따라 다른 많은 것을 의미합니다.

원래 의미는 디스크 포맷에 필요한 단계였습니다. 디스크 드라이브는 미디어에 데이터를 저장하기 전에 미디어에 쓰여진 헤더, 동기화 및 기타 패턴이 필요합니다. 이러한 방식으로 헤드는 트랙에서 A) 트랙에서 B) 위치를 감지 할 수 있습니다. 플로피를 저수준으로 포맷하면 디스크가 블록을 읽고 쓸 수 있도록 준비됩니다. 초기 MFM 및 RLL PC 하드 드라이브는 종종 하드 드라이브 컨트롤러 (ISA 카드) ROM에 내장 된 유틸리티를 사용하여 낮은 수준으로 포맷 될 수 있습니다. 최신 IDE 및 SATA 하드 드라이브도 하위 수준으로 포맷되어 있지만 출고시에만 해당됩니다.

다양한 다른 의미로는 모든 블록에 0을 쓰는 것, HPA 및 DCO와 같은 "숨겨진"영역을 비활성화하도록 드라이브를 구성한 다음 모든 블록을 제로하는 것 또는 형식화보다 파티셔닝과 관련된 다른 것들이 있습니다.

원시 플래시는 출고시 초기 준비 단계가 달라야합니다. 각 플래시 "삭제 블록"(디스크의 "블록"에 대한 아날로그)은 실제로 불량 인 경우 테스트하고 불량으로 표시해야합니다. 각 "삭제 블록"에는 오류 수정 정보를 보유하는 작은 "OOB"블록이 추가로 있습니다.이 위치는 불량으로 표시됩니다. 불량 블록에 쓰는 행위로 인해 해당 비트를 불량으로 식별하는 특정 비트를 다시 설정하지 못할 수 있으므로이 단계를 반복하고 싶지 않습니다.

그러나 당신은 원시 플래시를 다루지 않습니다. USB 플래시 드라이브를 다루고 있습니다. 모든 플래시 드라이브에는 호스트로부터 USB 명령을 받아들이고 호스트를 대신하여 원시 플래시와 통신하는 컨트롤러 칩이 있습니다. 이러한 컨트롤러 칩 중 일부는 플래시의 일부를 별도의 CD-ROM 파티션으로보고하거나 두 개의 별도 USB 저장 장치처럼 작동하도록 구성 할 수 있습니다. 컨트롤러 칩의 제조업체와 모델에 따라이 컨트롤러 칩을 재설정 할 수있는 복구 또는 구성 유틸리티 (예 : Windows 만 해당)를 찾을 수 있습니다. 플래시 드라이브를 열고 작은 PCB에있는 두 개의 작은 칩을 찾고 인터넷 검색을 시작하여 시작합니다. 케이스 외부에 인쇄 된 제조업체와 모델은 컨트롤러를 만든 사람을 찾는 데 도움이되지 않습니다.


7

대부분의 플래시 장치에는 USB / ATA / SD / etc의 추가 변환 계층이 있으므로 저수준 포맷을 수행 할 방법없습니다 . 에 MTD 낮은 수준의 MTD 장치 모호 ( 에 직접받은 경우 포맷 낮은 수준의 일을 [하는 당신 수 없습니다).


6

dd이것에 대한 명령을 사용dd if=/dev/zero of=/dev/hda

하드 드라이브의 모든 데이터, 모든 부트 섹터 정보 및 모든 파티션의 모든 데이터가 삭제됩니다. 그러나 디스크를 쓸모 없게 만들지 않을 것입니다. 파티션을 만들고 새 부트 섹터를 설치하기 만하면되는 깨끗한 디스크 만 있으면됩니다. 이는 Linux 또는 Windows를 포함한 OS를 설치할 때 발생합니다. 이는 원하지 않는 나쁜 파티션, 바이러스, 병입 설치 또는 데이터를 정리하는 좋은 방법입니다.


4
플래시 메모리 장치를 지우는 데 사용하고 싶지 않습니다/dev/zero . 내 블로그의 항목을 참조하십시오 : fakkelbrigade.eu/chris/blog/2012/01/…
Chris Down

1
플래시 장치에 / dev / zero를 쓰는 것은 매우 잘못된 일이 아닙니다. 장치에 1을 쓰면 얻을 수있는 유일한 이점은 디스크를 먼저 지울 필요가 없기 때문에 다음에 디스크에 쓸 때 쓰기 시간이 약간 빨라질 수 있다는 것입니다. 이는 플래시 변환 계층이 똑똑하기 때문입니다.
Shawn J. Goff

2
@ChrisDown, 성능 비교 방법을 잘 모르지만을 사용할 수 있습니다 badblocks -s -w -t 0xff /dev/?d??. 1을 모두 작성하고 테스트했습니다.
Zoredache

2
@ChrisDown 블로그 항목이 404를 준수했습니다.
derobert

1
플래시가 내부적으로 모든 플래시 메모리를 지우면 변환 레이어 디스크를 모두 0으로 포맷하는 것이 일반적이므로 비트를 반전 시켜야 합니다.
psusi


2

나는 SCSI FORMAT UNIT 명령을 구현하는 과거의 장치를 보았습니다. (Linux는 아니지만)

sg_format --format / dev / sdX

이러한 장치를 출고시 상태로 재설정합니다 (USB 저장소 사양은 이전 SCSI 표준에서 파생 됨).

일부 최신 USB 3 장치도 ATA 보안 명령을 구현한다고 생각하므로 플래시 번역 레이어를 공장으로 재설정 할 수있는 https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase 를 사용할 수 있습니다 상태 (일반적으로 SSD와 동일).


1

플래시 메모리를위한 저수준 포맷과 같은 것이 있지만 벤더별 소프트웨어가있는 공장에서 이루어집니다.

그렇게하려면-메모리 컨트롤러 칩과 직접 대화해야합니다. 불행히도 나는 리눅스에서 그것을 할 수있는 프로그램을 찾을 수 없었다.

저수준 포맷을 수행하고 일부 설정 (예 : LED 동작, 드라이브를 읽기 전용으로 설정) 및 데이터 (제조업체 이름, 모델 이름, 일련 번호 등)를 메모리 컨트롤러 칩셋에 쓸 수있는 제조업체 도구가 있지만 이러한 도구는 일반적으로 Windows 전용이며 종종 중국어로 제공됩니다.

이러한 도구 중 하나를 "FC MP 도구"라고합니다. 내가 알 수있는 한, 이들은 Alcor Micro에 의해 설계 되었으며 FirstChip (FC)에 의해 제조되었습니다. 분명히 "MP"는 "대량 생산"을 나타냅니다.

http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip 에서 찾은 버전을 사용하고 있습니다.

당신이 따를 수있는 다른 링크 : 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

Wine에서 실행되지만 드라이브 칩셋을 감지하지 못합니다 (아마도 USB 컨트롤러에 직접 액세스해야 할 수도 있습니다).

또한이 기능을 사용하려면 지원되는 특정 Alcor 칩셋이있는 플래시 드라이브가 있어야합니다. 다시 말하지만 각 공급 업체에는 USB를 통해 컨트롤러 칩과 통신하는 자체 소프트웨어가 있습니다.

나는 이것을 가지고있다:

여기에 이미지 설명을 입력하십시오

마이크로 컨트롤러의 칩셋 부품 번호를 참고하십시오. FC1178 BC1 FC MP Tools 프로그램은이를 1178BC 칩셋 으로 식별합니다 .

여기에 이미지 설명을 입력하십시오

그리고 내가 링크 한 소프트웨어는 Windows XP 및 10에서 작동합니다. 그러나 프로그램을 영어로 전환하면 작동이 중단됩니다! 기본 설정을 영어로 설정 한 다음 프로그램을 다시 시작하고 언어를 변경하지 마십시오. 작동합니다. 아마도 최신 버전에서 수정 될 것입니다.

어쨌든-공급 업체마다 다른 도구가 있으며 토끼 구멍이며 AFAIK에는 표준이 없으며 (적어도이 도구는) 불행히도 Windows에서만 작동합니다.

내가 알 수 있듯이, 이것은 메모리 칩을 테스트하고 불량 섹터 맵을 컨트롤러 칩에 기록하므로 OS에 좋은 메모리 만 제공 할 수 있습니다. 이러한 방식으로 부분적으로 손상된 칩도 사용 및 판매 할 수 있습니다. 이것들은 아마도 공장에서 품질에 따라 분류되며 저용량은 다른 용량으로 포맷됩니다. 이것을 비닝이라고합니다.

누군가가 이러한 도구를 많이 수집하고 리버스 엔지니어링하고 Linux 용 범용 오픈 소스 도구를 만들 수 있다면 그렇게 할 수 있습니다.


1

이 플래시 드라이브에 대한 이해가되지 않는 하드 디스크 드라이브와 플로피 드라이브에서 수행 된 방식으로 포맷 낮은 수준이지만, "로우 레벨 포맷"플래시 드라이브에 존재 제조업체의 특정 유틸리티가 수행 :이 예는 다음과 같습니다 ALCOR 낮은 수준 포맷 유틸리티

Linux에서 작동하는 유틸리티를 찾는 동안이 질문에 빠져 들었습니다. 그러나 플래시 드라이브 제조업체는 우리를 행복하게 만드는 것에 신경 쓰지 않는 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.