前のメモで、FreeBSD 10.4 に上げても ffmpeg がコアダンプする状況に変化は無かったと書きました。
FreeBSD 10.4 のサポート期間は、実は今月(2018/10)いっぱい。サポートが切れたからと言ってすぐに使えなくなる訳ではありませんが、いずれ、今私のサーバー群が陥っている状況になります。
それならついでに11系まで上げておこうかと思い直しました。11.2が最新ですが、11.2のPCは別にあるので、11.1系に上げてみることにしました。つまり、FreeBSD 10.4→11.1 へ freebsd-update コマンドを使って更新するということです。
今回も手順は省略しますが、「freebsd-update install」のあと、再起動するところまで進みました。
今度こそスムーズに上がってきてくれよ と祈っていましたが、今回もまた mountroot で止まって、そのあとで Panic。がっくり。
こんな感じで止まります。
ada3: ATA-7 device ada3: Serial Number S0WWJ1DPA06963 ada3: 100.000MB/s transfers (UDMA5, PIO 8192bytes) ada3: 238475MB (488397168 512 byte sectors) Trying to mount root from ufs:/dev/ad0s1a [rw]... uhub0: 2 ports with 2 removable, self powered uhub1: 2 ports with 2 removable, self powered mountroot: waiting for device /dev/ad0s1a... Mounting from ufs:/dev/ad0s1a failed with error 19. Oct 14 20:51:19 cafe kernel: Loader variables: vfs.root.mountfrom=ufs:/dev/ad0s1a vfs.root.mountfrom.options=rw Oct 14 20:51:19 cafe kernel: Manual root filesystem specification: : [options] Mount using filesystem and with the specified (optional) option list. Oct 14 20:51:19 cafe kernel: eg. ufs:/dev/da0s1a zfs:tank cd9660:/dev/cd0 ro (which is equivalent to: mount -t cd9660 -o ro /dev/cd0 /) Oct 14 20:51:19 cafe kernel: ? List valid disk boot devices . Yield 1 second (for background tasks) Abort manual input Oct 14 20:51:19 cafe kernel: mountroot>
やむなくブートメニュー 5 で kernel.old から起動し直し。今回は、fstab の情報に基づいてファイルシステムをマウントするところで、mountroot に落ちていますから旧バージョンカーネルで起動して fstab を見てみますと、ルートパーティションは、「/dev/ad0s1a」です。ad の後が、すぐ数字。
今、FreeBSD 11.1 を新規インストールすると、ファイルシステムのデバイスファイル名は、ada0xxx と必ず、デバイスドライバー名3桁目はアルファベットとなり、数字は許可されません。確か、FreeBSD 9 の頃からか、新規インストールする場合のパーティションデバイスドライバー名が変更になりました。
ただし、旧バージョンからアップデート、アップデートと同じパーティションを使い続けている場合は、旧フォーマットもOKでした。
しかし、FreeBSD 11.x では駄目みたい。11.1 からなのか、11.0 で既に不許可になっていたのかはわかりません。
mountroot> プロンプトの状態で ? をタイプすると、マウント可能なデバイスファイル名が表示されます。
List of GEOM managed disk devices:
ufsid/55ed248ffe0e5f7dd diskid/DISK-S0WWJ1DPA06963s1d ufsid/578231789665e335 diskid
/DISK-VNR2GEC2U92MGRs1d diskid/DISK-VNR2GEC2U92MGRs1b ada3s1d ufsid/55ed248ffe0e5f7d diskid/DISK-S0WWJ1DPA06963s
1 ada2s1d ada2s1b diskid/DISK-VNR2GEC2U92MGRs1 ufsid/578115d60cda0314 diskid/DISK-E217AHVCs1d diskid/DISK-E217AH
VCs1b ufsid/4f7f19984dd3dc35 diskid/DISK-WL7WL0A3641s1b diskid/DISK-WL7WL0A3641s1a ada3s1 diskid/DISK-S0WWJ1DPA0
6963 ada2s1 diskid/DISK-VNR2GEC2U92MGR ada1s1d ada1s1b diskid/DISK-E217AHVCs1 ada0s1b ada0s1a diskid/DISK-WL7WL0
A3641s1 ada3 ada2 ada1s1 diskid/DISK-E217AHVC ada0s1 diskid/DISK-WL7WL0A3641 ada1 ada0
Disk IDも使えるようですが、そんなの覚えていないし調べてもいない。ad0 は存在しておらず、ada0s1 ならあります。これしかないので、
ufs:ada0s1
とタイプしてみると、OS起動が再開されました。これはハマる。
FreeBSD 8.2から 8.3p3 へ freebsd-update で更新した時もデバイスファイル名が変わってしまうというトラブルではまってしまいましたが、今回もまたやられました。
原因さえわかれば、OSが起動した後 /etc/fstab を編集するだけ。スワップパーティションも認識されていなかったので、そちらのデバイスファイル名もアルファベットを1文字追加して終了。
これで、FreeBSD 11.1 の環境になりました。(サポート終了バージョンなんですけどね。)
FreeBSD 11.1-RELEASE-p15
本題の、ffmpeg を実行してみると、core dump じゃなく、共有ライブラリが見つからない となりました。
> ffmpeg -h Shared object "libdl.so.1" not found, required by "libgnutls.so.30"
多少進歩しました。