1.02.2基礎
input.imgの内容をoutput.imgへコピーする。
ddを使い、1MiB単位で読み書きする。
入出力の向きが適切なコマンドはどれか。
× 不正解
ddではif=が入力ファイル、of=が出力ファイル、bs=が読み書きするブロックサイズを表す。出力先は上書きされ得る。
詳細解説
誤り
dd if=output.img of=input.img bs=1M入力と出力が逆で、output.imgからinput.imgへ上書きする。
誤り。ifとofが逆なので、既存のoutput.imgを読み、input.imgを上書きする危険な方向になる。
誤り
dd input.img output.img bs=1Mddの入力・出力ファイルは通常if=とof=のオペランドで指定する。
誤り。ddは通常のcpのような2つの位置引数ではなく、if=とof=を含むオペランドで入出力を指定する。
誤り
dd if=input.img of=output.img count=1Mcountはコピーする入力ブロック数で、1MiBのブロックサイズ指定ではない。
誤り。count=1Mはブロック数の指定であり、ブロックサイズを1MiBにする要求を表さない。
正しい
dd if=input.img of=output.img bs=1Mifを入力、ofを出力、bsを読み書きするブロックサイズとして指定する。
正しい。input.imgをif、output.imgをofへ割り当て、bs=1Mで読み書き単位を指定する。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp -d); printf 'image-data' >"$tmp/input.img"; dd if="$tmp/input.img" of="$tmp/output.img" bs=1M status=none; cmp -s "$tmp/input.img" "$tmp/output.img" && echo identical; rm -rf "$tmp"期待される結果
identical理解のポイント
- ifはinput file
- ofはoutput file
- bsはblock size
確認時の注意
- 確認環境: GNU coreutils 9.x / 小さな一時ファイル
- 検証では小さな一時ファイルだけを複製し、デバイスファイルへ書き込まない。
基礎のおさらい
ブロックコピー
ddはファイルやデバイスをブロック単位で読み書きし、変換や件数制限も組み合わせられる。
出力先の危険
ofの指定を誤ると既存データを上書きするため、デバイス名を含めて方向を必ず確認する。
問題IDKL-101-409
確認環境GNU coreutils 9.x / 小さな一時ファイル
最終技術確認2026-08-13
誤り・権利侵害を報告