2017年10月18日水曜日

第8世代Inspiron14購入

Core-iが第8世代になったので、ノートPCを新調しました。DELLのInspiron 14です。しかし、誤爆だったかもしれません。

とは言っても、Inspiron自体が駄目な訳じゃないです。
今度のCPUはCore-i5ながら4コア8スレッド対応なので、購入したInspironもCore-i7ではなく、Core-i5 8250Uにしてみましたが、これまでのCore-i7 4710MQを積んだdynabook R73よりも少し速いくらいです(マルチコア対応アプリを動かしたとき)。それでいて15W、薄く、ファンも静かでよく出来ていると思います。

残念だったのは、cudaの開発環境が欲しくてノートなのに敢えてGPU付きを買ったのですが、なんとcuda toolkitはGeForce MX150に対応していないらしいじゃないですか!何てことですか。言われてみれば、MX150のベースとなっていると言われているGT1030もcuda-Enabledなデバイスリストに入っていませんね。バージョンアップで対応してくれたら良いのですが(なるべく早く!)

2017年10月16日月曜日

dism /Apply-imageでエラー5(アクセスが拒否されました)

第8世代のCore-i5ノート(DELL Inspiron 14)を買って、現在、環境整備中です。これまでのPCからファイルなどを移行するのに、いったん旧環境をdismでwimファイル化したうえで、新環境上でそのwimを展開、または、マウントしてファイルを整備しようとしていたところ、wimの展開・マウント処理でエラー5が出て先に進めませんでした。

調べてみると、WSL(Windows Subsystem for Linux)が入っている環境をdismで/Capture-imageすると、そのwimファイルは/Apply-imageや/Mount-wimできないことがあるそうです。

KB3179598

どうやら、旧環境でWSLをインストールしていて、これを/Capture-imageするとダメになることがあるらしいです。このwimファイルに対して何をしようとしても、ログファイルdism.logに次のファイルでのエラーログが記録されていました。

(マウント先ディレクトリ)\Users\ユーザー名\AppData\Local\lxss\rootfs\usr\share\perl\5.18.2\Pod\Checker.pm

名前から察するに、確かにWSLのルートfs上のファイルで何かエラーが起きているようです。

既に/Capture-imageし終わってwimファイルを作っているので、これをなんとか展開(か、マウント)できるようにしたい。しかし、dismのコマンドには特定のディレクトリやファイルのみを展開する機能はないし、問題となっているファイル・ディレクトリのみを削除する方法も用意されていないようです。
少しネットで調べると、7Zip(正確には7zFM=7-zip file manager)を使うと指定したファイル・ディレクトリを削除できるような書き込みを見つけましたが、実際にやってみると「読み込み専用です」というようなメッセージが出て削除できませんでした。どうも、wimファイルの内容を閲覧できても、7zFMでは内容の操作はできないようです。

諦めて、旧環境のキャプチャからやり直すつもりでいました。lxrun /uninstall /fullを実行するとWSLとルートFSがすべてアンインストールされるようなので、その後再度/Capture-imageからやり直そうと思っていたところ、wimlibというツールでwimファイルの内容を操作できるらしい情報を入手しました。
早速、https://wimlib.net/からダウンロードしてインストール、そして次のコマンドを実行して問題のディレクトリを削除してみました。

wimupdate.cmd イメージファイル名.wim --command="delete Users\(ユーザー名)\AppData\Local\lxss --recursive"

100GB以上もあるwimファイルなのに、数十秒で終わりました。本当に消えているのかどうかを7zFMで調べてみると、確かに問題のlxssディレクトリがありません。素晴らしい!

その後は、/Mount-imageも/Apply-imageもできるようになりました。これで、環境の移行作業が進められます。