From nobody Wed Aug 31 05:39:02 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 4MHXzk6DqFz4bCYT for ; Wed, 31 Aug 2022 05:39:14 +0000 (UTC) (envelope-from amogha@www1084.sakura.ne.jp) Received: from www1084.sakura.ne.jp (www1084.sakura.ne.jp [219.94.129.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4MHXzh5DGhz3bQ4 for ; Wed, 31 Aug 2022 05:39:11 +0000 (UTC) (envelope-from amogha@www1084.sakura.ne.jp) Received: from www1084.sakura.ne.jp (localhost [127.0.0.1]) by www1084.sakura.ne.jp (8.15.2/8.15.2) with ESMTP id 27V5d2ve057111; Wed, 31 Aug 2022 14:39:02 +0900 (JST) (envelope-from amogha@www1084.sakura.ne.jp) Received: (from amogha@localhost) by www1084.sakura.ne.jp (8.15.2/8.15.2/Submit) id 27V5d2ch057110; Wed, 31 Aug 2022 14:39:02 +0900 (JST) (envelope-from amogha) X-Mailer: emacs 24.5.1 (via feedmail 11-beta-1 I) From: masa@amogha.jp (=?iso-2022-jp?B?GyRCNF07M0Q+PjsbKEI=?=) To: freebsd-users-jp@freebsd.org Subject: loader.efi of 13.1 Organization: =?iso-2022-jp?B?GyRCNF07M0Q+PjskTjtkRSo7SE1RJSIlSSVsJTkbKEI=?= Reply-To: masa@amogha.jp Date: Wed, 31 Aug 2022 14:39:02 +0900 Message-ID: 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=iso-2022-jp X-Rspamd-Queue-Id: 4MHXzh5DGhz3bQ4 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of amogha@www1084.sakura.ne.jp has no SPF policy when checking 219.94.129.94) smtp.mailfrom=amogha@www1084.sakura.ne.jp X-Spamd-Result: default: False [-1.68 / 15.00]; AUTH_NA(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999]; NEURAL_HAM_SHORT(-1.00)[-0.999]; NEURAL_HAM_LONG(-0.88)[-0.880]; FORGED_SENDER(0.30)[masa@amogha.jp,amogha@www1084.sakura.ne.jp]; MIME_GOOD(-0.10)[text/plain]; FROM_NO_DN(0.00)[]; MLMMJ_DEST(0.00)[freebsd-users-jp@freebsd.org]; HAS_REPLYTO(0.00)[masa@amogha.jp]; R_DKIM_NA(0.00)[]; R_SPF_NA(0.00)[no SPF record]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[amogha.jp]; HAS_ORG_HEADER(0.00)[]; ASN(0.00)[asn:9371, ipnet:219.94.128.0/17, country:JP]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; REPLYTO_DN_EQ_FROM_DN(0.00)[]; TO_DN_NONE(0.00)[]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FROM_NEQ_ENVFROM(0.00)[masa@amogha.jp,amogha@www1084.sakura.ne.jp] X-ThisMailContainsUnwantedMimeParts: N 丸山@年金生活者 です。 そろそろ古い FreeBSDを卒業して、13.1あたりに移住しようと思い、インストー ルを試してみたのですが、loader.efi の使い方で躓いていて、思うようなレ イアウトで内臓ディスクにインストールできずにいます。私が直面している状 況を誰にでも実験可能な形で説明するために、次のような「練習問題」を考え てみます。 FreeBSD 13.1 の loader.efi の使い方の練習問題 既にどこかにインストールしてある13.1のパーティション(amd, zfs on UEFIマシン)を別のディスクにコピーして boot可能にするにはどうしたら良 いか。 具体的には以下のような手順でやってみました。 1. FreeBSD-13.1-RELEASE-amd64-dvd1.iso をdd でコピーした外付け USB ディ スク(/dev/da0、つまりは「イントールメディア」)で起動し、中身が空の USB ディスク(/dev/da1)に FreeBSD13.1amdを zfs でインストールする。 これは簡単で、 # gpart show da1 => 40 78140080 da1 GPT (37G) 40 532480 1 efi (260M) 532520 1024 2 freebsd-boot (512K) 533544 984 - free - (492K) 534528 4194304 3 freebsd-swap (2.0G) 4728832 73410560 4 freebsd-zfs (35G) 78139392 728 - free - (364K) のようになる。この USB ディスクを以下「インストール済みディスク」と呼 ぶことにします。 2. インストール済みディスクのみを外付けデバイスとして接続してパソコン を起動すると、勿論起動する。/dev/da0 となる。 3. 内臓ディスク(ada0, gptスキーム)の空きパーティション(私の場合 ada0p13)を type freebsd-zfs にして、そこにda0p4のzrootをコピーする。 zpool create NEWPOOLNAME ada0p13 zfs send -R zroot@SNAPSHOT | zfs recv -F NEWPOOLNAME 4. (ada0からのbootの準備) zpool set bootfs=NEWPOOLNAME/ROOT/default NEWPOOLNAME (安全のため) ada0 の efi パーティション(私の場合 ada0p4)の EFI/Boot/bootx64.efi を退避 /boot/loader.efi を ada0 の efi パーティションの EFI/Boot/bootx64.efi にコピー zpool export NEWPOOLNAME halt -p 以上の準備の元、すべての外付けデバイスを外して、内臓ディスクから起動してみます。 Consoles: EFI console Reading loader vars from /efi/freebsd/loadef.env Setting currdev disk0p4: FreeBSD/amd64 EFI loader, Revision 1.1 Command line arguments: Image base: 0xd0998000 EFI version: 2.31 等と表示されます。続いてさらに画面半分ほどのメッセージが表示された後、 ERROR: cannot open /boot/lua/loader.lua: no such file or directory. Type '?' for a list of commands,'help' for more detailed help. OK となって止まります。ここで OK lsdev とやると ada0p12(古い FreeBSDで作った zfs) と ada0p13(今回作った FreeBSD13.1の zfs) にある zfs のプール名は zfs devices として正しく表 示されます。ここで Google 検索で見つけた https://www.ish.org/blog/?p=968 を手がかりに以下のようにしてみました。 OK set currdev=zfs:NEWPOOLNAME/ROOT/default: OK unload OK boot すると、何やら起動作業と思われる動作が進行し、画面には色々表示されるの ですが、 mountroot> で止まってしまいます。不思議なことに、 mountroot> プロンプトの少し前に 以下のように表示されているのに mount できていません。 Loader variables: vfs.root.mountfrom=zfs:NEWPOOLNAME/default ここの最後にコロン(:)が無いのも不思議です。仕方ないので mountroot> zfs:NEWPOOLNAME/ROOT/default: とやってみますが、うまくゆきません。お手上げです。 なお、上の OK プロンプトのところで上記 ish.org のブログに書いてある free-module-options や start は unknown commandとなるので、 12.x と 13.1 では loader.efi の仕様が違っ ているようです。 どなたかお助けください。 -------- 丸山 直昌 まるやま なおまさ メールアドレス: masa@amogha.jp