[FreeBSD-users-jp 95863] Re: installer ZFSRootでの起動設定

KAWAGUTI Ginga ginga-freebsd @ ginganet.org
2016年 7月 14日 (木) 03:48:44 UTC


川口です

In Thu, Jul 14, 2016 at 07:56:27AM +0900,
Naomichi Nonaka <nao at enuenu.org> wrote:
> >In Wed, Jul 13, 2016 at 07:05:15PM +0900,
> >Naomichi Nonaka <nao at enuenu.org> wrote:
> >>10.3Rのインストーラの動作ということであれば、BIOS起動ではBIOS用に
> >>インストールするし、UEFI起動ならUEFI用にインストールします。
> >>切り替えてどちらでもインストールできる構成を作ってはいません。
> >
> >これは,uefi起動用なら「デフォルトのpartition schemeが」
> >UEFIであり,BIOS起動であればBIOS(+GPT)である,
> >という意味ですよね.
> 
> ここも表現の問題かもしれませんが、partition schemeとしては
> UEFI/BIOSという呼び方ではなく、GPT/MBRとしたほうが誤解が
> 少ないです。

はい,誤解を生みやすい表現でした.
「partition scheme」はinstallerの
「ZFS Configuration」画面における
「Partition Scheme」の選択肢の意味でした.
( https://www.freebsd.org/doc/handbook/bsdinstall-partitioning.html の
 Figure 2.19)
たしかに,一般用語と見えてしまうと分かりにくいですね.失礼しました

改めて確認したところ,この「Partition Scheme」の
選択肢は(10.3Rでは)以下の5通りです
* GPT (BIOS)
* GPT (UEFI)
* MBR (BIOS)
* GPT + Active (BIOS)
* GPT + Lenovo Fix (BIOS)

(今回の HP Z840の事情かどうか,は切り分け出来ていませんが,
「GPT (BIOS)」ではBIOS側でUEFI disable/Legacy bootにしてもダメ,
インストールを「GPT (UEFI)」を選択し,
BIOSでUEFI enable(Legacy bootも許容),という状態で
起動OK,ということです)


> どのようなパーティション操作を行ったかが示されていないので
> 推測するしかありませんが、既にUEFIパーティションが作られている
> (Windowsがインストールされえている)HDDに、Windowsパーティションを
> 消して、EFIパーティションは残した状態でインストールしたのでは
> ありませんか?

確かに,HDD構成も本件では関係するのに明示しておりませんでした.

実際の操作はZFS rootの構成を選択し,mirrorで2HDD選択.
その結果のbsdinstallの動作ですが
% grep gpart /var/log/bsdinstall_log
DEBUG: zfs_create_diskpart: gpart destroy -F "da0"
DEBUG: zfs_create_diskpart: gpart create -s gpt "da0"
DEBUG: zfs_create_diskpart: gpart destroy -F "da0"
DEBUG: zfs_create_diskpart: gpart create -s gpt "da0"
DEBUG: zfs_create_diskpart: gpart add -a 4k -l efiboot0 -t efi -s 800k "da0"
DEBUG: zfs_create_diskpart: gpart bootcode -p "/boot/boot1.efifat" -i 1 "da0"
DEBUG: zfs_create_diskpart: gpart add -a 1m -l swap0 -t freebsd-swap -s 8589934592b "da0"
DEBUG: zfs_create_diskpart: gpart add -a 1m -l zfs0 -t freebsd-zfs "da0"

という感じの処理が走ります.(da1もおなじ)
なので,元のパーティション構成は残らないです.


ちなみにうまくいかなかった「GPT (BIOS)」での処理を
virtualboxでやってみたところ
% grep gpart /tmp/bsdinstall_log
DEBUG: zfs_create_diskpart: gpart destroy -F "ada0"
gpart: arg0 'ada0': Invalid argument
DEBUG: zfs_create_diskpart: gpart create -s gpt "ada0"
DEBUG: zfs_create_diskpart: gpart destroy -F "ada0"
DEBUG: zfs_create_diskpart: gpart create -s gpt "ada0"
DEBUG: zfs_create_diskpart: gpart add -a 4k -l gptboot0 -t freebsd-boot -s 512k "ada0"
DEBUG: zfs_create_diskpart: gpart bootcode -b "/boot/pmbr" -p "/boot/gptzfsboot" -i 1 "ada0"
DEBUG: zfs_create_diskpart: gpart add -a 1m -l zfs0 -t freebsd-zfs "ada0"

となるので,(当然ながら)pmbr, gptzfsbootは送り込まれているはず,ですね.

さらに当然ながら(?),virtualbox では起動するので
やはり機種固有の問題(当方がPC側BIOSの設定を間違えている,というパターン含む),
かもしれません.


> >本題は「インストーラでうまく起動できるように
> >インストールできない(bootコードどこ?)」です.
> 
> 気を悪くされたらすいませんが、上記は日本語として意味が取れません
> でした。

元はUEFIでなくBIOS起動をしようとしていて,
pmbrが見つからない(?)か何かで,起動できない状態だったという
話なので.
(HDDには入っていても,PCのBIOS側の問題で見つけられない可能性含む)

-- 
       ∧∧
Zzz.. (- - )⌒⌒⊇〜           川口 銀河
      ##############   ginga-freebsd at ginganet.org


freebsd-users-jp メーリングリストの案内