Windows에는 "하드웨어 안전하게 제거" 옵션이 있습니다.
거의 항상 실패하고 대부분의 경우 장치의 플러그를 뽑았다는 사실을 무시하고 (완전하지는 않지만) 장치를 제어할 수 있습니다.
그렇다면 데비안을 사용할 때 언제 외장 하드 드라이브를 제거하는 것이 "안전"합니까(즉, 어느 쪽에도 해를 끼치지 않는가)?
제거한 후(Xfce는 "꺼내기"라는 용어를 사용하는 것 같지만 같은 것 같아요)? 아니면 어떤 프로그램도 디스크를 사용하지 않는 경우에만 해당됩니까?
답변1
외장 드라이브가 마운트 해제되면 제거해도 "안전"합니다.
프로그램이 이를 사용하지 않으면 Linux 커널이 캐시에 쓰기 때문에 안전하지 않을 수 있습니다. 이는 프로그램이 디스크에 쓸 때 해당 데이터가 물리적으로 디스크에 없을 수도 있지만 여전히 메모리에 있을 수 있음을 의미합니다(프로그램이 fsync
또는 를 사용하지 않는 한 fdatasync
). Linux는 대규모 청크로 디스크 쓰기를 수행하여 처리량을 최적화하기 위해 이를 수행합니다.
파일 시스템을 마운트 해제하면 디스크에 더 이상 쓰기가 수행되지 않습니다. 또한 sync
캐시된 모든 데이터가 디스크에 플러시되었는지 확인하기 위한 호출을 수행합니다.
답변2
연결을 끊기 전에 제거해야 합니다. 일부 인터페이스에서는 동일한 작업을 수행하는 "팝업"이라는 용어를 사용합니다.
마운트 해제/꺼내기 없이 연결을 끊을 경우 발생하는 피해량은 사용된 파일 시스템, 하드웨어 및 캐시에 따라 다릅니다. 그 효과는 본질적으로 정전과 동일합니다. 즉, 대부분의 파일 시스템은 이 상황에서 복구하도록 설계되었지만 보장할 수 없으며 일반적으로 UNIX 계열 운영 체제에 기본으로 제공되는 파일 시스템의 경우 파일 시스템 검사가 필요합니다. 따라서 Linux에서 삭제할 수 있는 유일한 안전한 시간은 제거/꺼내기가 완료된 후입니다.
답변3
USB3를 통해 Seagate 외장 2TB "확장 데스크탑 하드 드라이브" 2개가 설치되어 있습니다. rsync를 사용하여 시스템을 백업한 후, 동기화 및 umount.crypt 후에도 드라이브는 마운트 해제 후 꽤 오랫동안 헤드를 계속 움직입니다. 대략 30초에서 1분 정도(손을 얹었을 때의 느낌에 따라 다름) ) . 나는 이것이 외장 드라이브의 일부 내부 캐시 때문일 수 있다고 생각합니다. 머리 움직임이 전혀 느껴지지 않을 때까지 플러그를 뽑는 것은 안전하지 않았습니다.
드라이브의 쓰기 캐시를 꺼야 할 것 같습니다. 내 드라이브는 일반적으로 /dev/sdg이므로 해당 드라이브를 사용할 때 루트로 다음 명령을 실행할 수 있습니다.
hdparm -W0 /dev/sdg
그러나 이것이 문제를 해결하는지 확인하지 못했습니다.