103.3標準
読み取り元デバイスは/dev/sdbで、出力先はdisk.imgである。
4MiB単位で読み書きし、進捗を表示する。実行前にデバイス名を確認済みとする。
GNU ddを使う適切なコマンドはどれか。
× 不正解
ddではifが入力、ofが出力を表す。デバイスを扱う場合は逆指定がデータ破壊につながるため、実行前の確認が重要である。
詳細解説
正しい
dd if=/dev/sdb of=disk.img bs=4M status=progress入力を/dev/sdb、出力をdisk.imgとし、4MiB単位で進捗を表示する。
正解。デバイスを読み、disk.imgへ書き出す方向になっている。
誤り
dd if=disk.img of=/dev/sdb bs=4M status=progress入出力が逆で、デバイスへイメージを書き込む破壊的な方向になる。
disk.imgをデバイスへ上書きする逆方向である。
誤り
dd /dev/sdb disk.img bs=4Mddの入出力は位置引数ではなくif=とof=で指定する。
if=とof=がなく、ddのオペランド形式にならない。
誤り
cp disk.img /dev/sdb方向が逆であり、要求したddのブロックサイズと進捗指定もない。
方向が逆で、要求したddのオプションもない。
実際に確かめる
一時的な検証環境で実行できる例です。
LAB_DIR=$(mktemp -d)
printf '0123456789' > "$LAB_DIR/source.bin"
dd if="$LAB_DIR/source.bin" of="$LAB_DIR/copy.bin" bs=4 status=none
cmp "$LAB_DIR/source.bin" "$LAB_DIR/copy.bin" && echo MATCH
rm -r "$LAB_DIR"期待される結果
MATCH理解のポイント
- ifは入力ファイル
- ofは出力ファイル
- bsは読み書きのブロックサイズ
確認時の注意
- 確認環境: GNU coreutils 9.x
- 検証では実デバイスを使用せず、一時通常ファイル間のコピーだけを行う。
基礎のおさらい
デバイス操作
ofにブロックデバイスを誤指定すると既存データを上書きする。lsblk等で識別を再確認する。
完全な複製
読み取りエラー処理や同期、進捗、ハッシュ確認などは用途に応じて追加設計が必要になる。
問題IDKP-103-056
確認環境GNU coreutils 9.x
最終技術確認2026-08-12
誤り・権利侵害を報告