외장 드라이브를 추출하지 않고 뽑으면 손상될 수 있나요?
누구나 적어도 한 번은 추출하지 않고 USB 드라이브를 뽑아 봤습니다. 추출 단계를 건너뛸 때 데이터와 드라이브에 실제로 무슨 일이 벌어지는지 알아봅니다.
급합니다. 드라이브가 추출되지 않습니다. 그래도 케이블을 뽑습니다. 우리 모두 해 본 일입니다.
아무 일도 없었을 수 있습니다. 거슬리는 “디스크를 제대로 추출하지 못했습니다” 알림을 받았지만 이후에 다 괜찮아 보였을 수도 있습니다. 그래서 추출이 정말 필요한지, 아니면 실제로는 중요하지 않은 조심스러운 습관 중 하나인지 궁금해지기 시작합니다.
중요합니다. 다만 늘 예상하는 방식으로는 아닙니다.
추출이 실제로 하는 일
macOS에서 드라이브를 추출하면, 시스템은 세 가지를 순서대로 수행합니다.
첫째, 쓰기 캐시를 비웁니다. macOS는 최근에 기록된 데이터를 드라이브에 반영하기 전에 메모리에 담아 둡니다. 이는 성능을 높이지만, “저장한” 데이터가 아직 실제로 디스크에 없을 수 있다는 뜻입니다. 추출은 캐시된 모든 데이터를 강제로 기록하게 합니다.
둘째, 모든 파일 핸들을 닫습니다. 드라이브의 파일을 열어 둔 모든 프로세스에 그것을 놓아주라는 알림이 갑니다. 이로써 앱이 하던 일을 끝내고 파일을 깔끔하게 닫을 기회를 얻습니다.
셋째, 볼륨을 마운트 해제합니다. 드라이브가 파일 시스템 트리에서 제거되고, 운영 체제가 그 존재를 더 이상 인식하지 않습니다. 이 단계가 끝난 뒤에야 물리적으로 분리해도 안전합니다.
추출을 건너뛰고 케이블을 그냥 뽑으면, 이 세 단계를 동시에 모두 건너뛰는 것입니다.
진짜 위험: 쓰기 캐시
쓰기 캐시에 위험이 도사리고 있습니다. macOS를 포함한 최신 운영 체제는 외장 드라이브에 데이터를 즉시 기록하지 않습니다. 성능을 위해 쓰기를 한데 모아 주기적으로 비웁니다.
파일을 복사해 진행 막대가 끝나도, 그것이 데이터가 드라이브에 있다는 보장은 아닙니다. 시스템이 자체 캐시에서 복사를 완료된 것으로 확인했을 뿐, 실제 쓰기는 아직 대기 중일 수 있습니다. 그 순간 분리하면 드라이브의 파일이 불완전하거나 손상되거나 아예 사라질 수 있습니다.
위험 구간은 경우마다 다릅니다. 작은 파일을 복사한 뒤라면 1~2초일 수 있습니다. 큰 전송 뒤라면 10초 이상일 수도 있습니다. 캐시가 완전히 비워졌는지 알려 주는 시각적 표시는 없습니다.
읽기만 한 드라이브는 어떤가요?
드라이브를 연결해 파일을 몇 개 열기만 하고 아무것도 저장하지 않았다면, 뽑을 때의 위험은 크게 줄어듭니다. 쓰기가 없으면 비울 쓰기 캐시도, 전송 도중인 파일도 없습니다.
하지만 “아무것도 저장하지 않았다"는 생각보다 보장하기 어렵습니다. macOS는 Finder에서 둘러본 모든 폴더에 .DS_Store 파일을 씁니다. Spotlight는 색인 데이터를 씁니다. 일부 앱은 접근하는 볼륨에 임시 파일이나 잠금 파일을 만듭니다.
명시적으로 무언가를 저장하지 않았더라도, macOS는 아마 무언가를 썼을 것입니다.
파일 시스템 손상
개별 파일 손실을 넘어, 더 넓은 파일 시스템 손상의 위험이 있습니다.
파일 시스템은 디렉터리, 할당 테이블, 저널 항목 같은 내부 구조를 유지합니다. 이 구조는 모든 파일이 디스크 어디에 있는지, 공간이 어떻게 할당되는지를 설명합니다. 파일을 쓰면 파일 시스템은 이 구조를 업데이트합니다. 업데이트 도중에 분리하면 구조가 일관되지 않은 상태로 남을 수 있습니다.
HFS+는 저널링을 사용하여 변경을 수행하기 전에 계획된 변경 사항을 기록합니다. 연결 끊김이 과정을 중단시키면, 파일 시스템은 저널을 재생하여 일관된 상태로 복구할 수 있습니다. APFS는 저널링 대신 copy-on-write를 사용하는 전혀 다른 방식을 취합니다. 새 데이터는 항상 먼저 빈 공간에 기록되고, 포인터는 쓰기가 완료된 뒤에만 업데이트됩니다. 연결 끊김이 과정을 중단시켜도 기존 데이터는 원래 위치에 그대로 있습니다. 어느 파일 시스템이든 기록되던 파일은 잃을 수 있지만, 파일 시스템 자체는 온전히 유지됩니다.
exFAT와 FAT32에는 저널이 없습니다. 구조 업데이트 도중의 연결 끊김은 파일 시스템 전체를 망가진 상태로 남길 수 있습니다. 파일이 사라지거나, 폴더를 읽을 수 없게 되거나, 드라이브가 아예 마운트되지 않을 수 있습니다.
드라이브가 exFAT로 포맷되어 있다면(Mac과 Windows 사이에 공유하는 드라이브에 흔함), 제대로 추출하는 것이 더더욱 중요합니다.
드라이브의 물리적 손상
최신 드라이브는 하드웨어 수준에서 갑작스러운 연결 끊김을 꽤 잘 처리합니다. SSD에는 움직이는 부품이 없으므로 헤드 충돌 위험이 없습니다. 하드 드라이브는 전원이 끊기면 읽기/쓰기 헤드를 자동으로 안전한 위치에 둡니다.
더 큰 물리적 우려는 커넥터입니다. USB 케이블을 반복해서 뽑으면 드라이브와 Mac 양쪽의 포트가 마모될 수 있습니다. USB-C 커넥터는 구형 USB-A보다 내구성이 좋지만, 마모에서 자유롭지는 않습니다.
반복된 예기치 않은 연결 끊김은 SSD 펌웨어에도 영향을 줄 수 있습니다. 드라이브 컨트롤러는 비정상적인 종료가 있을 때마다 복구 작업을 수행해야 하는데, 이는 쓰기 주기와 복잡성을 더합니다.
누적 효과
한 번의 계획되지 않은 연결 끊김이 치명적인 손상을 일으킬 가능성은 낮습니다. 최신 파일 시스템의 저널링이 처리해 주고, 드라이브도 그것을 견디도록 만들어졌습니다.
문제는 그것이 습관이 될 때입니다. 추출을 건너뛸 때마다 쓰기 캐시가 비었는지, 파일 시스템이 업데이트 중이었는지, 다시 연결할 때 모든 것이 일관될지를 두고 주사위를 던지는 셈입니다.
수십 번, 수백 번의 부적절한 분리가 쌓이면 무언가 잘못될 확률이 높아집니다. 작은 불일치가 누적됩니다. 파일에 미묘한 손상이 생겨, 몇 주 뒤 열어 보려 할 때까지 드러나지 않습니다.
그냥 드라이브를 추출하세요
안전한 길은 분명합니다. 항상 추출하세요. 하지만 사람들이 건너뛰는 이유는 게으름이 아닙니다. macOS에서 추출이 너무 자주 실패하기 때문입니다. 추출하려고 하면 디스크가 “사용 중"이라는 말을 듣는데, 왜 그런지도, 어떻게 해야 할지도 모릅니다.
Ejecta는 애초에 사람들이 추출을 건너뛰는 이유를 없앱니다. 드라이브가 추출되지 않으면, 어떤 프로세스가 막고 있는지 정확히 알려 주고 클릭 한 번으로 그 프로세스를 종료하게 해 줍니다. 연구 과제가 되는 대신 몇 초면 끝납니다.
드라이브를 제대로 추출하는 것은 드물지만 뼈아픈 데이터 손실을 막아 주는 작은 습관 중 하나입니다. 옳은 일을 하기 쉽게 만들면, 매번 하게 될 것입니다.
매번 터미널을 쓰고 싶지 않다면, Ejecta가 어떤 프로세스가 드라이브를 막고 있는지 정확히 보여주고 메뉴 막대에서 클릭 한 번으로 종료할 수 있게 해줍니다.
지금 구입 — $9.99