川口です

たかのさん,小野さんアドバイスありがとうございます

せっかくアドバイスいただいておきながら,なのですが
とりあえずは別解がありました(応用範囲は狭いのですが)

で,当方がやった手法:

0. PC はもとはUEFI, windows 8.1 環境.win8 partitionを
   shrinkさせて,隙間にFreeBSD install したい.
   boot の仕組みは UEFI の他に legacy(bios) support に
   bios設定を変更.secure bootもモチロンdisable.
   ただし,UEFI-win8 を壊さないようにするためには
   lagacy boot 用のMBR(/boot/pmbr が多分それ,だと思う)は
   つっこめないはず.
   → USB memory側に legacy boot 用のloader等を入れる

1. note PC 本体のHDD(ada0)にはgptでzfs rootなFreeBSDをインストール
  (ここではFreeBSD 10 stable; 
  freebsd-boot パーティションも作ってありますが,
  以下の話には多分なくて大丈夫)

2. usb memory をgptパーティションにして,
   freebsd-boot な領域を用意し,pmbr,gptzfsboot を入れる

  # gpart create -s gpt da4      # da4 == USB memory
  # gpart add -s 64k -t freebsd-boot da4
  # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da4
  (HDDに入れる時と全く同じ)

3. usb memory挿してboot
  -> USB起動で,pmbr 
  -> (USB側の)gptzfsboot 
  -> gptzfsboot は(単一HDDに閉じずに)ZFSのパーティションを探す
  -> HDD(ada0)にインストールされた ZFS 環境を発見.
  -> kernel load && boot
という順序でロードして,起動後はUSB memory引っこ抜いても大丈夫,
となります.
一通りboot loader でのオプション設定とかも大丈夫.


* grubで当初想定していたことができるらしい,という
  ブログ記事が以下にあります.
  殆ど答え書いてある,なのですが,悲しいかな
  「grub自体を良く知らない初心者」である当方には
  grub をどうインストールするのかよく分からず.(*)
  http://sntk.hatenablog.com/entry/2014/02/16/164459

  (*) 別のfreebsd8環境でgrub2 をports で入れて
  grub-install を usb に入れてみたものの,
  「単なる MBR にboot loader 単体が入る仕組みではない」grub では
  stage 2 もusbに入れなきゃいけなくて,
  とかその辺の仕組みがさっぱりわからず...
  (たぶんgrubを知っている人ならさくっとできる気がします)

In Tue, Jun 03, 2014 at 04:28:15PM +0900,
TAKANO Yuji <takac...@running-dog.net> wrote:
>   僕より詳しそうですねぇf(^^;;。

滅相もない...

>   最近は仮想マシンにインストールする人が多くなって、オンプレミス
> な環境(それはつまり『native にインストールしたい』ってことです
> が;-)に FreeBSD をインストールして X まで動かす人はめっきりと減っ
> たような気がします。

(言えない,今回はXorgまでは動かさないなんて...)

>   僕は ThinkPad Edge e145 にインストールしましたが、もーダメダメ
> 環境でマルチブートを実現しました。結局、 UEFI+GTP な環境を捨てて
> レガシー BIOS+MBR な環境にインストールしました。
> 
>   その時の顛末は以下の URL に記載しましたが、多分、ご覧になって
> いるでしょうかね;-)。
> 
> http://running-dog.net/2013/11/post_804.html

# ぼそ: s/GTP/GPT/g 

なるほど...似たような問題で,bcdedit で
「windows 側のbootセレクタ的なモノ」で解決する手法,という
感じでしょうか.

今回はとにかく,ヘタレモードでwindows側壊したくない,
ということでwindows側はpartition shrink以外触りませんでしたが
こういうやり方もあるんですね

まだUEFI怖いよ,です

>   Windows 単体であるとか FreeBSD 単体のみのインストールだと
> UEFI+GTP でもブートするんですけどねぇ。

これ,まだ把握していませんでした


>   UEFI+GTP においては 10.0-R を利用すると Windows と FreeBSD の
> 両方のインストールはできて両方ともパーティションが潰れずに生きて
> いるような気はします。ただ、bcdedit.exe を利用しても FreeBSD が
> ブートしないので、現状では FreeBSD を起動する手段が無い。と、い
> うことになります。
> 
>   それで USB からブートする案ですね。それは試してないですねぇ。
> ブート後に HDD のファイルシステムがマウントできれば良いのですね。
> なるほど。ブートするようになったら教えてください;-)。

とりあえずヘタレ解決は出来ました.

> > * GPT+FreeBSD only は ZFS root などででてくるやり方は
> >   よくやっている.
> >   gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 ada0
> > 
> >   -> ただ,GPT で他OSと共存だと pmbr つっこめない,はず
> 
>   Thinkpad X240 は UEFI でしょうかねぇ? レガシー BIOS で起動す
> るようになれば行けるかもしれないです。が、僕は確認していません。

すみません,きちんと書いていませんでしたが
標準 UEFI only, BIOS設定で UEFI only / both / legacy only 
が選べます.その他 usb hdd のboot順,secure boot 解除,なんかを
やっています

>   ただ、こないだ別のマシンに 10.0-R をインストールしようとしたら
> 10.0-R のインストーラが HDD 全体を GTP にしてしまって、Windows

:-P 

結局,shell に逃げて「手作業インストール」のままですね.
本当に手作業インストールで気にならない人しか使ってない,んでしょうね.

>   最近はマルチブートに関する情報が確かに少ないですよねぇ。

当方がそもそも「HDDつけかえてbootしてしまえ,派」だったもので.
(thinkpad X60はそれが非常に楽だった)

In Tue, Jun 03, 2014 at 08:33:31PM +0900,
"Hiroo Ono (小野寛生)" <hiroo.ono+free...@gmail.com> wrote:
> ・11-current では UEFI 対応が (amd64 には) 入ったので、
>   https://wiki.freebsd.org/UEFI
>   を参考にすれば UEFI で FreeBSD を boot できる。
> ・BIOS の助けがないので、sc ではなく vt を使わないと console が描画されない。
> ・ZFS に対応しているような記述はないので、最低 /boot は UFS じゃないといけないのかも。
> ・multiboot の機能はないので、そこはほかのツールを使う必要がある。

なるほど.ちょっと今後は少し別の手が使える,のですかね.

> 10.0R まででやるとしたら、PC-BSD が grub を使っているくらいなので、grub が一番楽なのでは
> ないかと思います。

やろうとして挫折しました...すみません

-- 
       ∧∧
Zzz.. (- - )⌒⌒⊇〜           川口 銀河
      ##############   ginga-free...@ginganet.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-unsubscr...@freebsd.org"

メールによる返信