モチベーション
音楽CDをbin+cueのイメージファイルとして保存しています。ここ1年はSpotifyで満足していたのですが久しぶりにCDでないと聴けない音源があったので、普段行き来しているWindowsとLinuxのどちらでも使える方法を考えたいと思い、試しました。
ほかに試したこと
MSYS2+cdrdao
https://qiita.com/u1F992/items/b62f23d8608d880f89c8
以前こんなことをしていたので、まずはLinux向けのCLIcdrdao
をMSYS2で動かすことを考えましたが、早いうちにあきらめました。あまり使われていない環境で依存関係とビルド手順を調べるのはつらいです。
VirtualBox+cdrdao
VirtualBoxであればホストのUSBデバイスを簡単に仮想環境に引き渡せます。もちろんcdrdaoも実行できました。これでもよかったのですが、Windowsとの隔たりが大きく常用はしないだろうなと思いました。
WSL2カーネルのビルド
ビルド手順自体はありふれているので読んだ記事を紹介して割愛します。General Setup > Local version
を変更しておくのはとてもよさそうです。
有効にするオプションは以下の3つです。
SCSI device support > SCSI CDROM support
USB support > USB Mass Storage support
-
USB support > USB Attached SCSI
- パフォーマンスが改善するらしい
ビルドツールでWSL2環境を汚したくないのであれば、作業環境は現在の環境を複製するのがいいと思います。参考
wsl --list --verbose
wsl --export <current-distro> <temporary-path>\wsl2-usbip.tar
wsl --import wsl2-usbip <install-path> <temporary-path>\wsl2-usbip.tar
wsl --distribution wsl2-usbip --user <user>
あとは上の記事のようにUSB-IP経由で外付け光学ディスクドライブをWSL2に引き渡せば、WSL2から/dev/sr*
として触ることができるようになります。
sudo cdrdao read-cd --device /dev/sr0 --read-raw --datafile image.bin image.toc