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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(最新の文章に更新)
16行目: 16行目:
 
== psd のメリット ==
 
== psd のメリット ==
   
  +
#透過的に利用できる
このデーモンを動かすのが有益だという理由は2つあります:
 
 
#物理ドライブの損耗が減る
 
#物理ドライブの損耗が減る
 
#速度
 
#速度
28行目: 28行目:
 
{{AUR|profile-sync-daemon}} は [[Arch User Repository|AUR]] からダウンロードすることができます。他のパッケージと同じようにビルド・インストールしてください。
 
{{AUR|profile-sync-daemon}} は [[Arch User Repository|AUR]] からダウンロードすることができます。他のパッケージと同じようにビルド・インストールしてください。
   
=== /etc/psd.conf の編集 ===
+
=== 設定ファイルの編集 ===
  +
psd を初めて実行したときに、全ての設定が記述された {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} が作成されます (以下、このファイルを設定ファイルと呼称します)。
ユーザーによる設定は全て {{ic|/etc/psd.conf}} に含まれます。
 
   
{{Note|psd を実行している間に {{ic|/etc/psd.conf}} を編集した場合、変更が適用されるのは init サービスから psd を再起動したときです。}}
+
{{Note|psd を実行している間に設定ファイルを編集した場合、変更が適用されるのは init サービスから psd を再起動したときです。}}
   
  +
$ psd
* 最低でも、どのユーザーが ''psd'' によって管理するプロファイルを持っているのか定義してください。少なくとも一人のユーザーを定義する必要があります。
 
  +
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 を見て下さい。
 
* 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。
 
* 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。
  +
* 任意でクラッシュしたときに復帰するためのスナップショットを無効化することができます (非推奨)。USE_BACKUPS 変数で設定します。
* 任意で overlayfs を利用することで同期を高速化させてメモリの使用量を減らすことができます。このオプションを使う場合、'overlay' (Arch のデフォルト) または 'overlayfs' (Ubuntu <15.05) カーネルモジュールを利用するようにカーネルが設定されている必要があります。この機能の詳細は下の FAQ を見て下さい。
 
* 任意でクラッシュしたときに復帰するためのスナップショットを無効化することができます。USE_BACKUPS 変数で設定します。
 
   
 
例: Chromium, Opera, Midori をインストールしていて Chromium と Opera だけを tmpfs に同期する (Midori はバックアップのブラウザとしてたまにしか使わない) という場合:
 
例: Chromium, Opera, Midori をインストールしていて Chromium と Opera だけを tmpfs に同期する (Midori はバックアップのブラウザとしてたまにしか使わない) という場合:
99行目: 101行目:
 
=== プレビューモード (parse) ===
 
=== プレビューモード (parse) ===
   
'parse' オプションを使うことで {{ic|/etc/psd.conf}} に基づいて ''psd'' が何を行うのかを正確に表示することができます。次のように呼び出して下さい:
+
'parse' オプションを使うことで {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} に基づいて ''psd'' が何を行うのかを正確に表示することができます。次のように呼び出して下さい:
  +
$ psd p
$ profile-sync-daemon parse
 
Profile-sync-daemon v5.65 on Arch Linux.
+
Profile-sync-daemon v6.03 on Arch Linux.
 
 
 
Systemd service is currently active.
 
Systemd service is currently active.
107行目: 109行目:
 
Overlayfs v23 is currently active.
 
Overlayfs v23 is currently active.
 
 
Psd will manage the following per /etc/psd.conf settings:
+
Psd will manage the following per /home/facade/.config/psd/psd.conf settings:
 
 
 
browser/psname: chromium/chromium
 
browser/psname: chromium/chromium
 
owner/group: facade/100
 
owner/group: facade/100
 
sync target: /home/facade/.config/chromium
 
sync target: /home/facade/.config/chromium
tmpfs dir: /tmp/facade-chromium
+
tmpfs dir: /run/user/1000/facade-chromium
 
profile size: 93M
 
profile size: 93M
 
overlayfs size: 39M
 
overlayfs size: 39M
122行目: 124行目:
 
owner/group: facade/100
 
owner/group: facade/100
 
sync target: /mnt/data/docs/facade/mozilla/firefox/f8cv8bfu.default
 
sync target: /mnt/data/docs/facade/mozilla/firefox/f8cv8bfu.default
tmpfs dir: /tmp/facade-firefox-f8cv8bfu.default
+
tmpfs dir: /run/user/1000/facade-firefox-f8cv8bfu.default
Permissions are 755 on this profile.
 
Recommend a setting of 700 for increased privacy!
 
 
profile size: 145M
 
profile size: 145M
 
overlayfs size: 13M
 
overlayfs size: 13M
recovery dirs: none
 
 
browser/psname: firefox/firefox
 
owner/group: facade/105
 
sync target: /mnt/data/docs/facade/mozilla/firefox/obg67zqQ.proxy
 
tmpfs dir: /tmp/facade-firefox-obg67zqQ.proxy
 
profile size: 17M
 
overlayfs size: 28M
 
 
recovery dirs: none
 
recovery dirs: none
   
144行目: 136行目:
 
$ psd c
 
$ psd c
 
 
Profile-sync-daemon v5.65 on Arch Linux.
+
Profile-sync-daemon v6.03 on Arch Linux.
 
 
 
Deleting 2 crashrecovery dirs for profile /home/facade/.config/chromium
 
Deleting 2 crashrecovery dirs for profile /home/facade/.config/chromium
150行目: 142行目:
 
/home/facade/.config/chromium-backup-crashrecovery-20150119_112204
 
/home/facade/.config/chromium-backup-crashrecovery-20150119_112204
   
=== psd を実行してプロファイルを管理 ===
+
=== psd の起動と停止 ===
   
  +
psd のバージョン 6.x シリーズのリリースから、公式でサポートされる init システムは systemd だけになりました。Psd には起動と停止を行うための systemd ユーザーサービスが付属しています (psd.service)。さらに、1時間毎に tmpfs からディスクに再同期させる resync-timer も含まれています。resync-timer は psd.service によって自動的に起動するため、あなたがタイマーを起動させる必要はありません。
同期したり同期を解除するのに {{ic|/usr/bin/profile-sync-daemon}} を直接実行してはいけません。代わりにサービスファイルを使って下さい。
 
   
  +
systemd のユーザーモードの使い方がよくわからない場合、以下のコマンドで psd サービスを有効化できます:
[[systemd]] の[[デーモン|サービス]]ファイルとタイマーが両方入っており、これらを使って ''psd'' を制御することができます。タイマーの役割は tmpfs をディスクにコピーバックさせることで、一時間に一度実行されます。タイマーは {{ic|psd.service}} によって勝手に起動します。
 
   
  +
$ systemctl --user [option] psd.service
起動時・シャットダウン時に実行するには {{ic|psd.service}} を[[systemd#ユニットを使う|起動・有効化]]してください ('''強く推奨''')。
 
  +
  +
次のオプションが利用できます: start stop enable disable status。
  +
  +
===サポートしているディストリビューション===
  +
  +
psd は systemd サービスが付いているただの bash スクリプトなので、systemd が動作している Linux ならどこでも動作します。公式パッケージとして提供しているディストリビューションが数多くあり、psd をインストールする方法をユーザーがメンテナンスしている場合もあります。ソースから psd をビルドすることも可能です。利用できるパッケージやインストールの手順については公式ウェブサイトを見て下さい。
   
 
=== もっと頻繁に同期する (任意) ===
 
=== もっと頻繁に同期する (任意) ===
162行目: 160行目:
 
パッケージには一時間ごとに同期を行うタイマーが入っています。任意で、[[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
  +
PartOf=psd.service
   
 
[Timer]
 
[Timer]
  +
OnUnitActiveSec=10m
# Empty value resets the list of timers
 
OnUnitActiveSec=
 
OnUnitActiveSec=10min
 
 
</nowiki>}}
 
</nowiki>}}
   
196行目: 193行目:
 
== FAQ ==
 
== FAQ ==
   
=== overlayfs とは何か、どうして使ったほうが良いのか? ===
+
=== overlayfs モードとは? ===
   
Overlayfs は Linux カーネル 3.18.0 でメインラインに取り込まれたシンプルなユニオンファイルシステムです。psd バージョン 5.54 から、overlayfs を使うことで psd の tmpfs 領域のメモリフットプリントを減らしたり、同期を高速化させることができるようになっています。オーバーレイマウントでは、プロファイル全体ではなく、変更が加えられたデータだけが書き出されるというところがミソです。overlayfs モードで実行した場合、psd がデフォルトで使用する同一の復帰機能も有効になります。Overlayfs モードは {{ic|/etc/psd.conf}} の {{ic|1=USE_OVERLAYFS="yes"}} という行をアンコメントしてデーモンを再起動することで有効にできます。
+
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"}} という行をアンコメントしてデーモンを再起動することで有効にできます。
   
 
Linux カーネルで利用できる overlayfs にはディストロによって複数のバージョンが存在します。バージョン 22 以前ではモジュールは 'overlayfs' と呼ばれていましたが、新しいバージョン (23 以上) ではモジュールの名前は 'overlay' になっています ('fs' が取られた)。Psd はあなたの使用しているカーネルで利用できる overlayfs を自動的に検出します。
 
Linux カーネルで利用できる overlayfs にはディストロによって複数のバージョンが存在します。バージョン 22 以前ではモジュールは 'overlayfs' と呼ばれていましたが、新しいバージョン (23 以上) ではモジュールの名前は 'overlay' になっています ('fs' が取られた)。Psd はあなたの使用しているカーネルで利用できる overlayfs を自動的に検出します。
   
  +
psd のバージョン 6.05 から、overlayfs モードを利用するには {{ic|/usr/bin/psd-overlay-helper}} に (パスワードプロンプトが表示されない) sudo でアクセスできるようにするか、あるいはグローバルな sudo 権限が必要になりました。{{ic|/etc/sudoers}} に以下の行を設定することでユーザーに権限が与えられます。root で {{ic|/usr/bin/visudo}} を実行して追加してください:
=== overlay や overlayfs モジュールはどうやってロードすればいいか? ===
 
  +
  +
foo ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper
  +
  +
上のプレビューモードのセクションの例を見れば、overlayfs を使うことでどれくらいメモリの使用量が節約できているのかわかります。"overlayfs size" とプロファイルごとの "profile size" の合計を比較してください。プロファイルに書き込まれているデータの量によって数字は変わってきますが、基本的に overlayfs のサイズはプロファイルのサイズより小さくなるはずです。
  +
  +
=== /run/user/xxxx にプロファイルを乗せるのに大量のメモリが必要です。メモリの割り当てを変えることはできますか? ===
  +
{{ic|/run/user}} の容量は {{ic|/etc/systemd/logind.conf}} の RuntimeDirectorySize ディレクティブによって制御されるのが通常です (詳しくは {{ic|logind.conf}} の man ページを見て下さい)。デフォルトでは、物理メモリの 10% が使われますが、メモリの使用量を増やすことができます。tmpfs は実際に使用する分だけしか消費しません。許容できる最大限のサイズを指定してください。
   
  +
=== overlayfs を有効にしたときに他のブラウザプロファイルディレクトリ "foo-back-ovfs" が作成されるのはなぜですか? ===
(root で) {{ic|/usr/bin/modprobe}} を使ってモジュールをロードすることができます。先に、'overlay' をロードしてみて、modprobe が失敗するようでしたら、'overlayfs' を使って下さい。modprobe を使ってモジュールをロードしても、次の起動時にはモジュールはロードされないので注意してください。起動時に自動的にモジュールをロードしたい場合、{{ic|/etc/modules-load.d/load_me.conf}} にモジュールを記述する[[カーネルモジュール#ロード|方法]]が推奨です (ファイルにはロードするモジュールの名前だけを書きます)。
 
  +
overlayfs は読み取り専用のベースコピー (いわゆる下層ディレクトリ) をプロファイルにマウントして、その上に新しいデータを管理することで機能します。読み取り専用ファイルシステムに再同期しないように、代わりにコピーが使われます。つまり overlayfs を使用することで、同期時間が高速になりメモリの使用量が減るのに対してホームディレクトリのディスク容量が使われるというトレードオフが成立しています。
   
 
=== システムがクラッシュして同期がされませんでした。どうすればいいですか? ===
 
=== システムがクラッシュして同期がされませんでした。どうすればいいですか? ===
210行目: 215行目:
 
運が良ければ、ブラウザプロファイルの"最新の問題がない"バックアップがファイルシステムに残っている可能性があります。{{ic|psd}} の再起動時に、プロファイルの tmpfs コピーのシンボリックリンクに問題がないか確認するチェックが行われます。問題がなかった場合、''psd'' は"最新の問題ない"バックアップのスナップショットを作成します。これは ''psd'' によってデータが失われないようにするためのサニティーチェックであり、データが消失した場合、他に原因があります。
 
運が良ければ、ブラウザプロファイルの"最新の問題がない"バックアップがファイルシステムに残っている可能性があります。{{ic|psd}} の再起動時に、プロファイルの tmpfs コピーのシンボリックリンクに問題がないか確認するチェックが行われます。問題がなかった場合、''psd'' は"最新の問題ない"バックアップのスナップショットを作成します。これは ''psd'' によってデータが失われないようにするためのサニティーチェックであり、データが消失した場合、他に原因があります。
   
{{Note|必要であれば、{{ic|/etc/psd.conf}} で {{ic|USE_BACKUPS}} 変数をアンコメントして 'no' に設定することでスナップショット/バックアップ機能を完全に無効化できます。}}
+
{{Note|必要であれば、{{ic|$XDG_CONFIG_HOME/psd/psd.conf}} で {{ic|USE_BACKUPS}} 変数をアンコメントして 'no' に設定することでスナップショット/バックアップ機能を完全に無効化できます。}}
   
 
=== スナップショットはどこにありますか? ===
 
=== スナップショットはどこにありますか? ===

2015年12月30日 (水) 16:21時点における版

関連記事

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

psd のメリット

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

プロファイルやブラウザキャッシュなどを tmpfs (RAM ディスク) に再配置して、ブラウザを使用するのに伴う I/O の猛襲の対象を物理ドライブから RAM に変更することにより、物理ドライブの消耗を抑えつつブラウザの速度や反応性を劇的に高められます。例えば、物理ディスクのアクセス時間はミリ秒単位なのに対してRAM のアクセス時間はナノ秒オーダーです。これは0の数が6個も違う、つまり1000000倍高速ということです。

ノート: Chrome/Chromium, Firefox (v21 以上), Midori, Rekonq などのブラウザはプロファイルのディレクトリとは別個にキャッシュディレクトリを保存しています。この挙動を変更するのは profile-sync-daemon の射程外です。Chromium の Chromium 設定#tmpfs にキャッシュ セクションや Firefox_Ramdisk 記事を参照して対処することが推奨されます。楽な修正はブラウザのキャッシュディレクトリ (例: /home/$USER/.cache/<browser>/<profile>/) をデフォルトの場所から適当なプロファイルディレクトリ (例: /home/$USER/.mozilla/firefox/<profile>/cache) に移動して、新しいキャッシュフォルダから元の場所にシンボリックリンクを作成することです。これによって、profile-sync-daemon は自動的にキャッシュフォルダも扱うようになります。

セットアップとインストール

profile-sync-daemonAURAUR からダウンロードすることができます。他のパッケージと同じようにビルド・インストールしてください。

設定ファイルの編集

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 変数で設定します。

例: Chromium, Opera, Midori をインストールしていて Chromium と Opera だけを tmpfs に同期する (Midori はバックアップのブラウザとしてたまにしか使わない) という場合:

# 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
#  chromium-dev
#  conkeror.mozdev.org
#  epiphany
#  firefox
#  firefox-trunk
#  google-chrome
#  google-chrome-beta
#  google-chrome-unstable
#  heftig-aurora
#  icecat
#  luakit
#  midori
#  opera
#  opera-developer
#  opera-beta
#  qupzilla
#  palemoon
#  rekonq
#  seamonkey
#  vivaldi
#
# If the following is commented out (default), then all available/supported 
# browsers will be sync'ed, separated by comma
BROWSERS="chromium opera"

psd のバージョン 5.54 から、overlayfs がネイティブでサポートされるようになりました。USE_OVERLAYFS="yes" という行をアンコメントすることで有効にでき、デフォルトのフルコピーに比べて、メモリの使用量を減らして同期を高速化させることができます。

ノート: この機能を使うには 3.18.0 以上の Linux カーネルが必要です。

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

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

psd を使う

プレビューモード (parse)

'parse' オプションを使うことで $XDG_CONFIG_HOME/psd/psd.conf に基づいて psd が何を行うのかを正確に表示することができます。次のように呼び出して下さい:

$ psd p
Profile-sync-daemon v6.03 on Arch Linux.

 Systemd service is currently active.
 Systemd resync service is currently active.
 Overlayfs v23 is currently active.

Psd will manage the following per /home/facade/.config/psd/psd.conf settings:

 browser/psname:  chromium/chromium
 owner/group:     facade/100
 sync target:     /home/facade/.config/chromium
 tmpfs dir:      /run/user/1000/facade-chromium
 profile size:    93M
 overlayfs size:  39M
 recovery dirs:   2 <- delete with the c option
  dir path/size:  /home/facade/.config/chromium-backup-crashrecovery-20150117_171359 (92M)
  dir path/size:  /home/facade/.config/chromium-backup-crashrecovery-20150119_112204 (93M)

 browser/psname:  firefox/firefox
 owner/group:     facade/100
 sync target:     /mnt/data/docs/facade/mozilla/firefox/f8cv8bfu.default
 tmpfs dir:      /run/user/1000/facade-firefox-f8cv8bfu.default
 profile size:    145M
 overlayfs size:  13M
 recovery dirs:   none

上記の通り、特定のブラウザが BROWSERS 行に設定されていない場合、psd は指定されたユーザーのサポートされているプロファイル全てを同期します。

クリーンモード

クリーンモードを使うと保存されているスナップショットを全て削除します。削除しても問題ない場合にのみ実行してください。

$ psd c

Profile-sync-daemon v6.03 on Arch Linux.

Deleting 2 crashrecovery dirs for profile /home/facade/.config/chromium
 /home/facade/.config/chromium-backup-crashrecovery-20150117_171359
 /home/facade/.config/chromium-backup-crashrecovery-20150119_112204

psd の起動と停止

psd のバージョン 6.x シリーズのリリースから、公式でサポートされる init システムは systemd だけになりました。Psd には起動と停止を行うための systemd ユーザーサービスが付属しています (psd.service)。さらに、1時間毎に tmpfs からディスクに再同期させる resync-timer も含まれています。resync-timer は psd.service によって自動的に起動するため、あなたがタイマーを起動させる必要はありません。

systemd のユーザーモードの使い方がよくわからない場合、以下のコマンドで psd サービスを有効化できます:

$ systemctl --user [option] psd.service

次のオプションが利用できます: start stop enable disable status。

サポートしているディストリビューション

psd は systemd サービスが付いているただの bash スクリプトなので、systemd が動作している Linux ならどこでも動作します。公式パッケージとして提供しているディストリビューションが数多くあり、psd をインストールする方法をユーザーがメンテナンスしている場合もあります。ソースから psd をビルドすることも可能です。利用できるパッケージやインストールの手順については公式ウェブサイトを見て下さい。

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

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

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

[Timer]
OnUnitActiveSec=10m

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

Firefox と Heftig の Aurora での注意事項

psd でブラウザプロファイルを記録して同期を行うには、各ユーザーの $HOME/.mozilla/browser/profiles.ini ファイルで、使用するディレクトリに一意な名前を付ける必要があります。psd が実行されるとファイルが確認され、このルールが守られていない場合は同期が行われません。以下は良くないプロファイルの例で、テストに失敗します。フルパスは一意になっていますが、どちらも同じ名前で終わっているところに注意してください。psd を使うためには profiles.ini を修正して適当なディレクトリを設定する必要があります。

~/.mozilla/firefox/profiles.ini
[General]
StartWithLastProfile=1

[Profile0 for user facade]
Name=normal
IsRelative=0
Path=/mnt/data/docs/facade/mozilla/firefox/myprofile.abc
Default=1

[Profile1 for user debbie]
Name=proxy
IsRelative=0
Path=/mnt/data/docs/debbie/mozilla/firefox/myprofile.abc

FAQ

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 を実行して追加してください:

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

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

/run/user/xxxx にプロファイルを乗せるのに大量のメモリが必要です。メモリの割り当てを変えることはできますか?

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

overlayfs を有効にしたときに他のブラウザプロファイルディレクトリ "foo-back-ovfs" が作成されるのはなぜですか?

overlayfs は読み取り専用のベースコピー (いわゆる下層ディレクトリ) をプロファイルにマウントして、その上に新しいデータを管理することで機能します。読み取り専用ファイルシステムに再同期しないように、代わりにコピーが使われます。つまり overlayfs を使用することで、同期時間が高速になりメモリの使用量が減るのに対してホームディレクトリのディスク容量が使われるというトレードオフが成立しています。

システムがクラッシュして同期がされませんでした。どうすればいいですか?

運が良ければ、ブラウザプロファイルの"最新の問題がない"バックアップがファイルシステムに残っている可能性があります。psd の再起動時に、プロファイルの tmpfs コピーのシンボリックリンクに問題がないか確認するチェックが行われます。問題がなかった場合、psd は"最新の問題ない"バックアップのスナップショットを作成します。これは psd によってデータが失われないようにするためのサニティーチェックであり、データが消失した場合、他に原因があります。

ノート: 必要であれば、$XDG_CONFIG_HOME/psd/psd.confUSE_BACKUPS 変数をアンコメントして 'no' に設定することでスナップショット/バックアップ機能を完全に無効化できます。

スナップショットはどこにありますか?

ブラウザによります。ブラウザプロファイルと同じディレクトリにスナップショットが存在し、リカバリが作られた時刻のタイムスタンプが付けられています。例えば、chromium なら ~/.config/chromium-backup-crashrecovery-20130912_153310 などになります。もちろん、日付_時間の部分は異なっているでしょう。

スナップショットを復元するにはどうすればいいですか?

  • 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" スイッチを付けて psd を実行すればスナップショットが削除されます。

サポート

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

他のディストロで PSD

psd は bash スクリプトなので、どんな Linux ディストロでも動作します。それぞれのディストリビューションでパッケージが用意されていたり、ユーザーが自分でインストールできるように方法が用意されています。インストール方法は 公式ウェブサイト を見て下さい。

参照