Quantcast
Channel: まきまき.jp » Computer
Viewing all articles
Browse latest Browse all 12

【注意】freebsd-updateを使ったFreeBSD 10.1-RELEASEへのアップグレード【バグ】

0
0

[2014/12/20 追記] lib32の件は、10.1-RELEASE-p2へのアップデート時に解決されるようになってるっぽいです。

FreeBSD 10.0-RELEASE-p12から10.1-RELEASEにfreebsd-updateでアップグレードしたところ、2つのバグに遭遇し厄介なことに。
既に被害に遭われた方、これからアップグレードする方のためにも、備忘録を残しておきます。

遭遇した既知のバグは以下2つ。

  1. ユーザ管理をLDAPで行っており、/etc/nsswitch.confや/etc/pam.d以下にLDAP認証を使うための記述があると、ユーザランドのインストール時にSegmentation faultが出まくって、その後ユーザランドが壊滅、ログインすらできなくなる。
  2. world/lib32をインストール済みの環境にもかかわらず、lib32がインストールされない(/usr/lib32以下に空のディレクトリが3つだけになる…。)。

対処法はそれぞれ次の通りです。
※念のため、まず、ZFSをお使いの方は、freebsd-update前にsnapshotを取ることをおすすめします。

1. LDAPのpam関連

freebsd-updateが終わるまで、LDAP関連の記述をとりあえず消す。
LDAPで管理してるユーザ以外にwheelグループユーザがない場合は、直にrootユーザでログインするとかしてください。

cd /etc
# nsswitch.confのldapをコメントアウト("ldap"が行の最後に記述されていること前提なので、そうじゃない場合は手動で)
perl -i -pe "s/ldap/#ldap/g" nsswitch.conf
# pam.d以下の対象ファイルを確認
find pam.d/ -type f | xargs grep ldap
# (元々コメントアウトされているものがあるなら以下の処理は手動で!)
# pam.d以下のldap関連の行をコメントアウト
find pam.d/ -type f | xargs perl -pi -e 's/^(.*ldap)/#$1/g'

# あっぷぐれーど(省略)

# pam.d以下のldap関連の行を元に戻す(元々コメントあう(ry))
find pam.d/ -type f | xargs perl -pi -e 's/^#(.*ldap)/$1/g'
# nss(ry (”lda(ry)
perl -i -pe "s/#ldap/ldap/g" nsswitch.conf

※perlがない場合はsedとか使って下さいm(_ _)m

既に手遅れ(Segmentation faultで崩壊)の場合、ZFSのSnapshotがあればラクーに復旧できます。
シングルユーザモードで起動して

/rescue/zfs rollback [pool名]@[snapshot名]

で!
Snapshotがない場合は。。。頑張ってください(´・ω・`)
多分、ユーザランドのバイナリをftp://ftp8.jp.freebsd.org/pub/FreeBSD/releases/amd64/10.1-RELEASE/とかから拾ってきて徐ろに展開すればとりあえず動くんじゃないかと思いますが、色々おかしくなること間違いなしなので再インストールしたほうがいいかもしれないです。

2. lib32

3回目のfreebsd-update install前にlib32.txzを拾ってきて展開する。
※細かい手順は割愛します。

freebsd-update upgrade -r 10.1-RELEASE
freebsd-update install # カーネルインストール
reboot
freebsd-update install # ユーザランドインストール

# ここでlib32.txzを拾ってきて展開
cd /tmp
fetch ftp://ftp8.jp.freebsd.org/pub/FreeBSD/releases/amd64/10.1-RELEASE/lib32.txz
tar xfp lib32.txz -C /

freebsd-update install # 最終インストール

3回目のfreebsd-update installを既に実施してしまっている場合は、lib32.txz展開後に手動でchflagsしとけば大丈夫だと思われます。

chflags -R noschg /libexec
chflags -R noschg /usr/lib32

以上です。
もしかすると、他にも不具合がありそうな予感がしないでもないです。。。

なんかなー10.0-RELEASEが評判悪かったから、10.1-RELEASEはそこそこ安定したバージョンになってくれると期待してたんだけど、まさかアップグレードでここまでボロボロとはw
それでもやっぱりLinuxよりFreeBSD派なのでした。

タグ: , ,

Related posts


Viewing all articles
Browse latest Browse all 12

Latest Images

Trending Articles





Latest Images