FreeBSDでfdescfsをマウントしようとしたら「Operation not supported」と言われた
経緯
FreeBSD10 64bitにて。
pkg install bashをした際、ログに
bash requires fdescfs(5) mounted on /dev/fd If you have not done it yet, please do the following: mount -t fdescfs fdesc /dev/fd To make it permanent, you need the following lines in /etc/fstab: fdesc /dev/fd fdescfs rw 0 0
と出ていたので、素直にfstabへ書き込み、再起動!
・・・としたところ、
Mounting local file system:mount fdesc: Operation not supported by device
と言われてSingle User Modeになってしまいましたという残念な流れです。
調査
エラーメッセージでググっていると、とあるブログに行き当たりました。
mount_nullfs - Cocelo Style http://d.hatena.ne.jp/cocelo/20070316/1173986065
こちらの方はどうやらnullfsがマウントできない、という話のようですが、症状がよく似ています。
気になったので
# kldstat Id Refs Address Size Name 1 20 0xffffffff80200000 15f0430 kernel 2 1 0xffffffff817f9000 23ac00 zfs.ko 3 2 0xffffffff81a34000 6648 opensolaris.ko
してみると、案の定fdescfs.koは読み込まれていない。(kernel, zfs.so, opensolaris.ko のみ)
ブログの方はカーネルの再構築を試みたようですが、面倒なのでloader.confで試してみました。
対応
まず、/bootがマウントされてなくて触れないため、一旦fstabを元に戻します
# vi /etc/fstab
マルチユーザーモードへ
# exit
/boot/loader.conf に、以下の記述を追加します。
fdescfs_load="YES"
再起動
# reboot
読み込まれているカーネルモジュールを確認
% kldstat Id Refs Address Size Name 1 20 0xffffffff80200000 15f0430 kernel 2 1 0xffffffff817f1000 7ec0 fdescfs.ko 3 1 0xffffffff817f9000 23ac00 zfs.ko 4 2 0xffffffff81a34000 6648 opensolaris.ko 5 1 0xffffffff81c12000 24760 vboxguest.ko 6 1 0xffffffff81c37000 4c8 vboxvideo.ko 7 1 0xffffffff81c38000 16efd drm.ko
→ fdescfs.ko がロードされている!
fstabへもう一度fdescfsの記述を追加し、再起動
# vi /etc/fstab # reboot
マウントポイント確認
% df fdescfs Filesystem 1K-blocks Used Avail Capacity Mounted on fdescfs 1 1 0 100% /dev/fd
OK!!
参考URL
- mount_nullfs - Cocelo Style (http://d.hatena.ne.jp/cocelo/20070316/1173986065)