過去問ドリル

LinuCレベル1 ファイル・ディレクトリの操作と管理 問27

ファイル・ディレクトリの操作と管理/基本的なファイル管理の実行

仮想ディスクなどの検証用に、中身がすべてゼロで埋められた100MiBのファイル disk.img を作成したい。コマンドとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「ファイル・ディレクトリの操作と管理」に対応。実際の試験問題ではありません)

正解:C

解説

dd は if= で指定した入力から、bs= で指定したブロックサイズ単位で count= の回数だけ読み、of= で指定した出力へ書き込むコマンドです。/dev/zero は読むとゼロのバイトを無限に返すデバイスなので、bs=1M count=100 と組み合わせると1MiB×100=100MiBのゼロ埋めファイルができます。if と of を取り違えると、意図しない相手を上書きする危険があります。ddはディスクやパーティションの丸ごとの複製や、ISOイメージのUSBメモリへの書き込みにも使われます。

選択肢ごとの解説

  • A誤り。入力と出力が逆です。disk.img がまだ無ければ開けずにエラーになり、あってもその内容を読んで /dev/zero に捨てるだけで、目的のファイルは作られません。
  • B誤り。/dev/null は読むとすぐにファイルの終端を返すため、何も書き込まれず空のファイルになります。
  • C正しい。/dev/zero から1MiBのブロックを100回読み、100MiBのゼロ埋めファイルを作成します。
  • D誤り。1KiB×100回で100KiBにしかならず、100MiBのファイルになりません。
LinuCレベル1の問題を演習モードで解く