From nobody Mon Aug 08 14:01:32 2022 X-Original-To: freebsd-users-jp@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4M1dD83bqLz4Y3s6 for ; Mon, 8 Aug 2022 14:01:44 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from www121.sakura.ne.jp (www121.sakura.ne.jp [153.125.133.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4M1dD66BByz3sqW for ; Mon, 8 Aug 2022 14:01:42 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from kalamity.joker.local (123-1-85-147.area1b.commufa.jp [123.1.85.147]) (authenticated bits=0) by www121.sakura.ne.jp (8.16.1/8.16.1/[SAKURA-WEB]/20201212) with ESMTPA id 278E1WVf013811; Mon, 8 Aug 2022 23:01:32 +0900 (JST) (envelope-from junchoon@dec.sakura.ne.jp) Date: Mon, 8 Aug 2022 23:01:32 +0900 From: Tomoaki AOKI To: freebsdusersjp@t11i.jp Cc: freebsd-users-jp@freebsd.org Subject: Re: =?UTF-8?B?6LW35YuV5pmC44Gr54m55a6a44Gu44OH44OQ44Kk44K544GM?= =?UTF-8?B?6KqN6K2Y44GV44KM44KL44G+44GnenBvb2zjga5pbXBvcnTjgpLlvoXjgaQ=?= =?UTF-8?B?5pa55rOV?= Message-Id: <20220808230132.ce496c102cdaedeffc5a8cf8@dec.sakura.ne.jp> In-Reply-To: <3ed6f837-258e-86a4-eb0d-34d2d453e49a@t11i.jp> References: <3ed6f837-258e-86a4-eb0d-34d2d453e49a@t11i.jp> Organization: Junchoon corps X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; amd64-portbld-freebsd13.0) List-Id: Discussion relevant to FreeBSD communities in Japan List-Archive: https://lists.freebsd.org/archives/freebsd-users-jp List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-users-jp@freebsd.org X-BeenThere: freebsd-users-jp@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4M1dD66BByz3sqW X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of junchoon@dec.sakura.ne.jp has no SPF policy when checking 153.125.133.21) smtp.mailfrom=junchoon@dec.sakura.ne.jp X-Spamd-Result: default: False [-1.60 / 15.00]; AUTH_NA(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; MLMMJ_DEST(0.00)[freebsd-users-jp@freebsd.org]; R_SPF_NA(0.00)[no SPF record]; RCVD_TLS_LAST(0.00)[]; R_DKIM_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:7684, ipnet:153.125.128.0/18, country:JP]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_SOME(0.00)[]; HAS_ORG_HEADER(0.00)[]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_HAS_DN(0.00)[]; DMARC_NA(0.00)[sakura.ne.jp]; TO_DN_NONE(0.00)[]; MID_RHS_MATCH_FROM(0.00)[] X-ThisMailContainsUnwantedMimeParts: N On Mon, 8 Aug 2022 22:02:39 +0900 freebsdusersjp@t11i.jp wrote: > 戸川と申します。 > > 13.1-RELEASEにおいて、起動時に特定のディスクデバイスが認識されるまで > zpoolのimportを待つ方法を探しています。 > > ---- > > 下記のようなディスク環境を使用しています。 > > ・FreeBSD 12.3-RELEASE → 13.1-RELEASEにupgrade > ・Root FS (/usr や /var を含まない): > NVMe SSD上のパーティション(UFS) > ・/usr, /var: > HDD 4台(/dev/ada0 - /dev/ada3)で構成されるRAIDZのpool上にあるZFS > > ---- > > 12.3-RELEASEを動作させている時点で、既に > 「起動時に /etc/rc.d/zfs を実行していると思しき時点で、 > まだ /dev/ada0 等のディスクデバイスが認識されておらず、 > /usr のマウントに失敗して起動が停止する」 > という現象が発生していました。 > (このRoot FSは、NVMe SSDの前はUSBメモリ上に構築しており、 > 速いNVMe SSDに移した際にこの現象が発生しました) > > この時は、下記のページを参考に、/etc/fstab に > /usr のマウント指定を書き足す、というworkaroundで解決しました。 > https://lists.freebsd.org/pipermail/freebsd-questions/2013-July/252121.html > > (このあたりの対処は以下のページに書きました。 > http://toga.vegalta.org/wordpress/2022/01/09/1097 ) > > ---- > > 13.1-RELEASEにupgradeしたところ、起動時のzpoolのimportが > /etc/rc.d/zpool から行われるようになったようで、 > このスクリプトが実行される時点で /dev/ada0 等が認識されていないと > importに失敗するようです。 > > 試しにこのスクリプトを編集し、/dev/ada3 が認識されるまで > sleepするようにしたところ、zpoolのimportに成功しました。 > > FreeBSD標準で同じような機能が無いかと思い、お伺いしました。 > > > よろしくお願いいたします。 テストしてはいませんが思いつくのは、ダミーのスクリプトを /etc/rc.d/以下に置くことでしょうか。 具体的な書き方の例は`man rc`で見て頂くのと/etc/rc.d/に既にある スクリプトを見て頂くとして、  # BEFORE: zpool を含むのがポイントで、実処理としては必要なデバイスが生えて いなければループして生えたら脱出、という処理ができる必要が あるでしょう。 とはいうものの、/usrや/varがroot partitionに無いのは 現実には破滅的な構成です。 /usr/以下については  local,ports,src,obj(,home) /var/以下については  cache,db,games,log,mail,tmp 以外はroot partitionに置くべきでしょう。  ※/var/以下は、できればtmp以外はroot on ZFSで   データセットを分ける場合を除いて分けたくない   ところです。 # 今のところ比較的遅いタイミングで呼ばれるものばかりの # ようですが、`grep -r "/usr/bin" /rtc/rc.d/`とか # `grep -r "/usr/sbin" /rtc/rc.d/`とか実行してみると # それなりの数ヒットしますので、誰かが何かの間違いで # ごく初期の段階で走るスクリプトで/usr/bin/や/usr/sbin/に # あるコマンドを呼び出す変更をコミットしてしまうと # 起動不能に陥る恐れがありますし。 -- 青木 知明 [Tomoaki AOKI]