514ばんの日誌

2017-04-27

ディレクトリ構成をいろいろ整理してみた

あんま模型もいじってないし日記もろくに書いてないんで
家で仕事してたら以下のような環境はよくある構成だと思うんで備忘録的に
PC-1 プライベート用(自室)
PC-2 仕事用(仕事部屋)
PC-3 居間にあるノート
どれもOSはWin10にしてある
あと、VM上にFreeBSD環境(これもいくつかユーザーを作り分けしている)
スマホはAndroid
すべて同一LAN内に存在
【アカウント】
Ac-1 プライベート用
Ac-2 仕事用
とりあえず、Windowsのアカウントは2つずつ、いずれのPCにも作る
7くらいからは、ようやくマルチアカウントっぽくなってきたので、別々に作っておいても悪くはないだろう
んで、それぞれのアカウントごとに、Microsofiアカウントも作る
(というか、元々、ホトメにアカウント持ってて、仕事用でもOfficeのネットインストール用にアカウント作ってた)
1からローカルアカウント作るときは、半角英数でユーザー名を作る方が何かとよい
(プロファイルフォルダが全角だと、フォルダを手入力するとき、いちいち日本語入力するのめんどくさい)
それぞれのローカルアカウントをMSアカウントに紐付けする
(別にしなくたっていいけど、OneDrive使ったり、カレンダー同期したりとかしてたら、もう紐付けちゃおうと思う)
スマホは、Androidなので、これも前から持っていたGmailのアカウントをGoogleアカウントとして使っている
これも2つ別々にできないことはないが、さすがにそれはめんどくさいんで
1アカウントを共用している
【HDDのフォルダ構成】
もう余程のことがないかぎり、システムの再インストールなんてないだろうけど
もしなんかあったときのために、自分で作ったり用意したデータやらなんやらは、システムドライブとは分けたい
(システムドライブと同居してると、再インストールで要フォーマットとかになったときに面倒になる)
ノートみたいに1ディスクしか普通ないような場合は、パーティション分けで「C:」と「D:」にする
うちの場合は、ノートと言っても持ち歩くわけでもなく(そもそもバッテリーがほとんど死んでる)
LAN内にいるので、ここに何かファイル作って置くというのは、あまりないが
仕事用PCの一部をミラー同期させて、バックアップとしているんで、やっぱり2つに分けてる
これまでにマザボがお亡くなりになったPCや古くて使わなくなったPCのHDDとかを移植してたりするんで
そのへんに適当に「home」フォルダを作る
例として、「D:」の「home」(d:\home)とする
(うちはPCによって余裕のある使えそうなHDDのドライブレターが違うから、これはバラバラ)
d:\home以下に、それぞれのユーザーごとのフォルダを掘る
(例:d:\home\private、d:\home\works 等)
これをホームディレクトリとする
各PCのアカウントごとの環境変数%HOME%も、このフォルダ名に入れておく(Emacsを使っているので)
普通はなくてもいいけど、設定してたら、「%HOME%」で直接エクスプローラがこのフォルダを開いてくれる
「.ssh/」とか「.emacs」とか使う人は使うような設定等も、ホームディレクトリとして作ったこのフォルダ内に収める
各PCのアカウントごとにログオンして、デフォルトでユーザープロファイルフォルダ(%userprofile%で開ける)に入っている
「ドキュメント」や「ピクチャ」などのフォルダを、さっき作ったホームディレクトリの中に移動する
(フォルダやらディレクトリやら混在して書いてるが、どっちも同じ意味。ホームフォルダなんて言わないだろって話)
「PC」を開いたときの直接アクセスしやすくなってる項目「ドキュメント」や「ピクチャ」は
これ自体は、実際のフォルダ位置を記録してあるだけで
プロパティ→「場所」で指定したフォルダが実際の保存フォルダになっている
デフォルトだと、ユーザープロファイルフォルダ内に存在するが、これをドラッグで移動させると
場所が自動的に変更になっている(いつの間にかそういう機能になってたようだが、俺が知らんかっただけか)
これで、仕事用とプライベート用の文書が混在することは減るだろう
(あとは使う側の問題だが)
IEとか使うことがあまりないが、「お気に入り」とかも一緒に移動させてしまう
「AppData」以下のソフトの設定とかユーザー単位で収まってるやつは、特に移動させてない
(というか、これは移動させるのに限界があったりするし)
必要があれば、個々にバックアップを取る形をとるほうが、だめになったときにすっきり捨てられるんでw
最後に、作ったホームディレクトリのフォルダをエクスプローラの「ピン止め」しておき
そのフォルダへのショートカット(もしくはジャンクション)をプロファイルフォルダに作っておけば
必要なときにアクセスしやすくなる
(案外、ホームディレクトリ自体は、一度決まってしまうと、そこまでアクセスしなくなるがw)
【クラウドとか】
どれもLAN内にあるから、あまりクラウドの恩恵を受けることもないんだが
スマホから画像をPCに移すときとか、クラウド経由の方が楽チンだったりするし
一部の設定だとか、ダウンロードしたソフトを各PC全部に入れるときとか
どれかのPCのクラウド同期させときゃ、勝手に他のPCのフォルダ上にも入るんで使っている
MSアカウントごとに、OneDriveのフォルダをユーザーごとの「ドキュメント」内に用意する
(普通は、プロファイルフォルダに作られるのを、自分でこっちに指定する)
これで、OneDriveに関しては、仕事用とプライベート用別々にフォルダ同期することになる
これとは別にGoogleドライブを設定する
主にスマホと各PCとのやり取り用となるが、1アカウントで全て扱うので
仕事用とプライベート用とのやり取りにも使える
なので、これの同期フォルダは、新たに「d:\home\share」などの共通フォルダを用意し
その中に「d:\home\share\Googleドライブ」というフォルダを掘り、そこを同期先として指定する
これで、仕事用とプライベート用で設定が違う場合は、OneDriveに置いて
どっちも同じ設定なら、Googleドライブに置く、という感じに使い分けできる
また、自室で仕事用のログオンすることは稀なので、ちゃんとクラウドの置き先をしていれば
余計なファイルを同期する必要がなくなる
【Windowsのライブラリ機能について】
構成上、1つのフォルダ内で収まりきらないことがある場合、ライブラリ機能で
個々のフォルダを登録しておくと、あっちに行ったりこっちに行ったりが少なくて便利なんだが
(ネトゲのスクショとかはドキュメント以下のゲームごとのフォルダ内に入ったりする)
Vistaだか7だかあたりから、WMPのメディアライブラリがこのライブラリ設定を共用する仕組みになってしまい
(Win10のフォトアプリとかGrooveミュージックもライブラリ設定を使おうとする)
知らん間に勝手にメディアライブラリに登録されとるがな!ってことも起きてしまう
ダウンロードしてきて整理前の画像だとかは、あとでまた違うフォルダに移動させたりするし
エンコ前の動画とか登録されても邪魔なだけだったりするし(今キャプチャ環境ないんでエンコすることがなくなったが)
こういうのは対象から外すようにしたい
なので、最終的にメディアライブラリにも登録していいよってフォルダを
上で挙げた共用のフォルダ「\home\share」以下にそれぞれ掘る
例:
d:\home\share\musics … リッピング済の音楽ファイルなど
d:\home\share\videos … エンコ済やDLして整理した動画とか
d:\home\share\pictures … 同様に整理した画像とか
これらのフォルダをライブラリの「ピクチャ」「ミュージック」「ビデオ」に登録し
既に登録されているユーザーの「ピクチャ」「ミュージック」「ビデオ」は登録から外す
もし、ライブラリからどっちの「ビデオ」も一括で登録したいのなら
新規でライブラリを作成し「ビデオ(全部)」とかいう名前にしておけばよい
んで、そのライブラリにユーザーの「ビデオ」とshare以下に置いた「ビデオ」を登録する
(別に「パブリックのビデオ」とか使ってもいいけど、そこまで使うなら「\home\share」とか自分で作った方がわかりやすいっしょ)
あと、直接は関係ないが、「ドキュメント」ライブラリに、「ダウンロード」フォルダを登録しておくと
どっちに置いたっけ?となったときに一括で探しやすい
ちなみに、ライブラリの各項目で使用されているアイコンは
「system32」内の「imageres.dll」に入ってる(shell32.dllではない)
既存の項目はアイコン変更できないが(レジストリでできるかもしれんが)
新規ライブラリを作成すると変更できるので、そこでこれが指定されているのがわかる
【あるフォルダをドライブ化する】
共用とした「\home\share」だが、これにドライブレターを割り当てるようにする
MS-DOSの頃からPCを触っているなら「subst」コマンドを思いつくだろうが
これだとバッチファイルをスタートアップに入れるとかやんないといけない
同様のことをレジストリに書けば、どのアカウントでログオンしても勝手にドライブ化してくれるようになる
(場所) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
[文字列値]- 「新しい値#1」にマウント先のドライブ名(Z:等、当然未使用のドライブレター)
[値のデータ] - フォルダパスを「\??d:\home\share」のように設定する
(??はそのままの文字列)
これで、再起動して、エクスプローラとか開けば、
共用のフォルダ「share」が指定したドライブですぐに開けるようになる
自分の場合は、これをプライベート用のPCにだけ設定しておいて
このドライブを共有指定し、他のPCで同じドライブ名でネットワークドライブ接続してある
share以下に「ミュージック」フォルダがあるので
全てのPCで同じドライブ名のフォルダで音楽ファイルを開くことができる
(これでFoobar2000のメディアフォルダ指定が統一できる)
この方法でドライブ化した場合、当たり前だが、ドライブの変更や削除はレジストリをいじり直す必要がある
【ジャンクション】
フォルダをドライブ化するのは、親フォルダからの独立みたいなもんだが
その逆とでもいうか、あるフォルダの中に別のフォルダ(別のドライブ以下も含む)をリンクさせることもできる
普通は「ショートカット」の作成を考えるところだが、ジャンクションという機能を使う
(シンボリックリンクやハードリンクもあるが、ジャンクションでないと開けないケースがあるので)
これまでの作業でいくと、privateのユーザードキュメントは、「d:\home\private\documents」に入ってることになるが
ネトゲのマビノギのスクショは、ドキュメントのマビノギフォルダ内の「スクリーンショット」というフォルダに収まるようになっている
つまり↓のフォルダの通りになる
「d:\home\private\documents\マビノギ\スクリーンショット」
どうせなら、いちいち「ドキュメント」から遡るんじゃなく、「ピクチャ」から開きたいよね…となったときに、ジャンクションの出番となる
ユーザーの「ピクチャ」が「d:\home\private\pictures」だとすると
d:
cd home\private\pictures
mklink /d /j mabiss d:\home\private\documents\マビノギ\スクリーンショット
のようにコマンドプロンプトから打ち込み、エクスプローラで「ピクチャ」を開くと
「mabiss」というフォルダ(のようなもの)ができている
これを開けば、スクショフォルダと同じ内容が表示される(当然開くこともできる)
HDDの容量が少なくなってきたときに、該当フォルダを移動させ、代わりにジャンクションを張れば
見かけ上は、そのドライブの中にあるフォルダのように振る舞うこともできる
(いい加減、この機能、OSデフォで右クリックだけで作れるようにしてほしい)
作ったジャンクションを削除しても、元のフォルダ(ジャンクション先)は影響しない
ジャンクション先を移動とかした場合、作ったジャンクションは追いかけてくれないので(開けないと言われる)
いったんジャンクションを削除して、作り直す必要がある
ジャンクションを含むフォルダを共有指定し、FreeBSDなどのUNIX環境からmountやsmbclientで接続すると
ジャンクション以下の内容も共有接続で開くことができる
(シンボリックリンクだとこれがうまくいかないことがある)
【共有関連】
自分以外、PCを触ることがないので、別にどのアクセス許可も「everyone」が入っていても構わんのだが
気分的に気持ち悪い場合、「everyone」を外して、個別のアカウントだけ許可指定に入れることがある
そうすれば、そのアカウントでログオンした場合だけ、共有先が閲覧可能という風にできるのだが
MSアカウントと紐付けるようになったせいか、VMのFreeBSD上からmountやsmbclientで接続しにいくと
ローカルアカウントのユーザー名とパスワードで拒否されるようだ
この場合、FreeBSD上からの接続は、
ユーザー名は「ローカルアカウントのユーザー名」
パスワードは「MSアカウントのパスワード」
にする
あと、共有する側で、
プロパティ→セキュリティタブの詳細設定から、対象のファイル・フォルダの所有者を自アカウントに変更しておく
(ローカルアカウントで指定しても設定上はMSアカウントになる)
あと、アクセス許可に「CREATOR OWNER」を追加しておく
自アカウントだけではダメみたい
FreeBSD以外がどうかは知らないが、とりあえずこれで繋がるようになった
(共有側でeveryoneを許可に入れていれば、これをする必要はない)
【クラウド以外のフォルダ同期】
バックアップの意味で、仕事用のドキュメントフォルダをノートの方に同期するようにしておく
あと、他のHDDの方に、ユーザーディレクトリを同じように同期するようにしておく
(だから仕事用のドキュメントフォルダは2ヶ所にバックアップコピーされてる)
同期ソフトは、「FreeFileSync」を「ミラー」で使っている
batchで保存して、タスクスケジューラで定期的に起動させておけばおk
【Foobar2000の一部設定とかを共用してしまう】
あくまでも、自分1人で2ヶ所(別々のPC)で同時に起動しないという前提の話だが
基本的に、fb2kの追加コンポーネントや設定やライブラリは
ユーザーごとの「AppData\Roaming」の「foobar2000」内に収まるようになっているが
(Portableインストールや、以前からの引き継ぎでインストールフォルダ内に個人設定が入るようになっている場合は除く)
この中の
「liblary」(たぶん登録されたメディアライブラリのデータ一式)
「playlists-v1.3」(fb2k内に作られるプレイリスト)
「index-data」(なんかよくわからんが更新日時見てるとこれもメディアライブラリ絡みか)
の3つをGoogleドライブ上に移動させて、ジャンクションを張り(もしくは同期ソフトでミラー同期で定期的にコピーしておく)
他のPCも同様にこの3つを同期させてしまえば、ライブラリやプレイリストを共用できる
当然、2ヶ所で起動してると、同期の取り合いが起きて、下手したらごっそり消える可能性があるので注意
一番起動するPCの内容を同期ソフトでミラー化の方が安心か
「configuration」は同様のジャンクションによる共用をさせず、Googleドライブ上に上げるようにはしておいて
必要部分を上書きコピーすればいい(というかこれは個別にしてないと、ウィンドウサイズとかまで影響するので)
ちなみに「uPnP/DLNA」コンポーネントを追加して、どれかをDLNAサーバ化してしまえば
音楽ファイル自体の共有をせずとも、他のPCからでも再生することができる
どの部屋にもPCがある状態なので、あまり必要ではないが、
DLNAなら、スマホアプリ版のfb2k(というかDLNA対応の音楽アプリ)から
自室の音楽ファイルを再生するということもできる
【自室PCに入ってる動画を他のPCから見たい】
・フォルダの共有で開く
・WMPのメディアサーバー(DLNA)経由で開く
・WMP以外でもDLNAサーバーになれるソフトなら構わない
別に自分の家内のLANだから、どっちでもいいといえばいいのだが
DLNAの方が、対応できる機器の範囲は広がるかもしれない
昔、でかいテレビがあったときは、DLNA対応だったので、メディアサーバー経由でこっちで見てたりしてた
(そのテレビ壊れたので今はできないw)
もちろん、再生するプレイヤーがDLNA対応でなければいけない
あと、WMPのメディアサーバーでの一覧表示は、結局、「フォルダ別」で開く方が探しやすいので
(いまいち整理される方法がわかりにくいのと、メディアファイルにタグ打ちしなきゃいけないので)
やってることは、フォルダ共有で開くのと、あまり大差ない気がする
テレビとかで、SMB共有が開けないとかだと、DLNA一択になる
まあ実際のところは、両方のアカウントを切り替えてどうこうするなんてのはあまりなく
PCごとで役割決まってんだけど、ある程度統一してりゃ、バックアップ取るのも明確だし
環境変わることになったとしても移行しやすいから整理することは悪くはないと思う