プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

Windows 10 ファイル履歴でのバックアップを設定

新しい PC (こちらの記事参照)では Windows 10 の機能であるファイル履歴を使って、バックアップを設定したいと考えています。

ファイル履歴機能についてよく知らなかったので、作業時に気になった点などについてメモっておきます。

今回のバックアップの全体像

今回のバックアップの全体像としては、こんな感じで考えています。

C および D ドライブの指定フォルダ ( SSD )--ファイル履歴-->E ドライブ (NAS上の iSCSI) --iSCSI LUN のレプリケーション-->別のNAS

これは、

  • 作業領域(C および D ドライブ)は SSD 上に用意することでそれなりに速くアクセスできるようにし、
  • Windows のファイル履歴を使ってバックアップ操作を意識せずに定期的にデータを保存し、
  • iSCSI と NAS の LUN のレプリケーションを使うことでバックアップドライブ全体も残せるんじゃないかな

というものです。

ファイル履歴

Windows のファイル履歴機能は、バックアップ機能の一つで、その名の通り、一定時間ごとに更新したファイルの履歴を取っていってくれるもののようです。Windows 8 / 8.1 からあったようですね。

このファイル履歴機能のデフォルト設定では、いわゆるユーザープロファイルフォルダ(C:\Users\ユーザー名)配下にあるフォルダを対象に、指定したドライブにバックアップを取るようです(ユーザープロファイルフォルダそのものは対象外っぽいのでご注意を)。また、自由にバックアップ対象にフォルダを追加したり、除外したりすることができるようです。

ただし、実際に試した際(Windows 10 Pro, 21H1)、 D:\ のような別ドライブのルートフォルダをバックアップ対象に追加できるにはできたたのですが、正しく復元することができませんでした(復元に失敗するのではなく、そもそも復元候補として表示されませんでした)。なので、Cドライブ以外のドライブを対象にする場合は、D:\test みたいにフォルダを作ってそれを対象に加えるのが無難なようです。

(参考)

ドライブ全体を追加するのができない話

別ドライブの個別のフォルダは追加可能という話

ファイル履歴の設定

では、早速設定してみます。

『設定』->『更新とセキュリティ』->『バックアップ』を選択し、『ファイル履歴を使用してバックアップ』のところにある、『ドライブの追加』をクリックします。

f:id:junichim:20210930212118p:plain

すると、ファイル履歴を保存する対象ドライブが表示されるので、

f:id:junichim:20210930212151p:plain

希望するドライブを選択します。ここでは、 iSCSI のドライブである E ドライブを選択しました。

次に、『その他のオプション』をクリックして、バックアップ間隔や対象フォルダを設定します。上記にも書いたように、デフォルトは、 C:\Users\ユーザー名 以下のフォルダが対象になっています。

ユーザープロファイルフォルダ配下は一部のみバックアップ対象に含め、その他としては D ドライブのサブフォルダをいくつか指定しています(上述したように、 D:\ は指定しません)。とりあえずこんな感じに設定しました。

f:id:junichim:20210930212309p:plain

設定に問題がなければ、一度『今すぐバックアップ』ボタンを押して、初回のデータを取得しておきます。簡単ですね。

ファイル履歴からの復元

『設定』から『バックアップ』を開き、『その他オプション』を選択し、画面下部の『現在のバックアップからファイルを復元』をクリックします。

下記のようなフォルダ/ファイル選択画面が表示されるので、

f:id:junichim:20210930212659p:plain

復元したいフォルダ/ファイルを選択して、画面下部の緑色のボタンを押します。なお、複数のバックアップがあれば、左右の矢印で復元したい日時を選択します。

問題なく復元できれば、復元した対象がエクスプローラで表示されます。 別ドライブにあるフォルダ/ファイルを選択しても、問題なく動作しました。

これはなかなかいいですね。

ファイル履歴の使用停止

もし、何らかの理由でファイル履歴を停止したくなったら、『設定』から『バックアップ』を開き、『その他のオプション』を表示し、画面下部の『ドライブの使用を停止』を押します。

f:id:junichim:20211001152753p:plain

すぐさま、ファイル履歴の使用が停止されます。

画面の説明にも書いてありますが、ファイル履歴を停止してもそれまで使っていた保存先のドライブのルートフォルダに、 E:\FileHistory という感じでフォルダが残っています。こちらも、もし不要なら、このフォルダごと削除すればOKです。

なお、もし、この時、初期状態の画面と異なる画面になってしまった場合、一部設定が残っているかもしれません。そのような場合は、

C:\Users\ユーザー名\AppData\Local\Microsoft\Windows\FileHistory

をフォルダごと削除すれば初期状態に戻ります。

(参考)

Windows Update の自動更新を停止

Windows 10 Pro だと、グループポリシーエディタを使えば、 Windows Update の自動更新を停止することができます。

開発が佳境なタイミングでアップデートがかかり、トラブルになるのが嫌なので、以前から設定していました。ネットにもたくさん情報があるので、迷ったのですが、まだ自分で記事にまとめてなかったので、いまさらながらメモっておきます。

設定前

Windows Update の画面を開くとこんな感じになってます。見慣れた画面ですね。

f:id:junichim:20210930115516p:plain

設定方法

Windows 10 のタスクバーの検索から

gpedit.msc

と入力すると

f:id:junichim:20210930114748p:plain

のように、グループポリシーエディタが表示されるので、クリックして起動します。

起動したら、『ローカルコンピューターポリシー』->『コンピューターの構成』->『管理用テンプレート』->『Windows コンポーネント』->『Windows Update』 と進みます。

f:id:junichim:20210930115044p:plain

右側の項目一覧に『自動更新を構成する』があるので、ダブルクリックして構成を行います。

f:id:junichim:20210930115646p:plain

設定画面で『有効』を選択し、画面左下の『自動更新の構成』で

2 - ダウンロードと自動インストールを通知

を選択します。

こうすることで、更新プログラムの通知はされるのですが、ダウンロードやインストールはユーザーが操作しないと始まらない状態になります。

設定項目に問題がなければ『OK』を押して、PCを再起動します。

これで、設定完了です。

設定後

上記の設定を行うと、設定画面は、

f:id:junichim:20210930115315p:plain

のように変化し、ポリシーで設定内容が管理されている旨表示されます。

これで、勝手に Update が走って困ることは避けられますね。

参考

wsl2 への引っ越し

こちらの記事に書いたように、PC新調に伴い、 wsl 環境も一新したので、古い環境のファイルなどを移行しました。こちらは、その際のメモになります。

ファイルのコピー

Windows のエクスプローラから

\\wsl$\Ubuntu\home\mor

を指定すれば、 wsl 内のファイルを取得することができます。

なので、古いほうから必要なものをいったん Windows に吸い上げてコピーします。

アプリケーションのインストールなど

古い wsl 上で使っていたアプリケーションを改めて入れなおします。

hugo

mor@DESKTOP-DE7IL4F:~$ wget https://github.com/gohugoio/hugo/releases/download/v0.77.0/hugo_0.77.0_Linux-64bit.deb
(中略)
mor@DESKTOP-DE7IL4F:~$ sudo dpkg -i hugo_0.77.0_Linux-64bit.deb
[sudo] mor のパスワード:
以前に未選択のパッケージ hugo を選択しています。
(データベースを読み込んでいます ... 現在 35493 個のファイルとディレクトリがインストールされています。)
hugo_0.77.0_Linux-64bit.deb を展開する準備をしています ...
hugo (0.77.0) を展開しています...
hugo (0.77.0) を設定しています ...
mor@DESKTOP-DE7IL4F:~$

C/C++ 開発環境

mor@DESKTOP-DE7IL4F:~$ sudo apt install build-essential
mor@DESKTOP-DE7IL4F:~$ sudo apt install gdb

Java 開発環境

mor@DESKTOP-DE7IL4F:~$ sudo apt install default-jdk

.bashrc に JAVA_HOME を設定しておきます。

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java

aws cli

いままでは aws cli のバージョン 1 系を使ってましたが、この機にバージョン 2 系を入れます。公式のインストール方法に従ってインストールします。

mor@DESKTOP-DE7IL4F:~$ sudo apt install unzip
mor@DESKTOP-DE7IL4F:~$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
mor@DESKTOP-DE7IL4F:~$ unzip awscliv2.zip
Archive:  awscliv2.zip
(中略)
mor@DESKTOP-DE7IL4F:~$ sudo ./aws/install
You can now run: /usr/local/bin/aws --version
mor@DESKTOP-DE7IL4F:~$ 

確認

mor@DESKTOP-DE7IL4F:~$ aws --version
aws-cli/2.2.42 Python/3.8.8 Linux/5.10.16.3-microsoft-standard-WSL2 exe/x86_64.ubuntu.20 prompt/off
mor@DESKTOP-DE7IL4F:~$

設定は バージョン 1 も 2 も同じようなので、以前の設定ファイルを ~/.aws/ フォルダにコピーして完了です(パーミッションは 600 です)。

nvm/node.js

昔書いたこちらの記事を参考に改めてインストールしておきます。

mor@DESKTOP-DE7IL4F:~$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14926  100 14926    0     0  83853      0 --:--:-- --:--:-- --:--:-- 83853
=> Downloading nvm from git to '/home/mor/.nvm'
=> Cloning into '/home/mor/.nvm'...
remote: Enumerating objects: 348, done.
remote: Counting objects: 100% (348/348), done.
remote: Compressing objects: 100% (297/297), done.
remote: Total 348 (delta 39), reused 155 (delta 26), pack-reused 0
Receiving objects: 100% (348/348), 207.69 KiB | 781.00 KiB/s, done.
Resolving deltas: 100% (39/39), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /home/mor/.bashrc
=> Appending bash_completion source string to /home/mor/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
mor@DESKTOP-DE7IL4F:~$

とりあえず node.js の v14 をインストールしておきます。

mor@DESKTOP-DE7IL4F:~$ nvm install --lts 14
Downloading and installing node v14.18.0...
Downloading https://nodejs.org/dist/v14.18.0/node-v14.18.0-linux-x64.tar.xz...
########################################################################################################################################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v14.18.0 (npm v6.14.15)
Creating default alias: default -> lts/* (-> v14.18.0)
mor@DESKTOP-DE7IL4F:~$

その他

jq を使ってるスクリプトがあるので、追加

mor@DESKTOP-DE7IL4F:~$ sudo apt install jq

VSCode の拡張機能をインストール

最近は、 wsl 上で作業を行う時も、 VSCode を使うので、こちらも整えておきます。

Remote WSL

VSCode 側の作業としては、こちらの記事で書いたように、拡張機能として Remote WSL を入れればOKです。

WSL 側の作業

mor@DESKTOP-DE7IL4F:~/work$ code .
Installing VS Code Server for x64 (7f6ab5485bbc008386c4386d08766667e155244e)
Downloading: 100%
Unpacking: 100%
Unpacked 1828 files and folders to /home/mor/.vscode-server/bin/7f6ab5485bbc008386c4386d08766667e155244e.
mor@DESKTOP-DE7IL4F:~/work$

その他

をそれぞれインストールしておきます。

なお、インストール先は、WSL 側にする必要があります。VSCode でWSL 側のフォルダを開いた状態で、拡張機能を選択すれば、 WSL 側にインストールされます。

まとめ

wsl 上で何を使っていたか調べるのに、意外と時間がかかってしまいましたが、これで必要なものは全部移せたはずです。旧環境が残っているうちに、もう少し使い込んで、抜けがないようにしたいと思います。