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てリダイレクトするように並べ替える1つの方法は次のとおりです。

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

ここで、シェルは、2 つのコマンドを実行する前に、まず 2 つのコマンド間にパイプを設定し、結果出力のリダイレクトを設定します。平行に。 root権限で実行され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

おすすめ記事