SSD의 데이터 복구가 어려운 이유

HDD보다 어려운 SSD 데이터 복구

현재 SSD의 출하량은 크게 늘어나고 있다. 2015년에는 전세계 8천만대도 팔리지 않았으나 2018년에는 1억 6715만대로 늘어났다. 하드디스크는 4억 6883만대에서 3억 7929만대로 감소했다.

데이터 복구의 경우 단순한 SSD 뿐만 아니라 플래시 메모리를 탑재한 제품의 의뢰가 갈수록 늘어나고 있다. 메모리카드나 스마트폰, 태블릿이 이에 해당된다.

플래시 메모리는 하드디스크와 구조가 완전히 다르다. 하드디스크는 섹터에 순서대로 데이터를 기록하지만, 플래시 메모리는 기록할 때마다 컨트롤러가 위치를 판단한다.

낸드 플래시 메모리는 메모리 셀 어레이의 워드 라인에 데이터를 기록한다. 비트라인이 워드라인의 수를 파악하 컨트롤러에 정보를 보내며, 데이터 삭제는 그 블럭 단위로 진행한다.

플래시 메모리는 하드디스크처럼 특정 위치의 데이터만 재기록하는게 불가능하며 페이지 단위로 기록한다. 특정 부분에 기록을 많이 하면 플래시 메모리가 열화되기 때문에, 모든 부분을 균일하게 사용하도록 컨트롤러가 개입한다.

하나의 페이지를 기록하는데 쓴 데이터의 양이 너무 적어도 페이지 전체의 데이터 리프레시가 이루어진다. 모든 데이터를 0으로 기록해도 플래시 메모리 내부에는 0이 아닌 부분이 생길 수 있다. 재기록이 필요 없는 부분도 컨트롤러가 임의로 재기록하기 때문이다.

플래시 메모리의 열화를 막기 위해 불필요한 데이터를 삭제하고 페이지도 정리한다. 최근 SSD와 운영체제는 자체 관리 기능이 뛰어나 웨어 레벨링과 트림이 즉시 진행되기에 1시간이 지나면 데이터가 상당 부분 교체된다.


저장장치 ssd, hdd

또 슬림형 PC는 크기를 줄이기 위해 기판에 직접 플래시 메모리를 납땜하는 경우가 많다. 그래서 데이터 복구와 시스템 관리가 어렵다.

바이오스가 UEFI로 바뀐 것도 플래시 메모리의 복구에 어려움을 줍니다. 바이오스는 하드디스크의 마스터 부트 레코드 MBR을 읽어 논리 볼륨을 얼마나 쓸지를 결정하고, 커널을 부팅한 다음 부트로더가 OS 커널을 불러오고 메인보드 드라이버를 정하고 OS를 부팅한다.

UEFI는 EFI 파티션을 찾아서 부팅한다. 일반 바이오스는 MBR이 하드디스크의 가장 앞에 있어야 했지만 UEFI는 EFI 파티션이 뒤에 있어도 바로 부팅이 된다. 그래서 MBR의 복구 방식이 달라질 수밖에 없다.

애플의 경우 원래 파이어와이어나 USB 포트로 부팅이 가능하지만, 애플 T2 보안칩을 탑재한 맥은 보안 칩이 포트를 아예 막아버리기에 부팅할 경로가 줄어든다. 마이크로소프트 서피스도 마찬가지.

하드디스크도 복구가 어려워졌다. SMR(Shingled Magnetic Recording) 기술을 도입하면서 가비지 컬렉션(SSD의 웨어 레벨링) 이후 불필요한 데이터가 삭제되기에 데이터 복원이 어려워진다.

컨트롤러 부하를 줄이기 위해 4K 네이티브 포맷을 쓰는 SSD는 섹터 당 512바이트에 8개로 구성하는 게 아니라, 4096바이트 개로 구성된다. OS가 8개의 512바이트와 1개의 4096바이트를 접근할 때 격차가 발생하는 경우가 생긴다.

아이폰이나 안드로이드 7 이상 버전에선 파일 포맷 암호화가 진행돼 복구가 불가능한다. 파일 암호화는 100개의 데이터를 만들 때 100개의 암호화가 진행된 데이터를 만들기 때문이다.

팩토리 리셋을 하면 스마트폰의 암호화 키도 없어지기에 스마트폰 데이터 복구는 거의 불가능한다. 하지만 복구가 된다고 사람들을 속이는 경우가 있으니 조심하라고 한다.

하드디스크는 이게 작동하는지 물리적으로 확인 가능하나, 플래시 메모리는 전기가 통하기나 하는지 알 방법도 없다. 그래서 전기적인 파형과 프로토콜 등의 파악이 필요하기에 보다 전문적인 기술이 필요하다.

하드의 데이터는 복구가 비교적 쉽지만 SSD는 TRIM 기능에 의해 해당 영역 모두가 초기화되기 때문에 복구가 아주 어렵다.

낸드 플래시는 전기적인 충격을 받으면 내부 데이터를 보존할 수 없다. 마치, 카세트 테이프에 자석을 대서 지워버리면 내용이 지워지는 것과 비슷한 것이다. 이것이 근본적으로 HDD 와 다르게 자료를 복구할 수 없는 이유 중 하나이다.

우리가쓰는 USB메모리나 SSD 내부는 크게 컨트롤러와 실제 데이터가 저장되는 메모리영역으로 나눌수있다. 컨트롤러가 죽은거면 대부분 좋은 결과값이 나오는데 메모리영역이 죽은거라면 복구가 안좋게 나올때가 많다.

전에 SSD 포맷을 잘못해서 유명한 업체에 문의했더니 포기하라고 하더군.

업체 맡겨도 가망없다. 빠른포맷에 덮어쓰기까지 된 상태라 윈도우 설치하면서 GC기능으로 정리가 다 되었을 것이다.

복구할 의지가 있었으면 인지 즉시 전원을 차단하고 SSD를 분리해서 격리해놓으셔야 되는데 그렇지 않았다면 SSD의 특성상 GC가 돌아가서 데이터복구는 거의 불가능에 가깝다.

뒤늦게 인지하고 포맷 하고도 일정시간 사용했다면 GC가 돌아갔을 테니 특성을 생각하면 사실상 포기하는게 맞다. HDD는 하나정도 장만하시고 저장이 필요한 데이터는 HDD에 저장하는게 좋다.


SSD에 데이터를 오래 보관하게 되면 삭제가 될까?

이론적으로는 SSD에 전기를 넣지 않는다고 데이터가 날아가거가 하지 않습니다만, 어디까지나 이론일 뿐 기존에 그랬던 사례가 있었기 때문에 아니라고 할 수도 없겠다.

일단, SSD에 전기를 넣는 것과는 무관하다.

기존에 SLC,MLC 방식의 SSD를 사용할 때는 그런적이 없었습니다만 TLC가 최초로 적용된 840EVO에서 저장한 지 오래된 데이터를 읽지 못하는 증상이 발매 얼마 후 발생이 되었었다. 짧게는 3개월 길어도 6개월 전에 저장한 데이터에서 문제가 생겼다. 전기가 매일 들어가는데도 불구하고 그런 증상이 발생 한 것이다.

데이터를 저장 할 때 전하가 꽉차 있는 셀에 전하를 빼내면서 전압을 맞추어 데이터를 기록하는데 완전 무결하게 절연이 되어있어야 하는 셀에서 미세하게 전하가 빠져 나가면서 기록한 데이터에 왜곡이 발생한 사례이다. (SSD에 전기가 들어가도 발생한다.)

이때 제조사에서 펌웨어 업데이트를 해서 저장 한 지 오래된 파일들을 자동으로 찾아서 사용자 몰래 재기록하는 방법으로 이슈를 해결하였다.

요즘 판매하는 SSD들은 그런증상이 없기 때문에 이슈가 해결 된 것 같다. 그러나 10년 쯤 사용하지 않는 상태라면 데이터가 날아갈 가능성이 여전히 있지만 최소 1-2년 내에는 문제 없다.

전기를 넣는 것과는 무관하고 기록한지 얼마나 오래 되었느냐가 핵심이다.

HDD는 자기로 저장되기 때문에 자력의 영향을 받지 않으면 데이터 유실 안됩니다만, SSD는 셀에 게이트가 있고 게이트를 열고 닫음으로 전하가 저장되는 양을 결정 그 전하의 양으로 데이터가 결정되고요. 전기를 안넣고 오래 방치하면 게이트 사이로 전하가 미세하게나마 흘러나와 데이터가 유실된다.

얼마나 오래 전기 인가를 안 해야 날아간다는 명확한 통계나 데이터는 없지만 오랬동안 전기 미인가시 데이터가 날아갑니다.


SSD의 삭제된 자료 복구가 어려운 이유

보통 데이터를 삭제하면 데이터 값 자체를 삭제하는게 아니라 이 데이터를 쓸건지 안쓸건지 나타내는 플래그가 있다.

만약 삭제를 하면 이 플래그를 날려서 데이터가 없는것처럼(하지만 실제 데이터는 데이터영역에 그대로 있게)하는게 일반적인 HDD의 데이터 삭제인데 SSD는 데이터를 기록하기 전에 데이터영역을 한번 비우고 기록을 해야 하는데 만약 데이터를 새로 기록할때마다 데이터영역을 비운다면 기록할때 성능이 저하되겠죠.

그래서 일괄적으로 SSD가 널널할 때 이 데이터영역을 비우는 작업을 미리 해버려서 바로 데이터를 기록할 수 있는 상태로 만드는게 TRIM이다.

HDD복구는 데이터를 안쓴다고 바꾼 영역에서 실제로 데이터가 있는 영역이 있다면 이 영역을 다시 데이터를 쓰겠다고 바꾸는건데 SSD가 만약 TRIM 동작을 하게되면 데이터영역의 데이터가 전부 날아가서 이전에 무슨 데이터가 있었는지 모르는 상태가 된다는 뜻이다.

저도 TRIM의 동작자체만 알고있는거고 스케쥴링이야 제조사가 어떻게 설정하는지는 몰라서 이마저도 복구할 수 있을지는 모르겠다.

내부적으로 TRIM이 안돌아갔으면 복구는 가능한데 TRIM이 동작하면 셀에 제로필동작을 하기 때문에 복구가 불가능한다.

최대한 SSD에 데이터가 기록되는 동작을 자제하고 복구프로그램을 한번 돌려보시는게 좋겠지만 아마 복구는 힘드실지도.

ssd는 힘들것 같다. 최근 업무용 pc 데이터 날아가서 복구 업체 갔더니 ssd에 데이터가 하나도 없다고 하더라. 이후로 업무용 파일은 hdd에 저장하여 보관하고 있다.

SSD 같은경우 HDD와 달리 데이터 복구가 힘들다. 월래 없었던것처럼 되기 때문이다.

차라리 컨트롤러 사망후 벽돌된 SSD는 복구확률이라도 있지만. 정상동작일때 삭제 즉시 복구 아닌 이상은 좀 어렵다고 판단된다.

Recuva라는 복구 프로그램 저는 사용하긴 한다. SSD로 바뀌면서 시간이 좀 지나면.. 솔직히.. 복구가 거의 안되더라.

SSD가 망가졌다고 판단한 즉시 동작을 멈추면 복구할 확률이 높아진다. 물론 그렇게해도 SSD 복구는 매우 어려운편이므로 복구율 기대는 크게 하지마시고.


SSD는 지우면 끝이에요. 복구 안된다.

스스디 저장방식은 셀에 전자를 채워넣는 방식인데 트림이란건 운엥체제에서 지웠다고 판단되는 데이터에 해당하는 셀을 재사용하기 위해 지속적으로 비워주는 작업이라 그래요.

이미 비워져버린 셀에 무슨 데이터가 있었는지는 컨트롤러도 모르죠.

스스디의 데이터 복구를 할수 있는 단 한가지라고 볼 수 있는 상황이 있긴한데 그건 데이터를 지우고 난 후 바로 전원을 끄고 스스디 분리 후 복구업체로 달려가는 것이다.

많은 사람들이 소음이다뭐다 스스디만 쓰다가 데이터 유실되고 실수로 지워버린 데이터 아쉽게되면 hdd 의 중요성을 실감하게 된다.

인터넷 보면 ssd복구를 성공했다는 것도 그럼 그냥 지우고 바로 달려갔을때의 조건이다.


나중에는 하드디스크가 데이터 보존 복구를 위한 백업 저장 장치로 팔리겠네.

휴대폰 매입 업자들이 '판매하신 고객님의 개인 정보를 복원할 수 없도록 삭제 작업을 거친다.' 같은 문구를 넣어놓는데 사실은 휴대폰 초기화 버튼 한 번 누르면 되는 거였군.

이게 근데 아이폰은 상관없는데 안드는 제조사별로 대응하다 운영체제 대응한지 오래되지 않았다. 덕분에 팔아넘긴 폰에서 카톡 복원 시연하고 이런게 뉴스 타고 그랬다.

안드도 패스트부트 들어가서 팩토리 리셋하면 복원이 힘들긴 하다.

반쯤 농담 이지만 진짜 진짜 중요한 정보는 클라우드에 2~3중으로 백업하고 물리 카피는 disc로 굽고 서늘한 그늘에 보관을 하고 진짜 중요한 정보면 M DISC로 하는게 좋다.

미래물에 데이터 복구는 전부 거짓말이었나 보다.

그래서 내가 전 회사에서 퇴사할 때 포멧하고 fstrim 날리는 정도로 끝냈었지. 삼성 OEM SSD라 Secure erase 없어서 그걸 쓰진 못했다.

Next Post Previous Post
No Comment
Add Comment
comment url