Usb메모리 사용 후 제거할 때

그냥 뽑아버리면 되나요?
윈도우의 경우에는 '안전하게 제거’이런게 있는데
우분투에는 없어서 그냥 뽑아 버렸는데 괜찬나요?

이게 정답인지는 모르겠으나 저의 경우,

unmount 한 다음에 뽑습니다.

데스크탑에 USB 드라이브 아이콘이 생겨있잖아요.
거기서 마우스 오른쪽 버튼 누르면 마운트제거 메뉴가 보일겁니다.

그게 윈도에서 안전하게 제거랑 똑같은 역할이에요.

마운트 제거하면…"안전하게 장치를 뺄수 있다"였나…비슷한 메시지가 알림영역쪽에 뜹니다.

그냥 뽑으시면 변경된 내용이 적용되지 않습니다. ^^

예를 들어 어떤 텍스트 파일에 "abcdefg" 딱 한 줄 써있는데

이것을 "abcedfgdddddddddd"로 고쳤다고 할 때,

Unmount 안 하시고 USB 그냥 뽑으시면 abcdefg인 상태로 남습니다…

파일 카피의 경우도 마찬가지입니다…

어떤 새로운 파일이 USB에 들어왔는데 그냥 뽑으시면 그 파일이 USB에 카피되지 않은 것으로 처리됩니다. ^^

근데 "마운트 해제"와 "안전제거"는 약간 개념이 다르답니다^^

그냥 USB를 뽑는 거에 대해서 좀 설명하고 넘어가고 싶은데… USB포트가 정상적으로 작동하고 있다는 전제 하에, 이 행동이 기계적으로 어떤 영향을 미치지는 않습니다. 그럴 기계적인 파트도 없구요.

이렇게 그냥 뽑았을때 문제가 되는건 드라이브 속의 파일 시스템입니다. 혹시 OS가 파일을 쓰는 도중이었다거나 뭔가 다른 프로그램에서 이 속의 파일을 읽고 있는 중이었다거나 할 경우, 꼬일 가능성이 생기는 거지요. 재수없으면 속의 데이터가 망가지고, 정말 심하면 복구가 안 되는 경우도 있습니다. (최근에는 그 정도까지 가는건 본 적 없습니다만… 초기엔 종종 있었죠)

여기에 더불어, dynamism2002님이 말씀하신것이 있는데…

[quote="dynamism2002":3c47l6sh]그냥 뽑으시면 변경된 내용이 적용되지 않습니다. ^^[/quote:3c47l6sh]
이건 반드시 이런건 아닙니다. 우분투의 경우, 1기가 이상의 미디어에서 동기화가 이뤄지기 전에 뽑았을 경우 이렇지요.

일반적인 디스크는 물리적인 기계장치라는걸 잘 아실 겁니다. 고로, 뭔가 일을 할 때 여기저기로 왔다갔다 하면서 그때그때 Read/write/erase 가 일어나면 당연히 속도는 크게 떨어집니다. 이것에 대한 해결책으로 보통은 그런 디스크 억세스 해야 하는 내용들을 Cache하고 있습니다. 그리고 나서 정해진 인터벌이나 뭔가 조건이 맞춰지는 상황에서 한번에 덤프하는 거지요. 이래야 디스크 억세스 횟수를 줄이고, 속도를 향상시킬 수 있습니다.

하지만 외장 매체의 경우, 실수로 뽑아 버리거나 하는 경우, 덤프되지 못한 내용은 유실되어 버립니다. 윈도우즈는 이런 이유때문에 외장 저장매체에는 기본적으로 이 방식을 적용시키지 않으며, dynamism2002님이 말씀하신 저 현상은 윈도우즈에선 일어나지 않지요.

우분투는 이에 반해, (기본 설정상) 1기가가 넘는 저장매체는 그게 뭐가 되었든 간에 cache를 적용시킵니다. 당연히 플래시 디스크도 포함되고, cache만 하고 아직 덤프가 이뤄지지 않은 상황에서 뽑아 버리면 그게 반영이 안되는 거지요. unmount를 시키면 이걸 강제로 덤프하게 되고, 변경 사항이 디스크에 반영되게 되어 있습니다.

우분투에서 이렇게 cache를 외장 매체에도 적용시키는 이유는 플래시 드라이브라는 물건은 그 내용을 변경할 수 있는 (데이터를 지우거나 쓰는 등의 행위) 횟수가 제한되어 있기 때문입니다. 고로, 실시간으로 모든 변경사항을 그때그때 써버리는 것은 장치의 수명을 깎아 먹게 되는 거지요.

하지만 이 점을 감안하시고도 혹시 이 설정을 변경하고 싶으시면

/etc/hal/fdi/policy/preferences.fdi

를 열어서

<merge key="volume.policy.mount_option.sync" type="bool">[값]</merge>

에서 [값]을 기호에 따라 true (실시간 반영), 혹은 false (cache사용) 로 바꿔 주시던가

<match key="volume.size" compare_lt="[값]">

…[값] 미만

<match key="volume.size" compare_ge="[값]">

…[값] 이상

이 되도록 조건을 바꿔 주시면 되겠습니다.

좀 희한한(?) 경험을 몇 번 했는데,

프리젠테이션 파일의 경우, 복사 한 뒤 정상적으로 해제하지 않고 그냥 뽑았을 때 슬라이드에서 그림이나 여타 오브젝트들이 빠져있더군요. 파일은 복사가 되었는데 말이죠.

아무튼, USB 디스크라는 녀석은 파일 IO가 확실히 종료되었는지 확인하고, 해제도 확실히 하고, 그렇게 확인에 확인을 한 다음에 뽑는 것이 안전하다는 것이 제 생각입니다. :)

automount 등을 설정해사용할때, 간혹 unmount 를 않하고 빼서 사용할때가 있습니다…
그럴때 sync 명령으로 동기화를 강제로 내려서 쓰곤 했습니다…

[quote="Vulpes":39xfm084]하지만 외장 매체의 경우, 실수로 뽑아 버리거나 하는 경우, 덤프되지 못한 내용은 유실되어 버립니다. 윈도우즈는 이런 이유때문에 외장 저장매체에는 기본적으로 이 방식을 적용시키지 않으며, dynamism2002님이 말씀하신 저 현상은 윈도우즈에선 일어나지 않지요.
우분투는 이에 반해, (기본 설정상) 1기가가 넘는 저장매체는 그게 뭐가 되었든 간에 cache를 적용시킵니다. 당연히 플래시 디스크도 포함되고, cache만 하고 아직 덤프가 이뤄지지 않은 상황에서 뽑아 버리면 그게 반영이 안되는 거지요. unmount를 시키면 이걸 강제로 덤프하게 되고, 변경 사항이 디스크에 반영되게 되어 있습니다.[/quote:39xfm084]
흠~ 윈도우와 리눅스간에 그런 차이가 있었군요.
전에 윈도용 USB메모리 속도측정 어플을 리눅스에서 와인으로 돌려본적이 있는데 어마어마한 속도로 나오더군요. 그게 그 어플의 에러인지 아님 위 이유땜에 일시적이나마 그런 엄청난 속도를 보인 건지는 잘모르겠지만…