昨日(11月7日)、あることがきっかけでWindows10を最新のver1703にアップデートすることになった。Cドライブの容量が2GBしか残っていないので無理かと思っていたが、何とかアップデートができた。今後の参考になりそうなので、記録しておく。
このページの目次:
- Cドライブが容量不足だ
- 容量不足解消の切り札、ジャンクションリンク
- フォルダーをDドライブに移動
- アクセス権で手間取ったフォルダーの削除
- ジャンクションリンクとシンボリックリンクの作成
- いよいよWindows10を最新ver1703にアップデート
- アップデート後の問題点と反省点
Cドライブが容量不足だ
ブログのサイドバーを編集しようとして、編集画面を開いたら、このedgeは最新ではないので、アップデートしろと注意されてしまった。何しろ、このマシンはちゃっちい安物だ。Cドライブ(SSD)が28GBしかない。それではさすがにどうしようもないので、拡張スロットに110GBのSSD、USBに1テラハードディスクをさして使っている。Cドライブは容量が2GBしか残っておらず、ブラウザを乗り換えたくてもインストールできない。仕方なくedgeを使っているという有様だったが、ほかのウェブページでも頻繁に、最新ブラウザを使うように文句を言われていた。なので、何とかしなくちゃと思ってはいた。しかし、どいつもこいつも何故こちらの都合も聞かずに勝手にCドライブにインストールされてしまう仕様なのか、本当に不便だ。
調べると、最新バージョンは、edgeだけアップデートというわけにはいかず、win10そのものをアップデートする必要があると分かった。それで、マイクロソフトのページでチェックしたら、容量不足でアップデートできません最低でも8GB必要ですと、言われてしまった。とりあえず、主だったアプリ(オフィスなど)を一旦アンインストールしてアップデートしようかと思ったが、まず、もっと楽で良い方法がないか探してみることにした。
容量不足の切り札、ジャンクションリンク
UNIX系OSならなじみのシンボリックリンクだが、ウィンドウズにも似たものがあると、始めて知った。米国のMSフォーラムに、こんな記述があった。
>MKLINK /J “C:\Program Files\Microsoft Office 15” “O:\Program Files\Microsoft Office 15”
>MKLINK /J “C:\Program Files (x86)\Microsoft Office” “O:\Program Files (x86)\Microsoft Office”
This created junction points for each directory on the C drive that Office installs to, and point them to the O drive. So the OS thinks its going to C drive for those folders, but in reality its going to the O drive.
これは使えそうだ。要するに、Cドライブにインストールしているアプリを、フォルダーごとそっくりDドライブに移動して、ジャンクションリンクなるものを作成したら、OSはそのアプリをCドライブにあるものと見なしてくれるということだ。ジャンクションリンクを作るには、コマンドプロンプトで「mklink /j」すれば良い。これなら、Cドライブの容量不足を解消できそうだ。
早々我マシンで容量を食っているアプリをDドライブに移動することにする。office365とadobe acrobat readerとatokとInternet ExplorerをDドライブに移動してジャンクションリンクを張ろう。これで8GB以上空くはずだ。ひょっとしたらc:\Program Files をまるごと、移してしまうことが出来るかもしれないが、何か心配なので、とりあえずこの方針で行く。
フォルダーをDドライブに移動
まず自分に管理者(Administrators)権限があるかどうかを確認する。さもないといろいろ面倒なことになる可能性がある。設定で確認すると、大丈夫だ、管理者と書いてある。ファイルエクスプローラーでいきなり移動するのは途中で電源がブチッといったときなど少々心配なので、とりあえず、
- フォルダーをDドライブにコピー
- Cドライブのフォルダーを削除
- ジャンクションリンクを作成
の手順をとることにする。では早速始めよう。まずOffice365だ。ファイルエクスプローラーで、C:\Program Files\Microsoft Office を D:\Program Files\Microsoft Office にコピー。少し時間がかかるはずなので、コーヒーブレイク。ところが戻ってきたら、エラーが出ている。
「AppvlsvStream32.dll ファイルが見つかりません!」だと。そのファイルの詳細を見ると、種類のところに symlink と記載がある。シンボリックリンクなのでこの場所には実態が無い、だから別の場所には移せないということか。検索すると、全部で21カ所シンボリックリンクがあった。仕方ない、面倒だが、これは一旦削除して、Dドライブに移動後、同じシンボリックリンクを作成することにする。とりあえず、この21カ所を除いてコピーは終わった。
アクセス権で手間取ったフォルダーの削除
今度はCドライブのOfficeの削除だ。管理者なので、ファイルエクスプローラーで簡単に削除できると思っていたが、いざ始めると「アクセス権限が無い」と注意されてしまった。ファイルを右クリックしてプロパティのセキュリティ項目を見ると、ファイルオーナーが Trusted Installer になっていて、何と administrators にも書き込み権限がない。編集ボタンを押してフルコントロールにチェックすれば良いはずだが、グレー表示でそれも出来ない。そうするとオーナーを users または administrators に変更してから、権限をフルコントロールにするという方法をとるのだろう。この手順がかなり面倒なので、箇条書きにしてまとめておく。
- 管理者として作業する
- file explorer で削除したいファイル・フォルダーを右クリックする
- プロパティをクリックする
- セキュリティタグをクリックする
- 詳細設定ボタンを押す
- 所有者変更をクリックする
- 所有者を「users」に変更して、OKする
(選択するオブジェクト欄に「users」と記入してOKする)
- 編集ボタンを押して、usersを選択する
- アクセス許可:users で「フルコントロール」をチェックする
- OKする
これは時間がかかった。Linuxだったらシェルでパパッとできるのに、と恨めしい。ひょっとしたら、こちらの勉強不足で、Windowsでもコマンドプロンプトで簡単にできる方法があるのかもしれない。とにもかくにも、この方法で最下層から上層まで順にフォルダーの権限を変更しながら、削除を完了した。
ジャンクションリンクとシンボリックリンクの作成
ようやくここまで来た。あと少しだ。
ジャンクションリンクを作るのは、簡単だ。コマンドプロンプトを管理者権限で立ち上げて、
> mklink /j “C:\Program Files\Microsoft Office” “D:\Program Files\Microsoft Office”
> mklink /j “C:\Program Files\Microsoft Office 15” “D:\Program Files\Microsoft Office 15”
とすれば良い。次は、コピーできなかったシンボリックリンクファイルの作成だ。これも一つ一つの作業は簡単だが、多数あるので、間違わないように細心の注意が必要。どのフォルダーに何のシンボリックリンクがあったのかは、しっかり記録しておくこと。私のOffice365の場合は、次の6ファイルのシンボリックリンクが21カ所あった。
AppvlsvStream32.dll
AppvlsvSubsystems32.dll
C2R32.dll
AppvlsvStream64.dll
AppvlsvSubsystems64.dll
C2R64.dll
シンボリックリンクの個々の作成は、コマンドプロンプトでこうする。
>mklink “c:\Program Files\Microsoft Office\root\VFS\ProgramFilesX86\Microsoft Office\Office16\AppvlsvSubsystems32.dll” “c:\Program Files\Common Files\Microsoft Shared\ClickToRun\AppvlsvSubsystems32.dll”
今度は、/j オプションは不要だ(単に mklink “・・・” だ)。これを21回繰り返して、やっとOfficeが終わった。
いよいよWindows10を最新ver1703にアップデート
上述の作業をatokとadobe acrobat readerとinternet explorerで繰り返し(Officeほど大変ではない)、ようやくCドライブに8.5GBの空きが生まれた。マイクロソフトのページで「今すぐアップデート」を押すと、今度は文句を言われず、アップデートが始まった。とりあえずうれしい。が、まだまだ油断は出来ない。夕食後、無事アップデートが終わっていたので、立ち上げてみた。
すると、Dドライブに移動した、OfficeとAcrobat Readerとatokが動かない。ちょっと慌てたが、おそらくジャンクションリンクが認識できないのだろうと思い、ジャンクションリンクを一旦削除して作成し直してみた。コマンドプロンプトを管理者権限で動かして
> mklink /j “C:\Program Files\Microsoft Office” “D:\Program Files\Microsoft Office”
> mklink /j “C:\Program Files\Microsoft Office 15” “D:\Program Files\Microsoft Office 15”
> mklink /j “C:\Program Files\JustSystems” “D:\Program Files\JustSystems”
> mklink /j “C:\Program Files(x86)\Adobe” “D:\Program Files(x86)\Adobe”
すると今度は、何事も無かったように、ちゃんと動いた。
アップデート後の問題と反省点
しかし、atokが不安定になっている。Edgeで漢字変換できない。調べると、Win10をアップデートしたら他社製FEPは再インストールするように書いてある。仕方ない。アンインストールしてインストールし直した。今度は普通に動く。atok以外に、アップデートで動かなくなったり、調子の悪くなったアプリが複数あった。再インストールするのはそれなりに面倒だ。こういうことがあるので、シリアルナンバーなどはちゃんと管理しておく必要があると痛感したのだった。
一方Internet Explorerは、勝手に新しくCドライブにインストールされてしまった。これは、OSの付録アプリだから有無を言わさず入れてしまう、いうことだろう。今回の反省点として、
- atokは単にアンインスートルし、OSアップデート後に再インストールするべきだった
- Internet Explorerは、単にフォルダーごと削除をすれば良かった(勝手にインストールされる)
ということ。とにかく無事にアップデートが完了した。