기본 명령 유틸리티를 사용하여 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