余談だが、前述の rsync の公式サイトは https://rsync.samba.org/ で、Samba と同じ所にある。
筆者は、仮想マシン上の FreeBSD ←→ ホストの MS-Windows 間でファイルをやり取りするために、従来より Samba を用いている。
Samba は、既に何かの依存関係でインストールされていたようだ。
% pkg info | egrep -i samba
samba416-4.16.11_4 Free SMB/CIFS and AD/DC server and client for Unix
以下のような /usr/local/etc/smb4.conf ファイルを作成した (旧環境から持って来た)。 ここではワークグループ名を「MAGIC」、NetBIOS 名を「fb」と設定している。
# 2019-10-08 nsmrtks
[global]
workgroup = MAGIC
netbios name = fb
map archive = no
[homes]
comment = Home Directories (%h)
browseable = no
writable = yes
# end-of-file
また、以下を実行し、/etc/rc.conf で samba_server_enable を YES にする。 (samba_server_enable について /usr/local/etc/rc.d/samba_server を参照)
% sudo sysrc samba_server_enable=YES
パスワード: 〜
samba_server_enable: -> YES
Samba を起動する..前に、筆者は旧環境 (fb130) で動作している Samba が同じ名前 (「fb」) であり、衝突するし、新環境の Samba があれば不要なので、停止させ、また起動しないようにした。
そうしたら、新環境の Samba を起動する。
% sudo service samba_server start
パスワード: 〜
Performing sanity check on Samba configuration: OK
Starting nmbd.
Starting smbd.
Samba のプロセス (smbd と nmbd) が本当に起動しているかどうか、筆者はよく以下のようにして確かめる。
% ps axw | egrep mb 87925 - Ss 0:00.04 /usr/local/sbin/nmbd --daemon --configfile=/usr/local/etc/smb4.conf 87930 - Is 0:00.43 /usr/local/sbin/smbd --daemon --configfile=/usr/local/etc/smb4.conf 87933 - I 0:00.00 /usr/local/sbin/smbd --daemon --configfile=/usr/local/etc/smb4.conf 87934 - S 0:00.00 /usr/local/sbin/smbd --daemon --configfile=/usr/local/etc/smb4.conf 88023 7 S+ 0:00.00 egrep mb
そして、ユーザ (自分) を Samba に追加する。 (コマンド名が類推しにくいが pdbedit である)
% sudo pdbedit -a -u nsmrtks
new password:【パスワードを考えて入力】
retype new password:【もういちど入力】
Unix username: nsmrtks
NT username:
Account Flags: [U ]
User SID: S-1-5-21-4146075932-710546122-1232452624-1000
Primary Group SID: S-1-5-21-4146075932-710546122-1232452624-513
Full Name: NISHIMURA Takeshi
Home Directory: \\FB\nsmrtks
HomeDir Drive:
Logon Script:
Profile Path: \\FB\nsmrtks\profile
Domain: FB
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 木, 07 2月 2036 00:06:39 JST
Kickoff time: 木, 07 2月 2036 00:06:39 JST
Password last set: 土, 06 4月 2024 20:16:32 JST
Password can change: 土, 06 4月 2024 20:16:32 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
これで、MS-Windows 側から \\fb でアクセスできるようになった。
/etc/ssh/sshd_config で、X11Forwarding を yes に設定する。 これにより、他のホストから ssh で X11 のソフトの表示が可能となる。
これは、FreeBSD 14.0 になってから、デフォルトが変わったのだろうか? 以前は FreeBSD では yes がデフォルトだった気がする。
% cd /etc/ssh/
% ls -ld sshd_config
-rw-r--r-- 1 root wheel 3315 11月 10 17:23 sshd_config
% sudo cp -ip sshd_config sshd_config.ORIG
パスワード: 〜
% sudo vi sshd_config
以下の diff のように、X11Forwarding が yes になるようにする。
--- /etc/ssh/sshd_config.ORIG 2023-11-10 17:23:55.000000000 +0900
+++ /etc/ssh/sshd_config 2024-04-10 13:46:48.405746000 +0900
@@ -88,7 +88,7 @@
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
-#X11Forwarding no
+X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
sshd に SIGHUP を送るのが必要なようだ。
% ps ax | egrep sshd
1219 - Is 0:00.00 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups (s
3572 - Is 0:00.01 sshd: nsmrtks [priv] (sshd)
3574 - S 0:00.01 sshd: nsmrtks@pts/0 (sshd)
3626 1 S+ 0:00.00 egrep sshd
% sudo kill -HUP 1219
パスワード: 〜
既に仮想マシンの作成編で設定済みだが、VirtualBox の『デバイス』→『クリップボードの共有』が「双方向」になっているはずである。
これで、VirtualBox 内の X11 と、ホストの Windows
間で、コピー & ペーストが出来るようになっている。
素晴らしいことに、日本語を含んでいても、正常にコピー & ペースト出来る!
ちなみに urxvt については、マウスで範囲選択後 Ctrl-Alt-c でテキストのコピー、Shift-Insert でテキストのペーストが出来る。
もし、不意にコピー/ペーストが出来なくなってしまった場合..
% ps auxw | egrep -i vbox
root 1076 0.0 0.0 32680 4904 - Is 金14 0:36.08 /usr/local/sbin/VBoxService
nsmrtks 53830 0.0 0.0 17276 5744 - Is 金19 0:00.00 /usr/local/bin/VBoxClient --clipboard
nsmrtks 53832 0.0 0.1 25760 6360 - I 金19 0:00.44 /usr/local/bin/VBoxClient --clipboard
nsmrtks 53839 0.0 0.0 17276 5736 - Is 金19 0:00.00 /usr/local/bin/VBoxClient --seamless
nsmrtks 53840 0.0 0.0 25728 6092 - I 金19 0:00.20 /usr/local/bin/VBoxClient --seamless
nsmrtks 53845 0.0 0.0 17276 5752 - Is 金19 0:00.00 /usr/local/bin/VBoxClient --draganddrop
nsmrtks 53847 0.0 0.1 25856 6144 - I 金19 9:11.95 /usr/local/bin/VBoxClient --draganddrop
nsmrtks 53850 0.0 0.0 17276 5748 - Is 金19 0:00.00 /usr/local/bin/VBoxClient --vmsvga
nsmrtks 53851 0.0 0.1 25828 6320 - I 金19 0:00.00 /usr/local/bin/VBoxClient --vmsvga
nsmrtks 65214 0.0 0.0 13324 2776 7 S+ 20:32 0:00.00 egrep -i vbox
ps x で VBoxClient --clipboard というものの PID を調べ、それを kill して、同じように VBoxClient --clipboard で立ち上げ直すと、たいてい直る。
デフォルトの FreeBSD の設定では、/etc/crontab にて、夜中〜早朝深夜に daily / weekly / monthly の自動メンテナンスが走るようになっている。
筆者の環境はそのような時間に PC の電源が入っていないので、これを日中に実行するように変更する。
% sudoedit /etc/crontab
〜
一部を以下のようになるように編集した。
〜
#minute hour mday month wday who command
〜
# Perform daily/weekly/monthly maintenance.
4 12 * * * root periodic daily
14 12 * * 3 root periodic weekly
24 12 1 * * root periodic monthly
〜
なお、/etc/crontab ファイルの更新さえすれば、cron デーモンの再起動等は特に不要である。 (cron(8) (man cron) を参照)
これを設定すると、毎日 root 宛にメールが来るようになる。
自分は sudo -i して mail コマンドで見ている。
ここまで ZFS のファイルシステムを設定してきたが、筆者の印象では、この
ZFS というものは、超高機能である引き換えに、突然の電源断
(停電やハードウェア障害など) に、極端に弱い。
過去にこれで ZFS が使用不能、修復も不能になったことが何度もあった。
よく考えたらそれらは、どれも VirtualBox で FreeBSD を実行していた。
そして VirtualBox の設定の「ストレージ」には、「ホストの
I/O キャッシュを使う」という設定があった。
しかもデフォルトで ON になっている。
それがいけなかったのだろうか。
ここでは、設定を OFF に切り替えてみる。
なおこの設定を変えるには、仮想マシンを「電源オフ」にしておかないといけない。
「Oracle VM VirtualBox マネージャー」にて、「fb140」が選択された状態で『設定』→『ストレージ』と進む。
「コントローラー: IDE」を選択した状態で、「ホストの I/O キャッシュを使う」にチェックが入っていたのを、チェックを外す。
SAS の方は既にチェックが外れていた。
忘れずに『OK』押す。
先ほども触れたが、筆者の印象では、ZFS は、超高機能である引き換えに、ガラス細工のように脆いファイルシステムだ。
今回、初めての試みとして、ZFS のスナップショットを不定期に取得し、それをバックアップ保存するための、仮想ディスクを接続しておいてみる。
仮想ディスクは、筆者が既に以前作成し、今は特に使用しないまま放置していた、以下に見える ufs.vdi (24.00 GB) を用いる。
今回は既に作成済みの仮想ディスクを用いるが、もしこれの作成方法が知りたいという読者は、「環境構築編: 前編」の「/usr/posts/distfiles のディスクをマウント」を参考にされたい。
この設定を行うにも、仮想マシンを「電源オフ」にしておかないといけない。
「Oracle VM VirtualBox マネージャー」にて、「fb140」が選択された状態で『設定』→『ストレージ』と進む。
「コントローラー: LsiLogic SAS」があるので (これを作成した経緯は「環境構築編: 前編」の「/usr/posts/distfiles のディスクをマウント」を参照)、それを選択し、その右の「■」に「+」のようなアイコン (「ハードディスクの追加」) を選択する。 (あるいはウィンドウの下の方にある「■」に「+」のようなアイコン (「割り当ての追加」) →「ハードディスク」でもいけると思う)
「fb140 - ハードディスク選択」のウィンドウが出てくるので、「Not Attached」の所にある「ufs.vdi」を選択し、『選択』を押す。
「コントローラー: LsiLogic SAS」の「SAS ポート 1」として、「ufs.vdi」が付いた。
忘れずに『OK』押す。
fb140 を再び起動する。
追加した仮想ハードディスクは以下のように見えている。
(起動時に表示される他 dmesg コマンドでも後から確認できる)
〜
da1 at mpt0 bus 0 scbus2 target 1 lun 0
da1: <VBOX HARDDISK 1.0> Fixed Direct Access SPC-3 SCSI device
da1: 300.000MB/s transfers
da1: Command Queueing enabled
da1: 24576MB (50331648 512 byte sectors)
〜
また、筆者が以前 UFS で使っていた仮想ディスクなので、GPT で freebsd-ufs のパーティションも存在している。
% gpart show
〜
=> 40 50331568 da1 GPT (24G)
40 50331568 1 freebsd-ufs (24G)
これを、/home/backups というディレクトリにマウントすることとする。
ディレクトリを作成し、/etc/fstab を編集し..
% sudo mkdir /home/backups
パスワード: 〜
% ls -l /home
total 54
drwxr-xr-x 2 root wheel 512 4月 20 18:53 backups/
drwxr-xr-x 38 nsmrtks nsmrtks 38400 4月 19 11:39 distfiles/
drwxr-xr-x 57 nsmrtks nsmrtks 131 4月 20 18:53 nsmrtks/
drwxr-xr-x 2 nsmrtks nsmrtks 512 2月 24 23:21 nsmrtks.BACK/
% sudoedit /etc/ftab
/etc/fstab に以下のエントリを追加した。
# 2024-04-20 nsmrtks
/dev/da1p1 /home/backups ufs rw 2 2
そうして、mount 出来た。 (筆者が以前使用していた仮想ディスクなので、既に容量を使っている。)
% sudo mount /home/backups
パスワード: 〜
% df -h
Filesystem Size Used Avail Capacity Mounted on
〜
/dev/da1p1 23G 16G 5.4G 75% /home/backups
また、root でなくても書き込めるように、chmod した。
% sudo chmod g+w /home/backups
% ls -ld /home/backups
drwxrwxr-x 4 root wheel 512 1月 23 2020 /home/backups/
中身は不要なので、この機会に削除した。
% cd /home/backups
% ls -a
./ ../ .snap/ nsmrtks/
% date ; rm -fr nsmrtks ; date
2024年 4月20日 土曜日 19時13分59秒 JST
2024年 4月20日 土曜日 19時15分20秒 JST
% df -h
Filesystem Size Used Avail Capacity Mounted on
〜
/dev/da1p1 23G 8.0K 21G 0% /home/backups
zfs list -t snapshot で、現在のスナップショットが表示できる。 実は既にスナップショットを作成したことがあったので、以下のように表示された。
% zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
zfs/local@20240415 75.2M - 4.80G -
zfs/nsmrtks@20240415 50.0M - 3.24G -
zfs/ports@20240415 37.9M - 1.61G -
新しくスナップショットを作成する。 zfs snapshot 〜 というコマンドラインで作成できるが、今回は -r オプションを付けてみたら、一発で以下のように作成された。
% df -h
Filesystem Size Used Avail Capacity Mounted on
〜
zfs 13G 24K 13G 0% /zfs
zfs/nsmrtks 16G 3.3G 13G 20% /home/nsmrtks
zfs/local 18G 4.8G 13G 27% /usr/local
zfs/ports 15G 1.6G 13G 11% /usr/ports
〜
% sudo zfs snapshot -r zfs@20240420
パスワード: 〜
% zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
zfs@20240420 0B - 24K -
zfs/local@20240415 75.2M - 4.80G -
zfs/local@20240420 114K - 4.80G -
zfs/nsmrtks@20240415 50.0M - 3.24G -
zfs/nsmrtks@20240420 59K - 3.25G -
zfs/ports@20240415 37.9M - 1.61G -
zfs/ports@20240420 0B - 1.61G -
作成したスナップショットに対して、zfs send というのを使うと、以下のようにバックアップすることが出来る。 (-c を使わないとバックアップファイルが大きくなる)
% sudo zfs send -c zfs@20240420 > /home/backups/zfs@20240420
パスワード: 〜
% date ; sudo zfs send -c zfs/local@20240420 > /home/backups/zfs_local@20240420 ; date
2024年 4月20日 土曜日 19時37分09秒 JST
2024年 4月20日 土曜日 19時37分31秒 JST
% date ; sudo zfs send -c zfs/nsmrtks@20240420 > /home/backups/zfs_nsmrtks@20240 420 ; date
2024年 4月20日 土曜日 19時38分20秒 JST
2024年 4月20日 土曜日 19時38分50秒 JST
% date ; sudo zfs send -c zfs/ports@20240420 > /home/backups/zfs_ports@20240420 ; date
2024年 4月20日 土曜日 19時39分07秒 JST
2024年 4月20日 土曜日 19時39分22秒 JST
% ls -l /home/backups
total 10925040
-rw-r--r-- 1 nsmrtks wheel 5561665280 4月 20 19:37 zfs_local@20240420
-rw-r--r-- 1 nsmrtks wheel 3683305080 4月 20 19:38 zfs_nsmrtks@20240420
-rw-r--r-- 1 nsmrtks wheel 1939289344 4月 20 19:39 zfs_ports@20240420
-rw-r--r-- 1 nsmrtks wheel 47384 4月 20 19:36 zfs@20240420
% ls -lh /home/backups
total 10925040
-rw-r--r-- 1 nsmrtks wheel 5.2G 4月 20 19:37 zfs_local@20240420
-rw-r--r-- 1 nsmrtks wheel 3.4G 4月 20 19:38 zfs_nsmrtks@20240420
-rw-r--r-- 1 nsmrtks wheel 1.8G 4月 20 19:39 zfs_ports@20240420
-rw-r--r-- 1 nsmrtks wheel 46K 4月 20 19:36 zfs@20240420
% df -h
Filesystem Size Used Avail Capacity Mounted on
〜
zfs 13G 24K 13G 0% /zfs
zfs/nsmrtks 16G 3.3G 13G 20% /home/nsmrtks
zfs/local 18G 4.8G 13G 27% /usr/local
zfs/ports 15G 1.6G 13G 11% /usr/ports
〜
/dev/da1p1 23G 10G 11G 49% /home/backups
筆者は、ホームディレクトリのバックアップと、freebsd-update fetch と、ports の更新 (portupgrade の実行を含む) 等を一括して行うスクリプトを、日々走らせている (手動で起動)。
ただしここまで、新環境ではまだそのスクリプトを走らせていなかった。 走らせられるように、ここではそれを設定する。
以下がコマンドラインから (日々) 走らせる(実行する)スクリプトである。 ファイル名 (コマンド名) は bup としている (backup と update と portupgrade の略)。
#!/bin/sh
# 2024-06-15 nsmrtks
# 2022-08-08,09-25,10-03,05,11 nsmrtks
# 2019-10-18 nsmrtks
# 2014-12-01,29 nsmrtks
# 2014-03-14 for fb092 ..
# 2012-03-16, 09-03, 11-18, 2013-02-21, 06-04 nsmrtks
# (require back2, updatefb and /var/tmp/log/pvc.sh)
# check the dir
cd /var/tmp/log || exit 1
# get the privilege
sudo pwd
# compress the logs
find . -name \*.log -mtime +1 -print0 | xargs -0 xz -v
# backup
back2
# updatefb
[ -d updatefb ] || ( set -x ; mkdir updatefb )
( cd updatefb && teetime updatefb )
# portupgrade -- fetch only
sh pvc.sh -F
echo
echo 'Please run pvc.sh again (without -F).'
# EoF
このスクリプトからはさらに、back2 と updatefb と pvc.sh というスクリプトが呼び出されている。
back2 は、ホームディレクトリのバックアップを行うスクリプトである。 短いのでついでに紹介しておく。
#!/bin/sh # 2024-04-08 nsmrtks # 2021-05-10 nsmrtks # 2015-02-03,11-25,2016-05-29,2017-10-02,2019-10-18,2020-02-03 nsmrtks # moved from bup if [ `hostname`. != fb140.magic.or. ]; then echo this is not fb140, backup not supported exit 1 fi [ -d /var/tmp/log/back ] || ( set -x ; mkdir /var/tmp/log/back ) cd /var/tmp/log/back || exit 1 set -x teetime -t rsync \ rsync -a --delete-before /home/nsmrtks/ fb130c:/zfs/nsmrtks/ # EoF
updatefb は、freebsd-update fetch や pkg audit -F や ports ツリーの更新を行うスクリプトである。
FreeBSD 14.0 になってから portsnap が廃止されたようなので (前述)、今回、portsnap が有る場合 (旧環境) と無い場合の両方に対応するよう変更した。
以下のような内容にしている。#!/bin/sh # 2010-11-04,12,2013-03-14- Time-stamp: <2024-06-15 19:11:34 nsmrtks> # (sudoers may need to have `Defaults env_keep += "http_proxy"') date echo ========================================================================== ( set -x ; sudo freebsd-update fetch ) echo ========================================================================== # They hang. Why?? #( set -x ; sudo pkg update ) # pkg update is very slow. add -d to know the reason.. ( set -x ; sudo pkg -d update ) echo -------------------------------------------------------------------------- ( set -x ; sudo pkg audit -F ) echo ========================================================================== if type portsnap >/dev/null 2>&1 ; then ( set -x ; sudo portsnap fetch ) echo ================================================================== ( set -x ; portsnap update ) else ( set -x ; cd /usr/ports && make update fetchindex ) fi echo ========================================================================== ( set -x ; sudo portversion -c > portversion-c.out ) echo ========================================================================== date # EoF
この最後の方で、portversion -c というコマンドを実行し (portversion は portupgrade ツール群に含まれるコマンド)、リダイレクト出力で /var/tmp/log/updatefb/portversion-c.out というファイルを作成している。
これは中身が sh スクリプトになっており、sh で実行すると、更新があるパッケージについて portupgrade を実行してくれるというものになっている。 (更新があるパッケージ名が内部でずらずら列挙されている)最後に pvc.sh が、その portversion-c.out を sh で実行する、即ち portupgrade を実行するスクリプトになっている。 (前述の通り /var/tmp/log に配置)
#!/bin/sh # 2012-03-07,2019-10-18 nsmrtks # Usage: # sh pvc.sh [portupgrade options..] # Example: # sh pvc.sh # sh pvc.sh -w # (require teetime and ../updatefb/portversion-c.out) [ -d /var/tmp/log/pvc ] || ( set -x ; mkdir /var/tmp/log/pvc ) set -x cd /var/tmp/log/pvc && \ nice teetime -t pvc sh ../updatefb/portversion-c.out -s $* # EoF
これで準備が出来た。 おもむろに bup を実行する.. (といっても以下に示す実行例は事情により何回かやり直している)
なお nice +20 〜 としているがこれは csh (tcsh) 系の場合で、もし bash 等 sh 系の場合は nice -n 20 〜 などとする。 (あるいは効果は変わるが nice だけでもよいしそもそも nice 無しでもよい)
% nice +20 bup
/var/tmp/log
+ teetime -t rsync rsync -a --delete-before /home/nsmrtks/ fb130c:/zfs/nsmrtks/
conflicting rsync20240615.log
logging (from the next line till the end) to rsync2024061519.log
teetime! 2024年 6月15日 土曜日 19時52分29秒 JST
teetime! working directory is /var/tmp/log/back
teetime> rsync -a --delete-before /home/nsmrtks/ fb130c:/zfs/nsmrtks/
teetime! 2024年 6月15日 土曜日 19時52分33秒 JST
conflicting updatefb20240615.log
logging (from the next line till the end) to updatefb2024061519.log
teetime! 2024年 6月15日 土曜日 19時52分33秒 JST
teetime! working directory is /var/tmp/log/updatefb
teetime> updatefb
2024年 6月15日 土曜日 19時52分33秒 JST
==========================================================================
+ sudo freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 14.0-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata patches.. done.
Applying metadata patches... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 172 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170. done.
Applying patches... done.
Fetching 56 files... ....10....20....30....40....50... done.
The following files will be added as part of updating to
14.0-RELEASE-p6:
〜
The following files will be updated as part of updating to
14.0-RELEASE-p6:
/bin/freebsd-version
/boot/kernel/if_wg.ko
/boot/kernel/kernel
〜
==========================================================================
+ sudo pkg -d update
〜
==========================================================================
+ cd /usr/ports
+ make update fetchindex
〜
==========================================================================
+ sudo portversion -c
〜
==========================================================================
2024年 6月15日 土曜日 20時10分38秒 JST
teetime! 2024年 6月15日 土曜日 20時10分38秒 JST
+ cd /var/tmp/log/pvc
+ nice teetime -t pvc sh ../updatefb/portversion-c.out -s -F
conflicting pvc20240615.log
logging (from the next line till the end) to pvc2024061520.log
teetime! 2024年 6月15日 土曜日 20時10分38秒 JST
teetime! working directory is /var/tmp/log/pvc
teetime> sh ../updatefb/portversion-c.out -s -F
〜
teetime! 2024年 6月15日 土曜日 21時47分30秒 JST
ここで、筆者の bup スクリプトを用いた、portupgrade に関する手順は、以下の二段構えとなっている。
よって、直前で示した実行例では、上で言う 1. までが実行されている。 だから、次は 2. を実行しなければならないが..
少し話が飛んでややこしくなるが、上の実行例で示した通り、bup
の中で実行した freebsd-update fetch で、FreeBSD
のベースシステムに更新があることが表示されている。
そのため、(portupgrade でコンパイルの前に) freebsd-update install
を先に実行することにする。
% sudo freebsd-update install
パスワード:
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 1231.
Performing sanity check on sshd configuration.
Starting sshd.
Scanning /usr/share/certs/untrusted for certificates...
Scanning /usr/share/certs/trusted for certificates...
Scanning /usr/local/share/certs for certificates...
done.
FreeBSD カーネルに関した更新も表示されていたので、シャットダウン、(仮想マシンの)電源を切り、再度(仮想マシンの)電源を入れた。
portupgrade の話に戻って、/var/tmp/log に移動して、筆者の pvc.sh スクリプトを実行すると、portupgrade でコンパイルが行われる。 (前述の通り /var/tmp/log に pvc.sh が配置してある)
(以下の実行例では、不注意により、一度やり直している。)
% cd /var/tmp/log
% nice +20 sh pvc.sh
+ cd /var/tmp/log/pvc
+ nice teetime -t pvc sh ../updatefb/portversion-c.out -s
conflicting pvc20240615.log
logging (from the next line till the end) to pvc2024061522.log
teetime! 2024年 6月15日 土曜日 22時42分47秒 JST
teetime! working directory is /var/tmp/log/pvc
teetime> sh ../updatefb/portversion-c.out -s
〜
VirtualBox 上の FreeBSD を作動させたまま、ホスト側 (MS-Windows 10)
をスリープして、復帰すると、以降 FreeBSD
の時計が、数秒〜数分のオーダーでずれるようになってしまうようだ。
VBoxService が作動していてもである。
以前、VBoxService --disable-timesync して、代わりに
ntpd による時刻同期も試みたが、改善しなかった。
これを回避する方法として、ホスト (Windows) をスリープさせる前に、VirtualBox
の FreeBSD を必ず「停止」→「保存状態」で保存する。
スリープから復帰したときには、また「起動」で保存状態から復帰させる。
保存状態にしておけば、その間は万が一 Windows
が異常終了したり再起動したりしてしまっても安心というのもある。
また、この保存状態で、筆者は日々、仮想ディスクのバックアップコピーを取っている。
(かなり時間がかかるが)
次に FreeBSD 15.0 をインストールして移行するとしたら何年後になるだろう..
(前回 12.1 → 13.0 に移行
したのは 3年前であった)
その時には自分は何歳になっているだろう..