From nobody Sat Sep 24 09:23:11 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 4MZNqH6fVsz4cvnZ for ; Sat, 24 Sep 2022 09:23:23 +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 4MZNqG1M1zz3nb7 for ; Sat, 24 Sep 2022 09:23:21 +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 28O9NBxT083784; Sat, 24 Sep 2022 18:23:11 +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 28O9NBE2083783; Sat, 24 Sep 2022 18:23:11 +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: rEFInd - a UEFI boot selector Organization: =?iso-2022-jp?B?GyRCNF07M0Q+PjskTjtkRSo7SE1RJSIlSSVsJTkbKEI=?= Reply-To: masa@amogha.jp Date: Sat, 24 Sep 2022 18:23:11 +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: 4MZNqG1M1zz3nb7 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.78 / 15.00]; AUTH_NA(1.00)[]; NEURAL_HAM_LONG(-1.00)[-0.997]; NEURAL_HAM_MEDIUM(-1.00)[-0.996]; NEURAL_HAM_SHORT(-0.99)[-0.991]; 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 年金生活者 丸山です。 Subject を変えて、私が抱えている問題を説明し、お知恵をお借りしたいと思い ます。絶滅危惧種の legacy BIOSのみのマシンのことは無視して、話を UEFI マ シンに限定したいと思います。 困っていることを手短に書くと https://efi.akeo.ie/downloads/efifs-1.9/x64/zfs_x64.efi を rEFInd のドライバとして使っても動かない という事です。ufs2_x64.efi の方は期待通りに動くのですが、、、。 以下ちょっと長くなりますが、誰にでもわかるように詳しく説明したいと思いま す。 欲しいのは gpt スキーム上にある複数の FreeBSD を選択的に起動する仕組みで す。いわゆる multi-bootの話の一環です。世の中には一つのディスク上に Windows, Linux, Ubunstu, Debian など、何種類ものOSを載せて、「どれでも起 動できる」と威張っている人がいますが、ここで話題にするのはそれとはちょっ と違っています。「複数の FreeBSD を選択的に起動する」というのは、複数の OSを、各OS一個ずつのパーティションがある中から選択的に起動することに比べ て意外なほど面倒なのです。 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207940 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229770 などを見ると、野中さん、青木さん、Masachika ISHIZUKAさん等が長い年月に渡っ てこの問題に関心をお持ちのことがわかります。ですが、これら諸先輩方のよう にboot1.efi や loader.efi にパッチを当てるやり方は、私の手に余ります。と ても真似はできません。 私は長い間この問題への対処として仕方なく gnu grub2 を使っていましたが、 本当のところこの方法は気に入りません。その理由は別途説明したいと思います が、最近試しているrEFIndを使う方法について、わかったことを以下に少し説明 したいと思います。rEFIndは FreeBSD外のソフトウェアなので恐縮ですが、、、。 ESP の/EFI/BOOT/REFIND.CONF に menuentry "loader.efi of FreeBSD13.1" { loader /EFI/Boot/loader.efi icon /EFI/Boot/ICONS/os_freebsd.png   options "rootdev=zfs:fbsd131/ROOT/default:" } のように options を指定するやり方は、先日のメールに書いた通り、何故か成 功しませんでした。 https://www.ish.org/blog/?p=2271 には P.P.S. refind 0.12.0が不調な原因が判りました。optionsでloader.efiに parameterを渡す際に、最初のパラメータが正常に渡らないようです。optionsの 2番目以降のパラメータは正常に渡りますので、optionsの最初にdummyのパラメー タを追加すれば一応0.12.0も動きます。 という話が書いてありますが、   options "rootdev=zfs:fbsd131/ROOT/default: rootdev=zfs:fbsd131/ROOT/default:" と書いてもダメでした。 次に試したのは https://www.starlink.jp/freebsd/boot-from-another-fbsd-partition/ にある volume を指定する方法です。私がやった実験の状況は以下の通りです。 % gpart show ada0 => 34 1953525101 ada0 GPT (932G) 34 1600 1 bios-boot (800K) 1634 414 2 freebsd-boot (207K) 2048 204800 3 efi (100M) 206848 6291456 4 freebsd-ufs (3.0G) 6498304 6291456 5 freebsd-zfs (3.0G) 12789760 6291456 6 freebsd-ufs (3.0G) (以下略) となっている状況で、 REFIND.CONF には menuentry "ufs2 driver test ada0p6" { volume 521461b8-3b05-11ed-9405-3417eb9e0b90 loader /boot/loader.efi icon /boot/images/freebsd-logo-rev.png } というエントリを作っておきます。ここに volume の行にある長い数字の羅列は ada0p6 の rawuuid で、gpart list で調べることができます。 14. Name: ada0p6 Mediasize: 3221225472 (3.0G) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r1w1e1 efimedia: HD(6,GPT,521461b8-3b05-11ed-9405-3417eb9e0b90,0xc32800,0x600000) rawuuid: 521461b8-3b05-11ed-9405-3417eb9e0b90 rawtype: 516e7cb6-6ecf-11d6-8ff8-00022d09712b label: (null) length: 3221225472 offset: 6548357120 type: freebsd-ufs index: 6 end: 19081215 start: 12789760 更に、 ESP に /EFI/BOOT/drivers というディレクトリを作って、 https://efi.akeo.ie/downloads/efifs-1.9/x64/ から取ってきた ufs2_x64.efi を入れておきます。これで rEFInd を起動して選 択メニューから "ufs2 driver test ada0p6" を選びますと、ちゃんと「Welcome to FreeBSD」が表示されます。そこで メニューエントリ3を選んで OK show とやると、 currdev, loaddev ともに値が disk2p6: になっています(外付け USB disk を2台接続しているために disk2がada0)。rootdev はありません。こ の結果に私は小躍りしました。rEFInd は ada0p6 の /boot/loader.efi を起動 しているわけで、OK bootとやるか、或いは「Welcome to FreeBSD」画面をその ままタイムアウトさせると ada0p6 からカーネルをロードしてスタートさせます。 ada0p4にある /boot/loadef.efi が ada0p6にあるカーネルをロードするわけで ないのです。これにより、バージョンが異なる FreeBSD をいくつか持っている gptスキームのディスクで、loader.efi の挙動も含めて各バージョンの動きを再 現できることになります。 しかし喜んだのもつかの間。 zfs のパーティションで同じことをしようと同じ サイトから zfs_x64.efi を持ってきて /EFI/BOOT/drivers に入れてみましたが、 成功しませんでした。 困った。 -------- 丸山 直昌 まるやま なおまさ メールアドレス: masa@amogha.jp