Gnome에서 "USB 드라이버 꺼내기"는 어떻게 작동합니까?

Gnome에서 "USB 드라이버 꺼내기"는 어떻게 작동합니까?

나는 항상 마음속으로 다음과 같은 질문을 품고 있었습니다.

외장 하드 드라이브가 있는데 이를 제거하려고 하면 노틸러스에 "장치 안전하게 제거"라는 아이콘이 나타납니다(사용노틸러스~에서그놈 3.14존재하다더반 8), 하지만 그 뒤에 있는 실제 프로세스는 무엇입니까? 이것이 실제로 무슨 일이 일어나고 있는지 이해하는 방법입니까? 일종의 로그?

첫 번째 프로세스는 이라고 생각하는데 외장 하드 드라이브의 LED를 사용하여 마운트를 해제 umount /wherever/its/mount했을 때 알아차렸습니다.umount존재하다(Windows OS가 LED를 끌 때) 따라서 명령은 다음 umount과 같습니다 .반품하드 드라이브가 연결된 USB 포트의 전원을 차단하시겠습니까? 아니면 이를 수행하는 다른 명령이 있습니까?

감사해요

답변1

umount명령 자체는 드라이브의 전원을 차단하지 않으며 실제로 마운트는 파일 시스템을 드라이브의 디렉터리와 연결하는 것을 의미하므로 제거하면 해당 작업만 수행됩니다. 노틸러스 파일 관리자에 관한 한 특정 디렉터리에 대한 마운트 연결을 해제하는 것입니다. 은 뒤에서 사용하는 것이 아니라 실제로 사용하는 것입니다.G 마운트모든 GNOME 관련 개발 유형에 사용되는 표준 Gio API의 개체입니다.

너무 혼란스럽지 않도록 소스 코드와 문서를 사용하여 설명하겠습니다. 소스코드를 간단히 검색해 보면,노틸러스 파일 Operation.c파일에서 nautilus_file_operations_unmount_mount_full함수 호출 do_unmount, 함수 호출 g_mount_eject_with_operation함수. 마지막이 속한API의 GMount 부분. 꺼내기에는 설치, unmounting볼륨 또는 드라이브에 기록해야 하는 나머지 데이터를 동기화한 다음 전원을 끄는 작업이 포함됩니다(USB 드라이브 또는 디스크의 경우).

기대하고 계시다면드라이브 전원을 끄는 쉘 명령udisks노틸러스와 마찬가지로 via 또는 가 있습니다 udisksctl. 제 기억이 맞다면 udisksctl운영 체제에서는 이를 사용합니다 systemd(그러나 마지막 설명에 대해 제 말을 인용하지 마세요. 단지 의견일 뿐입니다). 이는 다음을 활용합니다.U 디스크 2, 실제로는 다음을 통해 드라이브 및 볼륨 작업을 위한 또 다른 API입니다.D 버스인터페이스는 실제로 매우 훌륭하며 개발에 사용했습니다.우분투에 대한 내 자신의 측정항목.

그래서긴 이야기 짧게:

  • 노틸러스는 Gio API를 사용하여 마운트를 처리하지만 외부 또는 독립 실행형 명령줄 유틸리티를 호출하지 않습니다.
  • Nautilus와 유사한 작업을 수행할 수 있는 명령줄이 있습니다.
  • 언제든지 Gio API, UDisks API를 사용하여 자신만의 API를 작성하거나 외부 udisks또는 udisksctl명령을 호출할 수 있습니다.

또한보십시오:

답변2

그놈에서 노틸러스에서 MYUSB 드라이브 꺼내기를 시뮬레이션하는 가장 좋은 방법은 다음과 같습니다.

$ gio mount -e /media/dzmanto/MYUSB

루트 권한이 필요하지 않습니다.

관련 정보