[FreeBSD-users-jp 96839] Re: ZFSが突然bootしなくなりました
Hideo Kuwabara
kuwa @ superconnect.or.jp
2021年 7月 22日 (木) 12:39:38 UTC
こんばんは、色々な情報をありがとうございます。
freebsd-boot 先頭で 512k
freebsd-swap 4G
freebsd-zfs 全て
をgptzfsbootでブートしていて、zfsへの
書き込みが、2TBを超えたころにブートしなくなるのは困ったものです。
2021年7月22日(木) 10:00 Tomoaki AOKI <junchoon @ dec.sakura.ne.jp>:
> 青木@名古屋です。
>
> 今回の件と直接は関係ないかもしれませんが...。
> 直接嵌っていなくても、実は同じような問題がpmbrだけでなく
> gpt(zfs)bootにもあって、gptzfsbootはキックできているのに
> gptzfsbootがZFSのbootfsを見つけられないという可能性も
> あるかもしれません。
>
> FreeBSDで使っているのが最大2Tのドライブばかりなので
> 完全スルーしていたcommitだったのですが、[1]のようなのが
> 1週間ちょっと前に入っていました。
>
> 2T超のドライブかつ、
> ・プライマリGPTヘッダ(ディスクのほぼ先頭)が壊れているか
> ・freebsd-bootパーティションが2T超の領域にまたがっていて
> その中の少なくとも1セクタがLBAの値が32bitを溢れる位置に
> 存在する
> の少なくとも一方が該当する場合に起動不能になるpmbrの不具合を
> 修正するものです。
>
> 古くから(FreeBSDに限らず)自分でOSをインストールしてきたような
> 人なら「インストール時点では」ほぼ脊髄反射で回避しているような
> 状況でないと起こらない問題ですが、過去、gpt(zfs)bootがそれまでの
> デフォルトのfreebsd-bootパーティションサイズに収まらなくなったり
> boot1.efiがそれまで既存のESPが無かった場合にFreeBSDのインストーラ
> が作成していたサイズのESPに収まらなくなったりという問題が出て
> いたので、それに嵌ってパーティションを拡大したかったのに後ろに
> 調整の利くswap等のパーティションが無かったりで泣く泣く後方に
> 作り直した途端に起動できなくなるという状況はあり得ますよね。
>
> ※私の場合、freebsd-bootはパーティションまるごと読み込まれて
> 居座る性質上異義のある方も多いとは思いますが、freebsd-bootも
> ESPも過剰なサイズを取っていますし、UEFI環境でもLegacyブートが
> 不可能でないならfreebsd-bootも構成しておいて、ファームなり
> boot1.efiなりloader.efiなりがトラブってUEFI起動できなくなった
> 状況の保険にしています。
>
>
> これが今日13系と12系にMFCされていました。[2] [3]
> が、11系にはされてないようです。 toolchainの違いで問題が
> 出ない(筈と見込まれている)のか今年9月末にはEOL [4]なので
> 何らかのセキュリティ修正のMFCが来るまで保留されてしまって
> いるのかは分かりませんが...。
> もしかすると、13系と12系で苦情が来なければstable/11にも
> MFCされるということかもしれません。
>
> [1]
>
> https://lists.freebsd.org/pipermail/dev-commits-src-main/2021-July/005744.html
>
> [2]
>
> https://lists.freebsd.org/pipermail/dev-commits-src-branches/2021-July/003726.html
>
> [3]
>
> https://lists.freebsd.org/pipermail/dev-commits-src-branches/2021-July/003737.html
>
> [4] https://www.freebsd.org/security/#sup
>
>
> On Tue, 20 Jul 2021 09:50:53 +0900
> Hideo Kuwabara <kuwa @ superconnect.or.jp> wrote:
>
> > きりやま さん、ありがとうございます。
> >
> >
> そうですね、JBODでやるのが早いと思いますが、1個壊れた時が怖いなと思い止めました。ブートローダーをストライピングに置くと故障率が倍になると言われて、移動しました。
> >
> > JBODの出来るIFの乗ってないでBIOS+GPT
> > もあったので、この方法に統一しました。
> >
> >
> >
> >
> > 2021年7月20日(火) 6:56 KIRIYAMA Kazuhiko <kiri @ truefc.org>:
> >
> > > On Mon, 19 Jul 2021 09:50:03 +0900,
> > > Hideo Kuwabara wrote:
> > > >
> > > > 返信ありがとうございます。
> > > > Root on ZFSの甘い罠でした。
> > > >
> > > > gptzfsbootを使っていて、gptのパーティションなので、4Tは大丈夫かと思っていたのですが、思い込みでした。
> > > >
> > > > gpt はあくまで mbr の上位互換があるので、ブートブロックは2T以内に置かないと、2Tを使った頃にブート出来なくなります。
> > > >
> > > > /boot を移動してから tarで解凍すると動くとか、bootコードを再書き込みすると治るとかありますが、運が良いと治るようです。
> > > >
> > > >
> > >
> ブートローダーの置いてあるファイルシステムの最後GPTの管理テーブルを書くらしいですが、BIOSが最後をレポートするときにINT13しかないので、2Tを超えた時に正しい値を返すと限らないとのことです。
> > > >
> > > > 管理テーブルが行方不明になると救いようが無いと思います。ストライピングだし無理かと思います。
> > > >
> > > > UEFIの場合にはAPIがあって大丈夫のようですね。
> > > >
> > > > 状態は、USBでブートすれば、ZFSは見えない状態でしたが、-f でimportしたら普通に見えるようになりました。
> > > >
> > > > こうなるとデータ救っておいて再インストールかと思ってます。
> > > >
> > > > あ、一つ試してない心残りがあります。
> > > > gpart recover ada0
> > > >
> > > > これをやってから再インストールすれば良かったなと心残りの状態です。
> > > >
> > > > 最終的には、プールを1個追加して/bootdirを
> > > > zfsroot にマウントしました。ここに/bootを移動してから、リンクしました。
> > > > boodir は、freebsd-zfs
> > > で1gのスライスを切りました。UEFIがないので、GPTの数バイトの管理テーブルはここに書かれると思います。
> > > > ブートローダーのプールは、zfs mirror
> > > > に一応しました。
> > > >
> > > > 現在は6TB辛い書き込んでますが、問題無くリブートできております。
> > >
> > > このあたりの話は [1] にありますが,結局 RAID カードの JBOD
> > > でディスクを 2TB に分割した状態にしてやれば FreeBSD 側で認識
> > > するので,そいつらをまとめて RAIDZ3 とかにするしかできないの
> > > ではと思います.うちでは以下のようなかんじで使ってます.
> > >
> > > root @ vm:~ # uname -a
> > > FreeBSD xx.xxxxxx.xxx 14.0-CURRENT FreeBSD 14.0-CURRENT #1
> > > main-n244894-f61e92ca5a23: Fri Feb 19 07:41:10 JST 2021
> > > admin @ xx.xxxxxx.xxx:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
> > > root @ vm:~ # zpool list
> > > NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP
> > > HEALTH ALTROOT
> > > bootpool 1.88G 320M 1.56G - - 1% 16% 1.00x
> > > ONLINE -
> > > zroot 20.2T 4.77T 15.5T - - 8% 23% 1.00x
> > > ONLINE -
> > > root @ vm:~ # zpool status
> > > pool: bootpool
> > > state: ONLINE
> > > status: Some supported features are not enabled on the pool. The pool
> can
> > > still be used, but some features are unavailable.
> > > action: Enable all features using 'zpool upgrade'. Once this is done,
> > > the pool may no longer be accessible by software that does not
> > > support
> > > the features. See zpool-features(5) for details.
> > > scan: scrub repaired 0B in 00:00:02 with 0 errors on Wed Nov 4
> 20:36:05
> > > 2020
> > > config:
> > >
> > > NAME STATE READ WRITE CKSUM
> > > bootpool ONLINE 0 0 0
> > > mirror-0 ONLINE 0 0 0
> > > mfid0p2 ONLINE 0 0 0
> > > mfid1p2 ONLINE 0 0 0
> > > mfid2p2 ONLINE 0 0 0
> > > mfid3p2 ONLINE 0 0 0
> > > mfid4p2 ONLINE 0 0 0
> > > mfid5p2 ONLINE 0 0 0
> > > mfid6p2 ONLINE 0 0 0
> > > mfid7p2 ONLINE 0 0 0
> > > mfid8p2 ONLINE 0 0 0
> > > mfid9p2 ONLINE 0 0 0
> > > mfid10p2 ONLINE 0 0 0
> > > mfid11p2 ONLINE 0 0 0
> > >
> > > errors: No known data errors
> > >
> > > pool: zroot
> > > state: ONLINE
> > > status: Some supported features are not enabled on the pool. The pool
> can
> > > still be used, but some features are unavailable.
> > > action: Enable all features using 'zpool upgrade'. Once this is done,
> > > the pool may no longer be accessible by software that does not
> > > support
> > > the features. See zpool-features(5) for details.
> > > scan: scrub repaired 0B in 01:14:07 with 0 errors on Wed Nov 4
> 21:50:23
> > > 2020
> > > config:
> > >
> > > NAME STATE READ WRITE CKSUM
> > > zroot ONLINE 0 0 0
> > > raidz3-0 ONLINE 0 0 0
> > > mfid0p4 ONLINE 0 0 0
> > > mfid1p4 ONLINE 0 0 0
> > > mfid2p4 ONLINE 0 0 0
> > > mfid3p4 ONLINE 0 0 0
> > > mfid4p4 ONLINE 0 0 0
> > > mfid5p4 ONLINE 0 0 0
> > > mfid6p4 ONLINE 0 0 0
> > > mfid7p4 ONLINE 0 0 0
> > > mfid8p4 ONLINE 0 0 0
> > > mfid9p4 ONLINE 0 0 0
> > > mfid10p4 ONLINE 0 0 0
> > > mfid11p4 ONLINE 0 0 0
> > >
> > > errors: No known data errors
> > > root @ vm:~ #
> > >
> > >
> > > [1]
> > >
> http://freebsd.1045724.x6.nabble.com/ZFS-I-O-error-blocks-larger-than-16777216-are-not-supported-tt6265032.html#none
> > >
> > > >
> > > >
> > > >
> > > > 2021年7月18日(日) 0:52 skyblue <zyxjulep @ gmail.com>:
> > > >
> > > > > 悸村です。
> > > > > 当方、たいていは ufs を使用しているので、zfs に関して詳しくな
> > > > > いのですが、ちょっと気になる点があります。
> > > > >
> > > > > On Mon, 5 Jul 2021 19:47:28 +0900
> > > > > Hideo Kuwabara <kuwa @ superconnect.or.jp> wrote:
> > > > >
> > > > > > ハードディスクは入れ替えたばかりなので、ハードの不良ではないと思います。
> > > > > > 少し前に、 installworld, installkernel で 11.4p4 で動かしていました。
> > > > >
> > > > > /usr/src/UPDATING の 'ZFS notes' はお読みになられたでしょうか。
> > > > > > ZFS notes
> > > > > > ---------
> > > > > > When upgrading the boot ZFS pool to a new version, always follow
> > > > > > these two steps:
> > > > > >
> > > > > > 1.) recompile and reinstall the ZFS boot loader and boot block
> > > > > > (this is part of "make buildworld" and "make installworld")
> > > > > >
> > > > > > 2.) update the ZFS boot block on your boot drive
> > > > > >
> > > > > > The following example updates the ZFS boot block on the first
> > > > > > partition (freebsd-boot) of a GPT partitioned drive ada0:
> > > > > > "gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
> > > > > >
> > > > > > Non-boot pools do not need these updates.
> > > > >
> > > > > 恐らく、installworld の直後あたりに、
> > > > > > "gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
> > > > > と、boot block を更新する作業が必須のように書いてあります。
> > > > >
> > > > > 我が家では追試のテストが出来ない現状です。
> > > > > こちらの勘違いでしたら、外している筈なので、ご容赦ください。
> > > > >
> > > > > なお、当該の注記は、11.4 と 13.0 では、幾らか差異があります。
> > > > >
> > > > > --- /usr/src/UPDATING 2020-06-12 20:48:06.000000000 +0900
> > > > > +++ /y2/UPDATING-fb13.0-p3 2021-04-09 09:24:00.000000000 +0900
> > > > >
> > > > > @@ -1707,9 +2268,11 @@
> > > > >
> > > > > 2.) update the ZFS boot block on your boot drive
> > > > >
> > > > > - The following example updates the ZFS boot block on the
> first
> > > > > - partition (freebsd-boot) of a GPT partitioned drive ada0:
> > > > > - "gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
> > > > > + The following example updates the ZFS boot block on the
> > > > > + freebsd-boot partition of a GPT partitioned drive ada0:
> > > > > + "gpart bootcode -p /boot/gptzfsboot -i $N ada0"
> > > > > + The value $N will typically be 1 (if booting from BIOS) or
> 2
> > > (if
> > > > > + booting from EFI).
> > > > >
> > > > > 13.0 では、いわゆる legacy BIOS と UEFI では別の指定をするように
> > > > > 記述されています。
> > > > >
> > > > >
> > > > > On Mon, 5 Jul 2021 19:47:28 +0900
> > > > > Hideo Kuwabara <kuwa @ superconnect.or.jp> wrote:
> > > > >
> > > > > > 桑原と申します。
> > > > > >
> > > > > > FreeBSD11.4 p4 にして暫くしたら突然bootしなくなりました。
> > > > > >
> > > > > >
> > > > > > Attempting Boot From Hard Drive (C:)
> > > > > > ZFS: i/o error - all block copies unavaillavle
> > > > > > ZFS: cat't read MOS of pool zroot
> > > > > > gptzfsboot: failed to mount default pool zroot
> > > > > >
> > > > > > FreeBSD/x86 boot
> > > > > >
> > > > > > 復旧のヒントを頂ければと思います。
> > > > > >
> > > > > > ハードディスクは入れ替えたばかりなので、ハードの不良ではないと思います。
> > > > > > 少し前に、 installworld, installkernel で 11.4p4 で動かしていました。
> > > > > >
> > > > > > USBでbootしても、zpool は見えませんでした。
> > > > > > そこで、 zpool import zroot しましたが はねられ 指示に従って
> > > > > > zpool import -f zroot したら zpool は正常に見えるようになり、
> > > > > > 手動でマウントすると中身は正しく見えますが、ブートできません。
> > > > > > 何かお呪いが必要でしょうか?
> > > > >
> > > > > --
> > > > > 悸村成一
> > > > > _______________________________________________
> > > > > freebsd-users-jp @ freebsd.org mailing list
> > > > > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> > > > > To unsubscribe, send any mail to "
> > > freebsd-users-jp-unsubscribe @ freebsd.org
> > > > > "
> > > > >
> > > > --
> > > >
> > > > Super Connect Network
> > > > Hideo Kuwabara
> > > > _______________________________________________
> > > > freebsd-users-jp @ freebsd.org mailing list
> > > > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> > > > To unsubscribe, send any mail to "
> > > freebsd-users-jp-unsubscribe @ freebsd.org"
> > > >
> > >
> > > ---
> > > きりやま <kiri @ truefc.org>
> > > _______________________________________________
> > > freebsd-users-jp @ freebsd.org mailing list
> > > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> > > To unsubscribe, send any mail to "
> freebsd-users-jp-unsubscribe @ freebsd.org
> > > "
> > >
> > --
> >
> > Super Connect Network
> > Hideo Kuwabara
> > _______________________________________________
> > freebsd-users-jp @ freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> > To unsubscribe, send any mail to "
> freebsd-users-jp-unsubscribe @ freebsd.org"
>
>
> --
> 青木 知明 [Tomoaki AOKI] <junchoon @ dec.sakura.ne.jp>
> _______________________________________________
> freebsd-users-jp @ freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe @ freebsd.org
> "
>
--
Super Connect Network
Hideo Kuwabara
freebsd-users-jp メーリングリストの案内