毎日できるわけではないので時間がかかってしまうのは仕方が無い.
ゲスト OS である OpenBSD と, ホスト OS である macOS との間でファイルの共有をしたい. 具体的にはメールボックス内にあるメールを共有したい.
これができれば OpenBSD でもメールが読めるようになる.
最初は Grive2 というフリーの Google Drive クライアントを使おうと考えた. そのためには OpenBSD 側で次の操作を行う.
(1) OpenBSD ports として提供されている Grive2 をインストールする.
$ sudo pkg_add grive2
(2) Grive2 の Google Drive に対する認証を行う
$ cd
$ mkdir google-drive
$ cd google-drive
$ grive -a
grive -a を実行すると, 認証のための URL が表示されるので, この URL をブラウザーで開く.
自身の Google アカウントを指定する. これで認証が行われる.
ところが
このアプリでは「Google でログイン」機能が一時的に無効
このアプリは Google での確認がまだ完了していないため Google ログインを使用できません。
というメッセージが表示されて先に進めない.
原因など調べたいがそのとてもその気力が出ない. ひとまず今回は Grive2 の使用は諦めた.
代わりに Syncthing というオープンソースのファイル共有ソフトを使ってみることにした.
このソフトウェアの特徴的なところは, クラウドにデータを置くことをせず, ノード間で直接データの同期を行う P2P の仕組みを採用していることである.
自分の場合, とりあえずホスト OS とゲスト OS の間だけでデータの同期を行えればいいのでこれで十分だ.
インストールとファイル共有の手順は以下のようにする
(1) ホストの macOS とゲストの OpenBSD を同一のプライベートアドレスネットワークに置くために仮想マシンのネットワークの設定を「ブリッジアダプター」に設定する.
(2) ホストの macOS とゲストの OpenBSD に Syncthing をインストールする.
macOS 用の Syncthing は Syncthing のサイト からダウンロードできる.
OpenBSD 用の Syncthing は ports パッケージからインストールできる.
$ sudo pkg_add syncthing
(3) macOS と OpenBSD の双方で Syncthing の初期化を行う.
$ syncthing
これで Syncthing の初期化が行われ, ユーザーのホームディレクトリーに Sync というファイル共有のためのディレクトリーが作成される. このディレクトリー配下に置かれたファイルはホストの macOS とゲストの OpenBSD の間で同期が行われる.
Syncthing では, 同期を行う各ノードを "デバイス" と呼んでいる. 今回の設定では macOS と OpenBSD がそれぞれデバイスに相当する.
(4) Syncthing の監視と設定
管理画面 http://127.0.0.1:8384/ にアクセスすることによりブラウザー上から Syncthing の設定や現在の状態を監視することができる.
・ 共有フォルダーの追加
・ Syncthing の起動・停止・再起動
・ デバイス間の共有フォルダーの同期状況
(5) ファイルの共有の問題
自分の場合は共有フォルダーはとりあえずデフォルトの $HOME/Sync のみとした. ここにメールボックスのディレクトリー ('mbox' という名前) を置く. これに対してホームディレクトリーに Mail という名前でシンボリックリンクを張る. この操作は両デバイス macOS と OpenBSD 上で行う.
$ cd
$ ln -s ~/Sync/mbox Mail
macOS 側の共有フォルダー ~/Sync/mbox ディレクトリー配下には約 83000 個 (2.4 GB) のメールファイルが存在する. これが Syncthing の同期機能によって OpenBSD 側と同期されるのを待てばよい.
● 問題: 同期が非常に遅い
三日間放っておいたが同期が取れたのは 83000 ファイルのうち 130 個あまりで, これでは全てのファイルの同期に何日かかるのかわからない. 調べたら Syncthing のサイトにもメールボックスのような小さなファイルが大量にある場合の同期には非常に時間がかかるという問題が掲載されている. Tiny file synchronization is super slow #5568
それでやり方を変えた.
(1) 両デバイス (macOS, OpenBSD) 上で Syncthing デーモンを一旦停止する.
(2) macOS 側の ~/Sync/mbox ファイルを rsync を使って OpenBSD 側にコピーする
$ rsync -avz ~/Sync/mbox 192.168.100.146:Sync
ここで 192.168.100.146 は OpenBSD 仮想マシンのプライベート IP アドレスである. macOS 上の ~/Sync/mbox ディレクトリー以下の内容全てを OpenBSD 上の ~/Sync/mbox ディレクトリーにコピーする.
(3) 両デバイス (macOS, OpenBSD) 双方で Syncthing デーモンを起動する. 同期が開始される.
このやり方でいいのかどうかわからない. 二日間かかって同期はほぼ完了した.
今後しばらく使って, 日常の使用に耐えるかどうか確かめる.
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image