「Profile-sync-daemon」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(関連記事のリンクを同期)
 
(8人の利用者による、間の45版が非表示)
1行目: 1行目:
 
[[Category:ウェブブラウザ]]
 
[[Category:ウェブブラウザ]]
[[Category:Scripts]]
 
 
[[en:Profile-sync-daemon]]
 
[[en:Profile-sync-daemon]]
 
[[ru:Profile-sync-daemon]]
 
[[ru:Profile-sync-daemon]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|Anything-sync-daemon}}
 
{{Related|Anything-sync-daemon}}
{{Related2|Firefox|Firefox}}
+
{{Related|Firefox}}
{{Related2|Chromium|Chromium}}
+
{{Related|Chromium}}
{{Related2|Opera|Opera}}
 
 
{{Related|Pdnsd}}
 
{{Related|Pdnsd}}
  +
{{Related|ソリッドステートドライブ}}
{{Related2|Solid State Drives|SSD}}
 
 
{{Related articles end}}
 
{{Related articles end}}
   
{{AUR|Profile-sync-daemon}} (psd) はブラウザプロファイルを tmpfs で管理して定期的に物理ディスク (HDD/SSD) に同期させる、とても小さな擬似的なデーモンです。rsync でブラウザプロファイルの tmpfs のコピーとメディアのバックアップを同期させるという革新的な利用法によります。さらに、psd にはクラッシュからの復元機能が存在します。
+
{{pkg|profile-sync-daemon}} (psd) はブラウザプロファイルを tmpfs で管理して定期的に物理ディスク (HDD/SSD) に同期させる、とても小さな擬似的なデーモンです。rsync でブラウザプロファイルの tmpfs のコピーとメディアのバックアップを同期させるという革新的な利用法によります。さらに、psd にはクラッシュからの復元機能が存在します。
   
  +
psd の設計目標および利点は以下の通りです。
== psd のメリット ==
 
   
  +
# 透過的に利用できる
このデーモンを動かすのが有益だという理由は2つあります:
 
#物理ドライブの損耗が減る
+
# 物理ドライブの損耗が減る
#速度
+
# 速度
   
プロファイルブラウザキャッシュなどを [[tmpfs]] (RAM ディスク) に再配置して、ブラウザ使用するのに伴う I/O の猛襲の対象を物理ドライブから RAM に変更することにより、物理ドライブの消耗を抑えつつブラウザの速度や反応性を劇的高められます。例えば、物理ディスクのアクセス時間はミリ秒単位なのに対てRAM のアクセス時間はナノ秒オーダーです。これは0の数が6個も違う、つり1000000倍高速ということです。
+
プロファイルブラウザキャッシュなどを [[tmpfs]] (RAM ディスク) に再配置するため、ブラウザ使用に関連する I/O 物理ドライブから RAM にリダイレクトされ、物理ドライブの消耗を抑えブラウザの速度性を大幅改善します。
   
  +
{{Note|
{{Note|Chrome/Chromium, Firefox (v21 以上), Midori, Rekonq などのブラウザはプロファイルのディレクトリとは別個にキャッシュディレクトリを保存しています。この挙動を変更するのは profile-sync-daemon の射程外です。Chromium の [[Chromium tweaks#Cache_in_tmpfs]] セクションや [[Firefox_Ramdisk]] 記事を参照して対処することが推奨されます。楽な修正はブラウザのキャッシュディレクトリ (例: {{ic|/home/$USER/.cache/<browser>/<profile>/}}) をデフォルトの場所から適当なプロファイルディレクトリ (例: {{ic|/home/$USER/.mozilla/firefox/<profile>/cache}}) に移動して、新しいキャッシュフォルダから元の場所にシンボリックリンクを作成することです。これによって、profile-sync-daemon は自動的にキャッシュフォルダも扱うようになります。}}
 
  +
* Chrome/Chromium、Firefox (v21以降)、Midori などの一部のブラウザでは、キャッシュディレクトリをプロファイルディレクトリとは '''別''' に管理しています。この動作を変更することは profile-sync-daemon の範囲ではありません。Chromium については [[Chromium 設定#tmpfs にキャッシュ]] や、[[Firefox Ramdisk]] の記事でいくつかの回避策を参照することをお勧めします。
  +
* デフォルトの設定ファイル {{ic|/usr/share/psd/psd.conf}} は、アップストリームで更新・変更されることがあります。ユーザーコピーの {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} はそれに対して diff を取る必要があります。Arch Linux では、pacman はこれを行うようユーザーに通知する必要があります。
  +
* psd は、ブラウザのキャッシュを RAM にコピーする為 [https://www.reddit.com/r/archlinux/comments/4l7gvm/very_slow_when_login/d3lrx9y/ ログイン] が遅くなることがあります。}}
   
== セットアップとインストール ==
+
== インストール ==
   
{{AUR|profile-sync-daemon}} は [[Arch User Repository|AUR]] からダウンロードすることができます。他のパッケージと同じようにビルド・インストールしてください。
+
{{pkg|profile-sync-daemon}} パッケージを [[インストール]] してさい。
   
  +
== 設定 ==
=== /etc/psd.conf の編集 ===
 
ユーザーによる設定は全て {{ic|/etc/psd.conf}} に含まれます。
 
   
  +
psd を初めて実行したときに、全ての設定が記述された {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} が作成されます (以下、このファイルを設定ファイルと呼称します)。
{{Note|Any edits made to {{ic|/etc/psd.conf}} while psd is running will be applied only after psd has been restarted from the init service.}}
 
   
  +
{{Note|psd を実行している間に設定ファイルを編集した場合、変更が適用されるのは init サービスから psd を再起動したときです。}}
最低でも、どのユーザーが ''psd'' によって管理するプロファイルを持っているのか定義してください。少なくとも一人のユーザーを定義する必要があります。
 
   
  +
$ psd
任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。
 
  +
First time running psd so please edit /home/facade/.config/psd/psd.conf to your liking and run again.
   
  +
* 任意で overlayfs を利用することで同期を高速化させてメモリの使用量を減らすことができます。USE_OVERLAYFS 変数を設定してください。このオプションを使う場合、{{ic|/usr/bin/psd-overlay-helper}} に sudo 権限が必要で、カーネルが overlayfs バージョン22以上に対応していなければなりません。この機能の詳細は下の FAQ を見て下さい。
例: Chromium, Opera, Midori をインストールしていて Chromium と Opera だけを tmpfs に同期する (Midori はバックアップのブラウザとしてたまにしか使わない) という場合:
 
  +
* 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。
  +
* 任意でクラッシュしたときに復帰するためのスナップショットを無効化することができます (非推奨) USE_BACKUPS 変数で設定します。
  +
* オプションで、保持するクラッシュリカバリ用のスナップショットの数を定義します。{{ic|BACKUP_LIMIT}} 変数でこれを行います。
   
  +
例: Chromium、Opera、および Midori がインストールされているが、ユーザーが Midori をバックアップブラウザーとして保持しており、めったに使用されないため、Chromium と Opera のみを tmpfs に同期するとします。
# List browsers separated by spaces to include in the sync. Useful if you do not
 
# wish to have all possible browser profiles sync'ed.
 
#
 
# Possible values:
 
# chromium
 
# conkeror.mozdev.org
 
# firefox
 
# firefox-trunk
 
# google-chrome
 
# heftig-aurora
 
# midori
 
# opera
 
# opera-next
 
# qupzilla
 
#
 
# If the following is commented out (default), then all available/supported
 
# browsers will be sync'ed, separated by comma
 
BROWSERS="chromium opera"
 
   
  +
BROWSERS=(chromium opera)
== サポートしているブラウザ ==
 
  +
  +
psd のバージョン 5.54 から、overlayfs がネイティブでサポートされるようになりました。この機能を使うには 3.18.0 以上の Linux カーネルが必要です。
  +
  +
=== サポートしているブラウザ ===
   
 
現在、以下のブラウザを自動で検出して管理します:
 
現在、以下のブラウザを自動で検出して管理します:
  +
* [[Chromium|Chromium]]
 
* [[AUR|chromium-dev]]
+
* [[Chromium]]
  +
* {{AUR|chromium-dev}}
 
* {{AUR|conkeror-git}}
 
* {{AUR|conkeror-git}}
 
* [[Epiphany]]
 
* [[Epiphany]]
  +
* {{Pkg|falkon}}
* [[Firefox|Firefox]] (安定版・ベータ版・Aurora 版など全てをサポート)
 
  +
* [[Firefox]] (安定版、ベータ版、Aurora 版など全てをサポート)
 
* {{AUR|google-chrome}}
 
* {{AUR|google-chrome}}
 
* {{AUR|google-chrome-beta}}
 
* {{AUR|google-chrome-beta}}
73行目: 66行目:
 
* [[Luakit]]
 
* [[Luakit]]
 
* [[Midori]]
 
* [[Midori]]
* [[Opera|Opera]]
+
* [[Opera]]
  +
* [[Otter Browser]]
* {{AUR|opera-next}}
 
  +
* {{AUR|palemoon}}
* Qupzilla
 
  +
* [[Qutebrowser]]
* {{Pkg|rekonq}}
 
 
* {{Pkg|seamonkey}}
 
* {{Pkg|seamonkey}}
  +
* {{AUR|surf}}
  +
* {{Pkg|vivaldi}}
   
== psd を使 ==
+
== 使い方 ==
  +
  +
{{ic|psd.service}} を [[systemd/ユーザー|ユーザーユニット]] で [[起動/有効化]] さらに、提供された resync-timer は 1 時間ごとに tmpfs からディスクへの再同期を実行します。resync-timer は {{ic|psd.service}} で自動的に起動するので、手動でタイマーを起動する必要はありません。
   
 
=== プレビューモード (parse) ===
 
=== プレビューモード (parse) ===
   
'parse' オプションを使うことで {{ic|/etc/psd.conf}} に基づいて ''psd''何をうのか正確に表示することができます。ように呼び出して下さい:
+
{{ic|$XDG_CONFIG_HOME/psd/psd.conf}} に基づいて psd がする/していることを表示するために {{ic|psd parse}} を実行します。また、プロファイルサイズ、パス、回復スナップショットが作成れてるかどうかなど、有用な情報も提供されます。
$ profile-sync-daemon parse
 
Profile-sync-daemon v5.24
 
 
psd will manage the following per /etc/psd.conf settings:
 
 
browser/psname: chromium/chromium
 
owner/group: facade/users
 
sync target: /home/facade/.config/chromium
 
tmpfs dir: /tmp/facade-chromium
 
profile size: 81M
 
 
browser/psname: firefox/firefox
 
owner/group: facade/users
 
sync target: /mnt/data/docs/facade/mozilla/firefox/1Zp9V43q.banking
 
tmpfs dir: /tmp/facade-firefox-1Zp9V43q.banking
 
profile size: 5.9M
 
 
browser/psname: firefox/firefox
 
owner/group: facade/users
 
sync target: /mnt/data/docs/facade/mozilla/firefox/obg67zqQ.proxy
 
tmpfs dir: /tmp/facade-firefox-obg67zqQ.proxy
 
profile size: 17M
 
 
上記の通り、特定のブラウザが BROWSERS 行に設定されていない場合、''psd'' は指定されたユーザーのサポートされているプロファイル全てを同期します。
 
 
=== psd を実行してプロファイルを管理 ===
 
   
  +
== ヒントとテクニック ==
同期したり同期を解除するのに {{ic|/usr/bin/profile-sync-daemon}} を直接実行してはいけません。代わりにサービスファイルを使って下さい。
 
 
[[systemd|systemd]] の[[daemons|サービス]]ファイルとタイマーが両方入っており、これらを使って ''psd'' を制御することができます。タイマーの役割は tmpfs をディスクにコピーバックさせることで、一時間に一度実行されます。タイマーは {{ic|psd.service}} によって勝手に起動します。
 
 
起動時・シャットダウン時に実行するには {{ic|psd.service}} を[[systemd#ユニットを使う|起動・有効化]]してください ('''強く推奨''')。
 
   
 
=== もっと頻繁に同期する (任意) ===
 
=== もっと頻繁に同期する (任意) ===
121行目: 88行目:
 
パッケージには一時間ごとに同期を行うタイマーが入っています。任意で、[[Systemd#ユニットファイルの編集|systemd ユニットを編集]]することでこの挙動を再定義することが可能です。以下の例は10分毎に同期させるようにタイマーを変更します:
 
パッケージには一時間ごとに同期を行うタイマーが入っています。任意で、[[Systemd#ユニットファイルの編集|systemd ユニットを編集]]することでこの挙動を再定義することが可能です。以下の例は10分毎に同期させるようにタイマーを変更します:
   
{{hc|/etc/systemd/system/psd-resync.timer.d/frequency.conf|<nowiki>
+
{{hc|~/.config/systemd/user/psd-resync.timer.d/frequency.conf|<nowiki>
 
[Unit]
 
[Unit]
Description=Timer for Profile-sync-daemon - 10min
+
Description=Timer for Profile-sync-daemon
   
 
[Timer]
 
[Timer]
# Empty value resets the list of timers
 
 
OnUnitActiveSec=
 
OnUnitActiveSec=
OnUnitActiveSec=10min
+
OnUnitActiveSec=10m
 
</nowiki>}}
 
</nowiki>}}
   
オプションについては {{ic|man systemd.timer}} を見て下さい。
+
オプションについては {{man|5|systemd.timer}} を見て下さい。
   
  +
=== overlayfs モードとは? ===
== Firefox と Heftig の Aurora での注意事項 ==
 
   
  +
{{Note|Linux カーネルで利用可能な overlayfs にはいくつかのバージョンがあり、様々なディストリビューションで運用されています。バージョン22以下では、'overlayfs' と呼ばれるモジュールが使用されていますが、新しいバージョン (23以上) では、'overlay' と呼ばれるモジュールが使用されています (新しいバージョンでは、'fs' がないことに注意してください) Psd は、カーネルが利用可能な overlayfs を使用するように設定されていれば、自動的にそれを検出します。}}
The way ''psd'' keeps track of browser profiles and sync targets requires users to have a unique name as the ''last directory'' for all profiles in their respective {{ic|$HOME/.mozilla/''browser''/profiles.ini}} files. ''psd'' will check when it is called to run for this and refuse if this rule is not satisfied. The following is an example of a BAD profile that will fail the the test. Note that although each full path is unique, they both ''end'' in the same name! Again, the user must modify the {{ic|profiles.ini}} and the corresponding directory on the filesystem to correct this in order to use ''psd''.
 
   
  +
Overlayfs は Linux カーネル 3.18.0 でメインラインに取り込まれたシンプルなユニオンファイルシステムです。psd バージョン 5.54 から、overlayfs を使うことで psd の tmpfs 領域のメモリフットプリントを減らしたり、同期を高速化させることができるようになっています。オーバーレイマウントでは、プロファイル全体ではなく、変更が加えられたデータだけが書き出されるというところがミソです。overlayfs モードで実行した場合、psd がデフォルトで使用する同一の復帰機能も有効になります。Overlayfs モードは {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} の {{ic|1=USE_OVERLAYFS="yes"}} という行をアンコメントしてデーモンを再起動することで有効にできます。
{{hc|~/.mozilla/firefox/profiles.ini|
 
[General]
 
StartWithLastProfile&#61;1
 
   
  +
Linux カーネルで利用できる overlayfs にはディストロによって複数のバージョンが存在します。バージョン 22 以前ではモジュールは 'overlayfs' と呼ばれていましたが、新しいバージョン (23 以上) ではモジュールの名前は 'overlay' になっています ('fs' が取られた)。Psd はあなたの使用しているカーネルで利用できる overlayfs を自動的に検出します。
[Profile0 for user facade]
 
Name&#61;normal
 
IsRelative&#61;0
 
Path&#61;/mnt/data/docs/'''facade'''/mozilla/firefox/'''myprofile.abc'''
 
Default&#61;1
 
   
  +
psd のバージョン 6.05 から、overlayfs モードを利用するには {{ic|/usr/bin/psd-overlay-helper}} に (パスワードプロンプトが表示されない) sudo でアクセスできるようにするか、あるいはグローバルな sudo 権限が必要になりました。{{ic|/etc/sudoers}} に以下の行を設定することでユーザーに権限が与えられます。root で {{ic|/usr/bin/visudo}} を実行して追加してください:
[Profile1 for user happy]
 
Name&#61;proxy
 
IsRelative&#61;0
 
Path&#61;/mnt/data/docs/'''happy'''/mozilla/firefox/'''myprofile.abc'''
 
}}
 
   
  +
''username'' ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper
== FAQ ==
 
   
  +
上のプレビューモードのセクションの例を見れば、overlayfs を使うことでどれくらいメモリの使用量が節約できているのかわかります。"overlayfs size" とプロファイルごとの "profile size" の合計を比較してください。プロファイルに書き込まれているデータの量によって数字は変わってきますが、基本的に overlayfs のサイズはプロファイルのサイズより小さくなるはずです。
{{Note|The first three questions apply to versions of ''psd'' equal to or greater than v5.40 only.}}
 
   
  +
{{Warning|''psd'' を overlayfs モードで利用することは (特に,''psd-overlay-helper'') 特権昇格につながる可能性があります。[https://github.com/graysky2/profile-sync-daemon/issues/235][https://github.com/graysky2/profile-sync-daemon/issues/286]}}
=== Q1. システムがクラッシュして同期がされませんでした。どうすればいいですか? ===
 
   
  +
overlayfs は、プロファイルの読み取り専用のベースコピー (browser-back-ovfs) をマウントし、その上で新しいデータを管理します。読み取り専用ファイルシステムへの再同期を避けるために、代わりにコピーが使用されます。そのため、overlayfs を使用すると、初期同期時間が短縮され、メモリ使用量がホームディレクトリのディスク領域よりも少なくなります。
Odds are the "last good" backup of your browser profiles is just fine still sitting happily on your filesystem. Upon restarting {{ic|psd}} (on a reboot for example), a check is preformed to see if the symlink to the tmpfs copy of your profile is invalid. If it is invalid, ''psd'' will snapshot the "last good" backup before it rotates it back into place. This is more for a sanity check that ''psd'' did no harm and that any data loss was a function of something else.
 
   
  +
=== /run/user/xxxx にプロファイルを乗せるのに大量のメモリを割り当てる ===
=== Q2. スナップショットはどこにありますか? ===
 
   
  +
{{ic|/run/user}} の容量は {{ic|/etc/systemd/logind.conf}} の RuntimeDirectorySize ディレクティブによって制御されるのが通常です (詳しくは {{ic|logind.conf}} の man ページを見て下さい)。デフォルトでは、物理メモリの 10% が使われますが、メモリの使用量を増やすことができます。tmpfs は実際に使用する分だけしか消費しません。許容できる最大限のサイズを指定してください。
It depends on the browser. You will find the snapshot in the same directory as the browser profile and it will contain a date-time-stamp that corresponds to the time at which the recovery took place. For example, chromium will be {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} -- of course, the date_time suffix will be different for you.
 
   
=== Q3. スナップショットを復元するにはどうすればいいですか? ===
+
=== スナップショット ===
   
  +
ブラウザプロファイルの "最後の機能する" バックアップは、ファイルシステム上にまだうまく残っている可能性があります。psd を再起動すると (例えば再起動時)、プロファイルの tmpfs コピーへのシンボリックリンクが有効かどうかが確認されます。もしそれが無効であれば、psd はそれを元の場所に戻す前に ”最後の機能する” バックアップをスナップショットします。これは、psd が害を与えず、データの損失が何か他の要因によるものであることを確認するためのものです。
* Stop {{ic|psd}}.
 
* Confirm that there is no symlink to the tmpfs browser profile directory. If there is, ''psd'' did not stop correctly for other reasons.
 
* Move the "bad" copy of the profile to a backup (don't blindly delete anything).
 
* Copy the snapshot directory to the name that browser expects.
 
   
  +
{{Note|スナップショット/バックアップ機能を完全に無効にするには、{{ic|USE_BACKUPS}} 変数のコメントを解除し、{{ic|"no"}} に設定する必要があります。}}
Example using Chromium:
 
mv ~/.config/chromium ~/.config/chromium-bad
 
cp -a ~/.config/chromium-backup-crashrecovery-20130912_153310 ~/.config/chromium
 
   
  +
スナップショットはブラウザプロファイルと同じディレクトリにあり、回復が行われた時間に対応する日付-時間スタンプが含まれています。例えば、chromium の場合は {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} となります。-- もちろん、date_time の接尾辞はそれぞれ異なります。
At this point you can launch chromium which will use the backup snapshot you just copied into place. If all is well, close the browser and restart psd and psd-resync (if using systemd). You may safely delete {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} at this point.
 
   
  +
スナップショットを復元するには:
== サポート ==
 
   
  +
* {{ic|psd}} を停止してください。
気づいたことやコメントなどは[https://bbs.archlinux.org/viewtopic.php?pid=1026974 議論スレッド]に投稿してください。
 
  +
* tmpfs のブラウザプロファイルディレクトリのシンボリックリンクがないことを確認してください。存在する場合、''psd'' は何らかの理由で適切に停止していません。
  +
* プロファイルの"問題がある"コピーをバックアップに移動してください (やみくもに削除するのはやめましょう)
  +
* スナップショットディレクトリをブラウザが使用する名前にコピーしてください。
   
  +
Chromium の例:
== 他のディストロで PSD ==
 
  +
$ mv ~/.config/chromium ~/.config/chromium-bad
  +
$ cp -a ~/.config/chromium-backup-crashrecovery-20130912_153310 ~/.config/chromium
  +
  +
Chromium を実行したらコピーしたバックアップスナップショットが使われます。全て問題ないようでしたら、ブラウザを閉じて psd を再起動してください。ここまできたら {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} を削除してもかまいません。
  +
  +
==== スナップショットをクリーンアップする ====
  +
  +
{{ic|psd clean}} を実行すると、蓄積されたすべての回復スナップショットが削除されます。それらを削除することが確実な場合にのみ、これを実行してください。
  +
  +
== サポート ==
   
  +
気づいたことやコメントなどは [https://bbs.archlinux.org/viewtopic.php?pid=1026974 議論スレッド] に投稿してください。
''psd'' は bash スクリプトなので、どんな Linux ディストロでも動作します。インストール方法は[https://github.com/graysky2/profile-sync-daemon#installation-from-distro-packages 公式ウェブサイト]を見て下さい。
 
   
 
== 参照 ==
 
== 参照 ==

2023年12月3日 (日) 21:53時点における最新版

関連記事

profile-sync-daemon (psd) はブラウザプロファイルを tmpfs で管理して定期的に物理ディスク (HDD/SSD) に同期させる、とても小さな擬似的なデーモンです。rsync でブラウザプロファイルの tmpfs のコピーとメディアのバックアップを同期させるという革新的な利用法によります。さらに、psd にはクラッシュからの復元機能が存在します。

psd の設計目標および利点は以下の通りです。

  1. 透過的に利用できる
  2. 物理ドライブの損耗が減る
  3. 速度

プロファイル、ブラウザキャッシュなどを tmpfs (RAM ディスク) に再配置するため、ブラウザの使用に関連する I/O も物理ドライブから RAM にリダイレクトされ、物理ドライブの消耗を抑え、ブラウザの速度と応答性を大幅に改善します。

ノート:
  • Chrome/Chromium、Firefox (v21以降)、Midori などの一部のブラウザでは、キャッシュディレクトリをプロファイルディレクトリとは に管理しています。この動作を変更することは profile-sync-daemon の範囲ではありません。Chromium については Chromium 設定#tmpfs にキャッシュ や、Firefox Ramdisk の記事でいくつかの回避策を参照することをお勧めします。
  • デフォルトの設定ファイル /usr/share/psd/psd.conf は、アップストリームで更新・変更されることがあります。ユーザーコピーの $XDG_CONFIG_HOME/psd/psd.conf はそれに対して diff を取る必要があります。Arch Linux では、pacman はこれを行うようユーザーに通知する必要があります。
  • psd は、ブラウザのキャッシュを RAM にコピーする為 ログイン が遅くなることがあります。

インストール

profile-sync-daemon パッケージを インストール して下さい。

設定

psd を初めて実行したときに、全ての設定が記述された $XDG_CONFIG_HOME/psd/psd.conf が作成されます (以下、このファイルを設定ファイルと呼称します)。

ノート: psd を実行している間に設定ファイルを編集した場合、変更が適用されるのは init サービスから psd を再起動したときです。
$ psd
First time running psd so please edit /home/facade/.config/psd/psd.conf to your liking and run again.
  • 任意で overlayfs を利用することで同期を高速化させてメモリの使用量を減らすことができます。USE_OVERLAYFS 変数を設定してください。このオプションを使う場合、/usr/bin/psd-overlay-helper に sudo 権限が必要で、カーネルが overlayfs バージョン22以上に対応していなければなりません。この機能の詳細は下の FAQ を見て下さい。
  • 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。
  • 任意でクラッシュしたときに復帰するためのスナップショットを無効化することができます (非推奨) USE_BACKUPS 変数で設定します。
  • オプションで、保持するクラッシュリカバリ用のスナップショットの数を定義します。BACKUP_LIMIT 変数でこれを行います。

例: Chromium、Opera、および Midori がインストールされているが、ユーザーが Midori をバックアップブラウザーとして保持しており、めったに使用されないため、Chromium と Opera のみを tmpfs に同期するとします。

BROWSERS=(chromium opera)

psd のバージョン 5.54 から、overlayfs がネイティブでサポートされるようになりました。この機能を使うには 3.18.0 以上の Linux カーネルが必要です。

サポートしているブラウザ

現在、以下のブラウザを自動で検出して管理します:

使い方

psd.serviceユーザーユニット起動/有効化 さらに、提供された resync-timer は 1 時間ごとに tmpfs からディスクへの再同期を実行します。resync-timer は psd.service で自動的に起動するので、手動でタイマーを起動する必要はありません。

プレビューモード (parse)

$XDG_CONFIG_HOME/psd/psd.conf に基づいて psd が実行する/していることを表示するために psd parse を実行します。また、プロファイルのサイズ、パス、回復スナップショットが作成されているかどうかなど、有用な情報も提供されます。

ヒントとテクニック

もっと頻繁に同期する (任意)

パッケージには一時間ごとに同期を行うタイマーが入っています。任意で、systemd ユニットを編集することでこの挙動を再定義することが可能です。以下の例は10分毎に同期させるようにタイマーを変更します:

~/.config/systemd/user/psd-resync.timer.d/frequency.conf
[Unit]
Description=Timer for Profile-sync-daemon

[Timer]
OnUnitActiveSec=
OnUnitActiveSec=10m

オプションについては systemd.timer(5) を見て下さい。

overlayfs モードとは?

ノート: Linux カーネルで利用可能な overlayfs にはいくつかのバージョンがあり、様々なディストリビューションで運用されています。バージョン22以下では、'overlayfs' と呼ばれるモジュールが使用されていますが、新しいバージョン (23以上) では、'overlay' と呼ばれるモジュールが使用されています (新しいバージョンでは、'fs' がないことに注意してください) Psd は、カーネルが利用可能な overlayfs を使用するように設定されていれば、自動的にそれを検出します。

Overlayfs は Linux カーネル 3.18.0 でメインラインに取り込まれたシンプルなユニオンファイルシステムです。psd バージョン 5.54 から、overlayfs を使うことで psd の tmpfs 領域のメモリフットプリントを減らしたり、同期を高速化させることができるようになっています。オーバーレイマウントでは、プロファイル全体ではなく、変更が加えられたデータだけが書き出されるというところがミソです。overlayfs モードで実行した場合、psd がデフォルトで使用する同一の復帰機能も有効になります。Overlayfs モードは $XDG_CONFIG_HOME/psd/psd.confUSE_OVERLAYFS="yes" という行をアンコメントしてデーモンを再起動することで有効にできます。

Linux カーネルで利用できる overlayfs にはディストロによって複数のバージョンが存在します。バージョン 22 以前ではモジュールは 'overlayfs' と呼ばれていましたが、新しいバージョン (23 以上) ではモジュールの名前は 'overlay' になっています ('fs' が取られた)。Psd はあなたの使用しているカーネルで利用できる overlayfs を自動的に検出します。

psd のバージョン 6.05 から、overlayfs モードを利用するには /usr/bin/psd-overlay-helper に (パスワードプロンプトが表示されない) sudo でアクセスできるようにするか、あるいはグローバルな sudo 権限が必要になりました。/etc/sudoers に以下の行を設定することでユーザーに権限が与えられます。root で /usr/bin/visudo を実行して追加してください:

username ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper

上のプレビューモードのセクションの例を見れば、overlayfs を使うことでどれくらいメモリの使用量が節約できているのかわかります。"overlayfs size" とプロファイルごとの "profile size" の合計を比較してください。プロファイルに書き込まれているデータの量によって数字は変わってきますが、基本的に overlayfs のサイズはプロファイルのサイズより小さくなるはずです。

警告: psd を overlayfs モードで利用することは (特に,psd-overlay-helper) 特権昇格につながる可能性があります。[1][2]

overlayfs は、プロファイルの読み取り専用のベースコピー (browser-back-ovfs) をマウントし、その上で新しいデータを管理します。読み取り専用ファイルシステムへの再同期を避けるために、代わりにコピーが使用されます。そのため、overlayfs を使用すると、初期同期時間が短縮され、メモリ使用量がホームディレクトリのディスク領域よりも少なくなります。

/run/user/xxxx にプロファイルを乗せるのに大量のメモリを割り当てる

/run/user の容量は /etc/systemd/logind.conf の RuntimeDirectorySize ディレクティブによって制御されるのが通常です (詳しくは logind.conf の man ページを見て下さい)。デフォルトでは、物理メモリの 10% が使われますが、メモリの使用量を増やすことができます。tmpfs は実際に使用する分だけしか消費しません。許容できる最大限のサイズを指定してください。

スナップショット

ブラウザプロファイルの "最後の機能する" バックアップは、ファイルシステム上にまだうまく残っている可能性があります。psd を再起動すると (例えば再起動時)、プロファイルの tmpfs コピーへのシンボリックリンクが有効かどうかが確認されます。もしそれが無効であれば、psd はそれを元の場所に戻す前に ”最後の機能する” バックアップをスナップショットします。これは、psd が害を与えず、データの損失が何か他の要因によるものであることを確認するためのものです。

ノート: スナップショット/バックアップ機能を完全に無効にするには、USE_BACKUPS 変数のコメントを解除し、"no" に設定する必要があります。

スナップショットはブラウザプロファイルと同じディレクトリにあり、回復が行われた時間に対応する日付-時間スタンプが含まれています。例えば、chromium の場合は ~/.config/chromium-backup-crashrecovery-20130912_153310 となります。-- もちろん、date_time の接尾辞はそれぞれ異なります。

スナップショットを復元するには:

  • psd を停止してください。
  • tmpfs のブラウザプロファイルディレクトリのシンボリックリンクがないことを確認してください。存在する場合、psd は何らかの理由で適切に停止していません。
  • プロファイルの"問題がある"コピーをバックアップに移動してください (やみくもに削除するのはやめましょう)
  • スナップショットディレクトリをブラウザが使用する名前にコピーしてください。

Chromium の例:

$ mv ~/.config/chromium ~/.config/chromium-bad
$ cp -a ~/.config/chromium-backup-crashrecovery-20130912_153310 ~/.config/chromium

Chromium を実行したらコピーしたバックアップスナップショットが使われます。全て問題ないようでしたら、ブラウザを閉じて psd を再起動してください。ここまできたら ~/.config/chromium-backup-crashrecovery-20130912_153310 を削除してもかまいません。

スナップショットをクリーンアップする

psd clean を実行すると、蓄積されたすべての回復スナップショットが削除されます。それらを削除することが確実な場合にのみ、これを実行してください。

サポート

気づいたことやコメントなどは 議論スレッド に投稿してください。

参照