2018年04月

WSLでUSBメモリにアクセスする

WSL(Ubuntu)からUSBメモリにアクセスするメモ。

  ここではUSBメモリと同じドライブレター(Gドライブ)でマウントディレクトリを作成。
  $ sudo mkdir /mnt/g

  USBメモリ(Gドライブ)をマウント
  $ sudo mount -t drvfs G: /mnt/g

  これでGドライブがWSL上で認識出来るようになる
  $ ls /mnt/g -l

  アンマウントするには
  $ sudo umount /mnt/g

本当はここからISOイメージをUSBメモリに展開したかったが、方法が見つからなかった。
詳しくは調べきれなかったが、パーティションを管理するようなツールはWSLではサポートされていないようだ。(fdsk等)

lamemp3とfdk-aacの音質

以前ビルドしたffmpegに追加したオーディオエンコーダの
lamemp3とfdk-aacをいろいろなビットレートでエンコードしてみた。
以下ビットレート以外は何もオプションを指定せずにエンコードを行った。

まずソース音源

aac 128k

mp3 128k

aac 64k

mp3 64k

aac 32k

mp3 32k

aac 16k

mp3 16k

aac 8k

mp3 8k

aac 4k

mp3 4k

WSLの有効化

Winodws10でWSLを有効にするための手順(バージョン1709)。

コントロールパネル→プログラム→Windowsの機能の有効化または無効化を選択。
ウィンドウが立ち上がるので"Windows Subbbbsystem for Linux"にチェックを入れて
OKボタン。
インストール完了後システムを再起動。

再起動後マイクロソフトストアから必要なディストリビューションを
インストール。

WSLのUbuntuでWindows用ffmpegをビルドするPart3

せっかくなのでlamemp3も追加してビルドし直した。

lameのダウンロードとインストール
$ cd /home/ユーザID/x86_64 
$ wget -O lame-3.100.tar.gz https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
$ cd lame-3.100
$ ./configure --host=x86_64-w64-mingw32 --prefix=$HOME/x86_64/tmp --disable-shared --enable-nasm
$ make && sudo make install

この状態でffmpegのconfigureに「--enable-libmp3lame」を追加しただけでは
"ERROR: libmp3lame >= 3.98.3 not found"とエラーになりconfigureが通らないので
「--extra-cflags="-I$HOME/x86_64/tmp/include" 」
「--extra-ldflags="-L$HOME/x86_64/tmp/lib"」
の2つを追加した。

以下余談
たまにエラーになるはずのない場所でエラーになることがあった。
断定はできないがそういう場合大抵、
antimalware service executableがメモリをごっそり確保(数GB単位)している
場合が多かった。

WSL環境のバックアップ

ffmpegのビルドを試している際に失敗するたびに1から環境を入れなおすのが面倒になったので
以下のサイトを参考に、レポジトリのupdate、upgrade、必要なパッケージのインストール
まで行った状態をスナップショット的に利用出来るようにした。
WSLのバックアップを検討する

まずバックアップファイルを保存するフォルダを作成。
$ mkdir -p /mnt/c/WSL_Ubuntu/bkup/yyyymmdd
この例だとC:\WSL_Ubuntu\bkup\yyyymmddが作成される。

Windowsのエクスプロラー上でC:\WSL_Ubuntu\bkupに
exclude_list.txtを作成後以下を書き込む。(バックアップから除外するディレクトリ)
/mnt
/dev
/proc
/tmp
/sys
/run
/var/log

ルートディレクトリからtarで圧縮
$sudo tar -cvpjf /mnt/c/WSL_Ubuntu/bkup/20180422/backup.tar.bz2 -X /mnt/c/WSL_Ubuntu/bkup/exclude_list.txt /

パッケージリストを作成(バックアップだけが目的であれば必要ない)
$ dpkg-query -f '${binary:Package}\n' -W >   /mnt/c/WSL_Ubuntu/bkup/20180422/list_pkg.txt

レストア
root directory に移動
$ cd /
展開前に確認
$ sudo tar -tvjf /mnt/c/WSL_Ubuntu/bkup/yyyymmdd/backup.tar.bz2 | more
問題なければ展開
$ sudo tar -xvjf /mnt/c/WSL_Ubuntu/bkup/yyyymmdd/backup.tar.bz2