터미널에서 장치에 액세스

터미널에서 장치에 액세스

마운트하고 싶지 않은 플래시 드라이브가 있습니다. 대신 컴퓨터 간에 파일을 전송하는 데 사용하고 싶습니다.

Devices 디렉터리를 통해 터미널에서 내 플래시 드라이브에 액세스할 수 있는 방법이 있습니까? 아니면 터미널에서 플래시 드라이브에 액세스하여 먼저 마운트한 다음 마운트 지점에 액세스하는 유일한 방법입니까?

답변1

먼저 드라이브를 마운트하지 않으면 어떤 형태의 저장 매체에도 액세스할 수 없습니다. 그러나 이 전체 프로세스는 터미널에서 수행할 수 있습니다.

먼저 파티션 ID( /dev/sdXY)가 필요합니다. lsblk명령을 사용하여 이를 찾을 수 있습니다 . 이 ID가 있으면 을(를) 실행할 수 있습니다 sudo mount /dev/sdXY /mnt. 이제 플래시 드라이브의 파일 시스템을 /mnt터미널에서 사용할 수 있습니다.

의 장치는 /dev블록 장치라고 하며 해당 장치(해당되는 경우) 내에 포함된 파일 시스템의 원시 표현입니다. 이러한 장치에서 직접 읽고 쓸 수는 있지만 파일 시스템 추상화 및 보호의 거대한 계층을 무시하고 있기 때문에 종종 나쁜 생각입니다.

대부분의 사용 사례에서 원시 블록 장치에서 읽고 쓰는 유일한 시간은 복제 또는매우낮은 수준의 장치 작업. 파일 시스템은 추상화, 오류 검사 및 파일 안전의 거대한 계층을 제공합니다.


메모:이 텍스트 블록 아래 섹션은 교육 목적으로만 사용됩니다. 결과가 매우 쉽게 치명적일 수 있으므로 관심 있는 시스템/드라이브에서는 이 방법을 시도하지 마십시오. 아래에서 제가 말하는 내용을 따르면 귀하가 하는 일에 대해 저는 책임을 지지 않습니다.

당신은 경고를 받았습니다.

해당 경고가 나오면 플래시 드라이브의 내용에 신경 쓰지 않는다면 이론적으로 원시 블록 작업을 사용하여 플래시 드라이브에서 데이터를 읽고 쓰는 것이 가능합니다.

files.zip가장 간단하게는 다음 명령을 사용하여 플래시 드라이브에 파일(예: )을 씁니다 .

dd if=files.zip of=/dev/sdd bs=1024

이렇게 하면 zip 파일이 플래시 드라이브의 원시 블록에 복사되지만 현재 드라이브에 있는 파티션이나 관련 데이터가 손상될 가능성도 있습니다. 또한 드라이브에 기록된 "블록" 수를 기록합니다. 이를 기록해 두십시오. 이 예에서는 1234개의 블록이 복사되었다고 하겠습니다.

플래시 드라이브의 파일을 다른 컴퓨터로 읽으려면 다음과 같은 역 명령을 사용하면 됩니다.

dd if=/dev/sdd of=files.zip count=1234 bs=1024

files.zip이렇게 하면 처음 1234개 블록에 대한 원시 블록 데이터를 드라이브(ZIP 파일 포함)에서 가져와 컴퓨터의 현재 디렉터리에 기록합니다 . 또한 이 ZIP 파일은 파일 끝 부분의 손상/가비지 데이터 또는 유사한 이유로 인해 실제로 읽지 못할 수도 있습니다. 필요하다면 이 점을 꼭 참고하세요. head필요한 경우 명령을 사용하여 ZIP 파일을 다시 잘라낼 수 있습니다 .

완료되면 플래시 드라이브를 포맷하고 다시 파티션을 나누는 등의 작업을 수행해야 하므로 대규모 작업에서는 실행하기가 매우 불가능합니다. 파일 시스템을 사용하면 됩니다.

관련 정보