USB 플래시 드라이브에 설치하는 권한이 거부되었습니다.

USB 플래시 드라이브에 설치하는 권한이 거부되었습니다.

기본 명령 유틸리티를 사용하여 USB 플래시 드라이브에 ISO를 쓰려고 합니다. 나는 쓰고 있다:

sudo cat path/to/archlinux-version-x86_64.iso > /dev/disk/by-id/usb-My_flash_drive

하지만 나는 응답을 받았습니다:

zsh: permission denied: /dev/disk/by-id/usb-Generic_Mass_Storage_C5BB4803F4D97884-0:0

어쩌면 장치에 쓰려면 루트를 제공해야 합니까?

고쳐 쓰다.해결책:

sudo dd bs=4M if=archlinux-2023.07.01-x86_64.iso of=/dev/disk/by-id/usb-Generic_Mass_Storage_C5BB4803F4D97884-0:0 conv=fsync oflag=direct status=progress

답변1

다음과 같이 명령줄을 사용하는 경우:

sudo cat path/to/archlinux-version-x86_64.iso > /dev/disk/by-id/usb-My_flash_drive

쉘은 실제 명령 실행을 시작하기 전에 리디렉션 설정을 시도합니다. 따라서 이 cat path/to/archlinux-version-x86_64.iso부분만 ;의 영향을 받게 됩니다 sudo. 이것은 당신이 원하는 것이 아닐 수도 있습니다. 장치에 써야 하며 sudo반드시 일반 파일에서 읽을 필요는 없습니다(파일에 대한 일반적인 액세스 권한이 없는 경우 제외).

이 명령을 사용 sudo하고 리디렉션하도록 재정렬하는 한 가지 방법은 다음과 같습니다.

cat path/to/archlinux-version-x86_64.iso | sudo tee /dev/disk/by-id/usb-My_flash_drive >/dev/null

여기서 쉘은 두 명령을 실행하기 전에 먼저 두 명령 사이에 파이프를 설정하고 결과 출력의 리디렉션을 설정합니다.평행하게. 루트 권한으로 실행 되며 tee /dev/disk/by-id/usb-My_flash_drive, 입력 복사본 하나를 플래시 드라이브에 전달하고 다른 복사본을 표준 출력에 전달합니다. 쉘에 의해 설정된 리디렉션은 일반 사용자 계정으로 실행되며 특별한 권한이 필요하지 않은 tee쉘의 표준 출력을 전달합니다./dev/null

위의 재배열은 원래 명령줄과 유사하지만 일반 사용자로 파일을 읽을 cat수 있는 한 파이프를 전혀 사용하지 않고도 수행할 수 있기 때문에 "쓸모 없는 사용"이라고 할 수 있습니다..iso

sudo tee /dev/disk/by-id/usb-My_flash_drive < path/to/archlinux-version-x86_64.iso > /dev/null

관련 정보