내 오래된 128GB SSD 드라이브는 현재 1 년 반 정도되었으며 이후 다른 드라이브로 업그레이드했습니다.
기존 SSD를 정리하고 싶습니다 ...
성능을 거의 새로운 수준으로 복원
재활 및 일반적으로 건강 검진
이 작업은 어떻게합니까?
내 오래된 128GB SSD 드라이브는 현재 1 년 반 정도되었으며 이후 다른 드라이브로 업그레이드했습니다.
기존 SSD를 정리하고 싶습니다 ...
성능을 거의 새로운 수준으로 복원
재활 및 일반적으로 건강 검진
이 작업은 어떻게합니까?
답변:
Linux에서 간단히 실행
hdparm --trim-sector-ranges start:count /dev/sda
대신 TRIM하려는 블록 범위 start
와 대신 count
SSD 장치를 전달합니다 /dev/sda
. 속도가 빠르며 드라이브에 0을 쓰지 않는 이점이 있습니다. 오히려 TRIM 명령을 SSD 컨트롤러에 전송하여 해당 블록의 데이터에 신경 쓰지 않으며 가비지 수집 알고리즘에서 사용되지 않는다고 가정 할 수 있습니다.
이 명령을 루트로 실행해야합니다. 이 명령은 큰 데이터 손실을 즉시 유발할 수 있으므로 매우 위험하므로 --please-destroy-my-drive
인수를 전달해야 합니다 hdparm
(복사 및 붙여 넣기로 인한 우발적 인 데이터 손실을 방지하기 위해 명령 행에 추가하지 않았습니다).
위의 명령 줄에서 /dev/sda
TRIM 명령을 보내려는 SSD 장치로 교체해야합니다. start
TRIM에 대한 첫 번째 블록 (섹터)의 주소이며 count
해당 시작 주소에서 해제 된 것으로 표시 할 블록 수입니다. 여러 범위를 명령에 전달할 수 있습니다.
128GB Crucial RealSSD C300이있는 랩톱의 Ubuntu 11.04에서 hdparm v9.32로 개인적으로 수행 한 후 문제를 지적해야합니다. 전체 디스크 블록 수 (0 : 250069680)를 범위로 전달할 수 없었습니다. . 수동으로 (필수적으로 "이진 검색") 수동으로 작동하는 블록 수 (40000)에 대해 충분히 큰 값을 찾았으며 40000 범위의 시퀀스에서 TRIM 명령을 실행하여 전체 디스크를 비울 수있었습니다. 다음과 같은 간단한 쉘 스크립트를 사용하면 가능합니다 (루트 아래 우분투 11.04에서 테스트) :
# fdisk -lu /dev/sda
Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
...
전체 드라이브를 지우려면 총 섹터 수를 취하고 다음 줄에서 250069680을 해당 숫자로 바꾸고 실행하십시오 ( --please-destroy-my-drive
) :
# i=0; while [ $i -lt 250069680 ]; do echo $i:40000; i=$(((i+40000))); done \
| hdparm --trim-sector-ranges-stdin /dev/sda
그리고 당신은 끝났습니다! hexedit /dev/sda
전후에 디스크의 원시 내용을 읽어 보고 드라이브가 데이터를 삭제했는지 확인할 수 있습니다.
물론 Linux를 시스템의 기본 OS로 사용하지 않더라도 라이브 CD를 부팅하고 드라이브에서 실행하여이 트릭을 활용할 수 있습니다.
먼저 성능 저하의 원인을 이해하는 것으로 시작하겠습니다. 이것을 알지 못하면 많은 사람들이 부적절한 해결책을 제안 할 것입니다 (이미 일어나고있는 것처럼). 이 전체 곤경의 요점은 기본적으로 Wikipedia 에서 인용 한 것처럼 다음 사실로 귀착됩니다 . 그것을 기억하십시오, 그것은 중요합니다 :
NAND 플래시 메모리를 사용하면 읽기 및 프로그래밍 작업을 한 번에 한 페이지 씩 수행해야하며 잠금 해제 및 지우기는 블록 단위 방식으로 수행해야합니다.
SSD는 NAND 플래시로 구성되며 플래시는 "블록"으로 구성됩니다. 각 블록은 많은 "페이지"를 포함합니다. 간단하게하기 위해 방대한 단일 메모리 블록이 포함 된 반짝이는 새로운 SSD를 구입했으며 그 블록이 4 개의 빈 페이지로 구성되어 있다고 가정 해 봅시다.
명확성을 기하기 위해 빈 페이지, 사용 된 페이지 및 삭제 된 페이지를 ∅, 1 및 X 로 구분합니다. 컨트롤러 관점에서 이들 각각의 차이점 이 있다는 것이 핵심 입니다! 1과 0만큼 간단하지 않습니다. 따라서, 새로운 드라이브의 페이지는 다음과 같습니다.
∅, ∅, ∅, ∅ (모두 비어 있음)
이제 드라이브에 데이터를 쓰면 첫 페이지에 저장됩니다.
1, ∅, ∅, ∅
다음으로 우리는 조금 더 많은 데이터를 작성합니다. 이번에는 두 페이지가 필요하므로 두 번째와 세 번째 페이지에 저장됩니다.
1, 1, 1, ∅
공간이 부족합니다! 우리는 우리가 작성한 초기 데이터가 실제로 필요하지 않다고 결정하므로 삭제하기 위해 삭제하십시오. :
X, 1, 1, ∅
마지막으로, 나머지 두 페이지를 소비 할 저장해야 할 또 다른 대규모 데이터 집합이 있습니다. 이것은 트림없이 드라이브에서 성능이 발휘되는 곳입니다 !! 마지막 상태에서 이것으로
1, 1, 1, 1
... 대부분의 사람들이 알고있는 것보다 더 많은 작업이 필요합니다. 다시 말하지만 이는 플래시가 페이지 단위가 아닌 블록 단위 방식으로 만 지워질 수 있기 때문입니다. 이는 위의 최종 전환이 요구하는 것입니다. TRIM과 비 TRIM 기반 SSD의 차이점 은 다음 작업을 수행 할 때 입니다.
빈 페이지와 삭제 된 페이지를 사용해야하므로 SSD는 먼저 전체 블록의 내용을 일부 외부 저장소 / 메모리로 읽고 원본 블록을 지우고 내용을 수정 한 다음 해당 내용을 다시 기록해야합니다. 블록. "쓰기"만큼 간단하지 않고 이제 "읽기-지우기-쓰기"가됩니다. 이것은 큰 변화이며, 많은 양의 데이터를 쓰는 동안 일어날 수있는 일은 아마도 그것이 일어날 수있는 가장 부적절한 시간 일 것입니다. 해당 "삭제 된"페이지가 미리 복구 된 경우이를 방지 할 수 있습니다. 바로 TRIM의 의도입니다. TRIM을 사용하면 SSD는 삭제 직후 또는 삭제 된 페이지가 TRIM 알고리즘으로 적절하다고 판단 될 때 삭제 된 페이지를 복구합니다. 중요한 부분은 TRIM을 사용하면 쓰기 도중에 발생하지 않는다는 것입니다.
TRIM이 없으면 드라이브로 데이터를 채울 때 위의 시나리오를 피할 수 없습니다. 고맙게도 일부 최신 SSD는 TRIM을 뛰어 넘고 필요한 ATA 명령 (일부 가비지 수집이라고 함)없이 하드웨어 수준에서 백그라운드에서 TRIM과 동일한 작업을 효과적으로 수행합니다. 그러나 운이 좋지 않은 사람들에게는 전체 드라이브에 0을 쓰는 것이 원래 성능을 되찾기에 충분하지 않다는 것을 아는 것이 중요합니다 !! 드라이브에 0을 모두 쓰더라도 플래시의 페이지에 쓸 수 있음을 컨트롤러에 표시하지 않습니다. TRIM을 지원하지 않는 드라이브에서이를 수행하는 유일한 방법은 Wayback Machine을 통해 HDDErase 와 같은 도구를 사용하여 드라이브에서 ATA 보안 지우기 명령을 호출하는 것 입니다.
나는 생각 만 삭제 파티션에 또는 Windows 7의 "diskpart를 모두 깨끗한", 그리고 개별 파일의 삭제시 같은 것들에 TRIM을 지원하는 일부 초기 SSD의의가 있었다. 오래된 드라이브가 해당 명령을 실행할 때 성능을 회복하는 것처럼 보이는 이유 일 수 있습니다. 그래도 조금 흐릿 해 보입니다 ...
SSD 및 하드웨어 / 가제트에 대한 내 지식의 대부분은 anandtech.com 에서 온 것 입니다. 나는 그가이 모든 것을 설명하는 대단한 글을 썼다고 생각했지만 내 인생을 위해 나는 그것을 찾을 수 없다!
분명히 표준 권장 사항은 모든 0을 전체 드라이브로 작성하는 것입니다. 나는 아니에요 완전히 이 (쓰기의 많은 결국 SSD를 죽이지 않는다?)하는 데 도움이 확실한 이유가 있지만 주요 공급 업체의 SSD 지원 포럼에 의해 승인 될 것처럼 보인다.
그래서 Windows에서 그렇게하려면 :
diskpart
유틸리티에 들어가면 DISKPART>
프롬프트가 표시되고 다음 명령을 실행하십시오.
DISKPART> list disk
DISKPART> select disk x
물론, 올바른 SSD 드라이브를 선택했는지 확인 하기 전에!
DISKPART> clean all
DISKPART> create partition primary
DISKPART> format quick fs=NTFS
마법은 여기 clean all
있는 드라이브에 모두 0을 기록한다 :
all 매개 변수를 지정하면 각 섹터를 모두 0으로 만들 수 있으며 드라이브에 포함 된 모든 데이터를 삭제할 수 있습니다.
이 작업을 수행 한 후 디스크 성능이 크게 향상되었음을 확인할 수 있습니다.
또한 SSD Life Pro 도구를 찾았습니다 . 나에게 나쁜 소식이있다.
그것을 계산하는 방법에 관해서는 SMART SSD 표시기를 사용합니다. 분명히 SMART 데이터를 기반으로 예측하려고합니다 .
추정하기 위해 데이터가 작성된 시점 을 알아야하기 때문에 까다 롭지 만 기본 데이터는 다음과 같습니다.
01 읽기 오류율 7 09 시작 시간 수 7085 0C 전원 사이클 수 318 B8 초기 불량 블록 수 15 C3 프로그램 실패 블록 수 0 C4 지우기 실패 블록 수 0 C5 읽기 실패 블록 수 0 C6 읽기 섹터 5468243171 C7 쓰기 섹터 41640920876 C8 읽기 명령 100482453 C9 쓰기 명령 417315851 플래시의 CA 오류 비트 345270 수정 가능한 비트 오류 340001의 CB 읽기 섹터 CC 불량 블록 전체 플래그 0 CD 최대 P / E 수 사양 5000 CE 최소 지우기 수 3774 CF 최대 지우기 수 65348 D0 평균 지우기 수 4837 D1 잔여 드라이브 수명 4
무서운 숫자 는 4 .. %의 남은 드라이브 수명 입니다 !
그리고 결과 계산 :
모델 : CRUCIAL_CT128M225 크기 : 128GB 일련 번호 : xxxxxxxxxxxxxxxxx456 펌웨어 : 2030 가동 시간 : 318 드라이브 / OS에서 TRIM 지원 : 활성화 / 활성화 근무 시간 : 9 개월 16 일 5 시간 읽은 총 데이터 : 2607.46 GB 서면 : 19855.94 GB
기록을 위해이 드라이브는 원래 2009 년 10 월에 구입되었으므로 1 년 반이 조금 넘었습니다.
드라이브를 통해 0을 쓰는 것이 최선의 방법은 아니라는 것을 알았습니다. 단기적으로 도움이 될 수는 있지만 드라이브가 최대 성능으로 복원되지는 않는다는 것을 알았습니다 (트리밍을 사용하지 않는 오래된 Intel-SSD가 있습니다). 1 ~ 2 년 동안 상당히 많은 사용량을 소비 한 후 SSD를 0으로 설정 한 후에도 SSD 가 모든 파일 에 쓰려고 할 때 1-2 초 동안 멈추기 시작했습니다.
내가 찾은 유일한 것은 성능을 완전히 복원한다는 것은을 사용 하는 안전한 지우기 였습니다 hdparm
. SSD가 약간의 딸꾹질을 경험하기 시작할 때마다 6-12 개월마다 SSD를 안전하게 지우는 습관을 들였습니다. Macrumors의 누군가 가 mac * 장비를 사용하는 방법에 대한 Mac 관련 튜토리얼 을 만들었습니다 .
내가 본 모든 주장에 따르면, 보안 지우기는 SSD에 특수 명령을 전송하여 SSD를 사용하여 훨씬 낮은 수준에서 모든 섹터를 0으로 설정합니다 dd
.
Mac에서는 digilloydTools DiskTester를 확인하십시오 . 드라이브 성능에 대한 재조정의 영향을 확인할 수있는 흥미로운 데이터 포인트도 있습니다.
cat /dev/zero > /tmp/bigfile
.
ThinkPad에는 SSD를 재설정 하는 숨겨진 BIOS 메뉴 ( http://www-307.ibm.com/pc/support/site.wss/MIGR-68369.html 사용 )가 있습니다.
(솔리드 스테이트 드라이브) ssd에 남아있는 ssd 수명을 확인하려면 smartmontools 패키지를 설치해야합니다. 최신 ATA 및 SCSI 하드 디스크에 내장 된 SMART (Self-Monitoring, Analysis and Reporting Technology System)를 사용하여 스토리지 시스템을 제어하고 모니터링하는 두 가지 유틸리티 프로그램 (smartctl 및 smartd)이 포함되어 있습니다.
우분투, 민트 또는 데비안 기반 배포판
# apt-get install smartmontools
For Fedora, Centos, or Red Hat based distributions
# yum install smartmontools
Media_Wearout_Indicator가 찾고 있습니다. 100은 ssd의 수명이 100 %임을 의미하고 숫자가 낮을수록 남은 수명이 줄어 듭니다.
# smartctl -a /dev/sda | grep Media_Wearout_Indicator
내 노트북에서 출력
233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0
드라이브에서 자세한 내용과 전체 속성을 보려면 다음을 실행하십시오.
# smartctl -data -A /dev/sda
출처 : namhuy.net/1024/how-to-check-ssd-life-left.html