USB 드라이브 꺼내기 / 꺼내기 명령


55

나는 알고 eject명령이 부착 된 거의 모든 하드웨어 구성 요소를 추출하는 데 사용할 수 있지만, USB 드라이브를 꺼내 사용할 수 있습니까?

eject명령으로 USB 드라이브와 외장 HDD를 꺼낼 수 있습니까?


3
관련 : 반대 eject /dev/sdXIS sg_start -s /dev/sdX(에서 sg3_utils패키지), 모두 SCSI 장치로 보낼 명령을 사용합니다.
Yeti

답변:


15

아닙니다. 그렇지 않아도됩니다. eject광 드라이브를 여는 데 사용되며 매체를 직접 가져올 수 없습니다.

USB / eSATA 등에는 마운트 해제로 충분합니다. 저장 장치.


흠, 나는 어딘가에 / dev / sda에서 eject hdd를 보았다. 나는 그 참조가 틀렸다고 생각한다.
Joe Barr

당신은 그것을 할 수 있지만 일반적으로 전혀 아무것도하지 않습니다.
Ignacio Vazquez-Abrams

1
이것은 장치가 처음에 마운트되고 다른 큰 가정 세트를 수행한다고 가정합니다 (하나의 파일 시스템을 읽을 수 있음). 많은 외장 드라이브를 지우고 있다고 상상해보십시오. 꺼내기가 올바른 것입니다.
James Moore

1
확신이 서지 않는 경우, sync이를 해결하기 전에
EkriirkE

크고 뚱뚱한 경고 : 이것은 사실이 아닙니다. 그렇지 않으면 eject기본 USB 장치 드라이버가 AFTER umount가 반환 한 후에도 쓰기를 시도 할 수 있습니다 . 드라이브에 상태 LED가있는 경우 명확하게 볼 수 있습니다. umount종료 직후 USB 스틱을 king는 것은 RECIPE FOR DISASTER입니다.
ZioByte

77

예. 예를 들면 다음과 같습니다.

sudo eject /dev/sda

여기에 기계식 배출 하드웨어가 필요하다는 다른 답변이 잘못되었습니다.

마운트 해제는 배출하는 것과 다릅니다.

  1. 볼륨을 마운트 해제하면 기본 장치를 계속 사용할 수 있으므로 볼륨을 즉시 다시 마운트 할 수 있습니다. 경우에 따라 보안 위험이 발생할 수 있습니다. 장치를 꺼내면 USB 하위 시스템 재설정 (예 : 재부팅) 만 장치를 다시로드합니다.
  2. 장치를 배출하면 장치에 대한 추가 액세스를 효과적으로 비활성화 할 수 있습니다. USB 하위 시스템 재설정 (예 : 재부팅) 만 장치를 다시로드합니다. 그렇지 않으면 USB 장치를 물리적으로 분리했다가 다시 연결해야 다시 액세스 할 수 있습니다.
  3. 꺼내기 전에이 명령은 마운트 된 장치의 모든 볼륨을 마운트 해제합니다.
  4. 볼륨이 사용 중이면 일부 볼륨이 마운트 해제되고 일부 볼륨이 마운트 된 상태로 남아있는 것을 제외하고는 마운트 해제와 같이이 명령이 실패합니다.

1
또한 sudo이 명령을 마치기 위해 사용해야 했습니다 (파일을 열 수 없다고 말하기 전에 드라이브를 마운트 해제하기 만하면됩니다). 그 외에도 도움이되는 답변.
GDP2

이 글에서 저평가 된 답변. FAT32 마운트 썸 드라이브를 살펴보면 파일 탐색기 (예 : 노틸러스)만으로 마운트 해제 및 배출이 어떻게 다른지 알 수 있습니다. 간단한 Sansa 클립도이를 보여줍니다.
클라우드

lsusb를 실행할 때 장치가 여전히 존재합니다. 따라서 전체 USB 하위 시스템을 재설정 할 필요가 없습니다. 장치만으로 충분합니다. 당신이 할 usbreset 사용할 수 있습니다 github.com/jkulesza/usbreset github.com/CWempe/usbreset usbreset.c 파일이 두 프로젝트에서 동일하다,
한스

38

eject작동하지만 USB 회전 드라이브 와 관련하여 실제로 "작업을 마치지"않을 것 입니다.

적절한 마운트 해제 후 USB 외장 하드 드라이브를 분리하는 가장 좋은 방법 은 다음과 같습니다.

udisks --detach /dev/sdb

이로 인해 일반적으로 드라이브가 정상적으로 회전하지 않습니다.

정확하게, 현재 구현 :

  • SCSI 동기화 캐시 명령을 보냅니다.
  • SCSI 중지 명령을 보냅니다.
  • USB 저장 장치 커널 드라이버의 바인딩을 해제합니다.
  • USB 장치를 정지시킵니다 (전원).
  • USB 포트에서 논리적으로 비활성화 / 제거합니다.

이 프로세스는 여기 에 제안 된 수동 절차에 가깝습니다 . 초기 답변은 askubuntu에있었습니다 .

편집 : 또한 g.rocket이 지적 했듯이이 명령은 다음과 같습니다.

udisksctl power-off -b /dev/sdb

내 우분투에서 otion이 udisksctl없는 --detachonyl을 사용할 수 있습니다. 이 경우 어떻게해야합니까? 감사합니다.
Wakan Tanka

@WakanTanka 설치 udisks합니다.
Totor

어떻게 설치 udisks합니까? 내 시스템에 없습니다. 패키지를 찾았 udisks2지만 만들 udisks거나 udisks2 사용할 수 없습니다.
Martin Thoma

5
@WakanTanka도 udisksctl power-off -b /dev/sdwhatever같은 일을하는 것 같습니다.
g.rocket

@ g.rocket 답변이 그에 따라 업데이트되었습니다. 감사합니다.
Totor

8

디스크 / dev / sdb 마운트 해제를위한 수동 단계 (sudo 필요) :

echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete

이렇게하면 장치의 전원이 완전히 꺼지고 시스템에서 분리됩니다. 연결을 끊었다가 다시 연결할 때까지 다시 검색되지 않습니다.


2
그러나 외부 USB 크래들이있는 Xen dom0에서 작동하는 유일한 방법입니다. eject 및 udisks 명령에 오류가 발생했습니다.
Ganesh Sittampalam

1
나는 이것을 찾고 있었고, 나는 긴급 비상 모드에 있으며 다른 기능에 액세스 할 수 없습니다. 감사!
Nassiel

hdparm -YSATA / IDE 드라이브에도 편리합니다.
Walf

6

eject (1) 매뉴얼 페이지 를주의 깊게 읽으면 4 가지 추출 방법이 있음을 알 수 있습니다.

   -r   This  option specifies that the drive should be ejected using a CDROM
        eject command.

   -s   This option specifies that the drive should  be  ejected  using  SCSI
        commands.

   -f   This option specifies that the drive should be ejected using a remov‐
        able floppy disk eject command.

   -q   This option specifies that the drive should be ejected using  a  tape
        drive offline command.

HDD / SCSI에서 꺼내기 를 호출하면 ioctl(fd, SG_IO, (void *)&io_hdr);명령 ( eject.c소스 에서 복사)을 발행 합니다.

이것은 MS Windows 또는 MaxOSX에서 장치를 안전하게 제거하는 것과 같습니다.

일부 장치의 경우 특별한 의미가 있습니다. 예를 들어 꺼내기 명령 후 Kindle 3 이 충전 모드로 이동하고 화면이 잠기기 전에 장치를 탐색 할 수 있습니다.

다른 유틸리티는 이와 같은 일을합니다

scsi-spin --force --down /dev/sda

3

"이젝트"는 트레이 또는 다른 로딩 메커니즘이없는 하드웨어에는 의미가 없습니다 (테이프 드라이브에서도 작동한다고 가정).

그러나 외부 USB 플래시 드라이브로 테스트 하면 장치 노드가 사라지는 부작용과 eject같은 방식으로 작동합니다.umount

% ls  /dev/sdc*
/dev/sdc  /dev/sdc1
% sudo eject /dev/sdc
% ls  /dev/sdc*
/dev/sdc

/dev/sdc1사라졌다.


1
테이프로 시도하지 마십시오 ( mt rewoffl되감기 때문에 더 편리함).하지만 오래된 Mac 및 Sun 워크 스테이션에있는 것과 같은 자동화 된 플로피 드라이브 에서는 작동합니다.
Alexios

@Alexios 흥미로운.
Renan

3

osx 명령 행 에서 LABEL 이 USB 드라이브의 레이블 인 diskutil 을 사용해야합니다 .

diskutil eject /Volumes/<LABEL>

2

udisks --detach /dev/sdX여기서 (X)는 USB 장치의 마지막 문자입니다. 모든 리눅스 시스템에서 잘 작동합니다.


조금 짧지 만 대답은 괜찮습니다. 이 명령이 수행하는 작업, 방법, 제안한 이유 등은 더 자세히 설명
하겠습니다

0

좋아, 나는 이것을 더 잘 설명하려고 노력할 것이다.

udisks 명령은 시스템 마운트 해제 명령에 마운트 또는 연결된 USB 장치를 완전히 제거하고 전원을 끕니다. 즉, dev / sdb1 또는 USB가 시스템에 여전히 존재하는 파티션 만 마운트 해제하십시오.

따라서 마운트 해제, 꺼내기 및 분리가 동일하지 않습니다.

udisks = USB 전원 끄기

umount = 단지 전체 pendrive가 아닌 파티션을 마운트 해제하십시오

꺼내기 = 동일하거나 매우 가까운 umount 명령

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.