3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ddでisoを作成する(Windows)

Last updated at Posted at 2023-01-15

CD/DVDを丸ごとisoファイルに保存したいと考えており、ImgBurnなどのフリーウェアを追加したくなかったため、今あるもので実現できないか考えていました。

Windowsの標準機能ではないものの、ほぼ全員がインストールしているであろうGit(Git Bash)のみで実現できます。

Windowsでddを使用したい

LinuxやmacOSではdd(coreutils)というコマンドを使用すると、簡単にデバイスファイルからisoを作成できます。

dd if=/dev/scd0 of=out.iso status=progress

status=progressオプションを付与すると、ddコマンドは進捗を表示します。デフォルトでは何も表示されないため、これを付けておいたほうが動いている感があり心が落ち着きます。

WSL上でddを利用することを考えましたが、デバイスの扱いがわからず、実現できませんでした。光学ドライブは\\.\PHYSICALDRIVE*形式では表されないため、WSLにマウントする方法がわかりません。

/mnt以下にマウントしてmkisofsを使用する(失敗)

先に思い付いた方法は、光学ドライブもC:\、D:\ほかと同様にWSLの/mnt以下にマウントして、mkisofsコマンドでisoファイルを作成することでした。

しかし、この方法は正しくありませんでした(コマンドも割愛します)。ディスクの容量よりも小さいisoファイルが完成したので、およそフォルダ内を走査して、ファイル内容のみを固めたファイルを作成したのでしょう。

今回は物理メディアの完全なバックアップが目的だったので、これでは不十分でした。

Git Bashのddを使う

Windows上でLinux系のツールを使い、デバイスもLinux上のように扱いたいなら、WSLよりCygwin系列の互換レイヤーを利用したほうがよいようです。

Gitをインストールする際に付いてくるGit Bashには、ddが搭載されており、光学ドライブも/dev/scd*および/dev/sr*にマッピングされています。

つまり、再掲ですが、Git Bash上ではこちらのコマンドで光学ドライブからisoを作成することができます。

dd if=/dev/scd0 of=out.iso status=progress

実際に試せばわかることですが、たとえば/dev/scd0/dev/sr0はまったく同じデバイスを指しています。どちらを指定してもよいですが、光学ドライブだとわかりやすいのでscdが気に入りました。

余談

  • isoからディスクに焼くのは、Windowsの標準機能で可能
  • ついでに、USBメモリのバックアップにはDisk2vhdを使用して、仮想ディスクファイルに固めることにした

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?