[FreeBSD-users-jp 95213] Re: multi boot env. on GPT HDD

Katsurajima Naoto raven at katsurajima.seya.yokohama.jp
Wed Jun 4 13:57:52 UTC 2014


On Tue, 3 Jun 2014 14:51:05 +0900
KAWAGUTI Ginga <ginga-freebsd at ginganet.org> wrote:

> [やりたいこと]  
> * GPT な HDD のPC(thinkpad X240)で,
>   FreeBSD を native にインストールしたい.
>   (note PC で windows との共存を図りたい) 
> 
> [希望条件]  
> * OS本体は HDDのGPTパーティション上で動かしたい.
> * HDD単体で済めばそれにこしたことはないが,
>   USBメモリ等にブートセレクタ・ローダ等だけを入れて
>   HDDの方に入っているkernelを起こす方法でも全く問題ない.
>   - (起動後 USB メモリを抜いていい方がありがたいが刺さりっ放しも許容)
> 
> * ZFS のほうが扱いやすそうに思えるが,
>   UFS でできるならそれでもOK

現在丁度, VAIO Pro11にWindows8.1とStable-10をGPT上でデュアルブートする
環境を構築中です.

今のところ内蔵SSDにUFSでシステムを格納し, USBメモリから起動後, ドライブ
を内蔵側に切り替え, 内蔵側からカーネルブート以降の処理を行うようにしてい
ます.

この際
・USBメモリ上にはMBR形式でFreeBSDシステムを構築する
・PC側はBIOSの動作モードをUEFIではなく, 従来のBIOSと互換モードとする
ことが必要でした.

ここでbootメニューまで起動できれば, 一旦[Esc]キーを押してbootコマンド
プロンプトに抜けます.

bootコマンドプロンプトで
lsdev[Enter]
と入力すると, ブートローダから認識されているディスクデバイス(パーティション)
の一覧が表示されます. USBメモリについてはdisk0*という形で表示され,
GPTパーティションで割り当てた内蔵ディスクはdisk1p*という形で表示されます.

UFSでブートする場合, 例えばdisk1p8というパーティションにシステムが格納
され, ルートファイルシステムに"System"というラベルが付けられている場合には
次の様な一連のbootコマンドを入力することで内蔵ディスクからシステムを
起動できます.

set currdev=disk1p8[Enter]
set rootdev=disk1p8[Enter]
set module_path=/boot/kernel;/boot/modules
set vfs.root.mountfrom=/dev/ufs/System[Enter]
unload[Enter]
unset kernel[Enter]
boot[Enter]

実用的にはこの一連の処理はUSBメモリのbootスクリプトで自動化できます.
切り替え/起動用のスクリプトを添付しておきますので, 参考にしてみてください.

この方法は取り合えず動くことは確かなのですが
・起動毎にUSBメモリから起動するための特別な操作が必要になる
・FreeBSDのブートローダがUEFIに対応していないため, Windowsと切り替える
  際にBIOSの動作モードの変更が必要
という欠点があります.

ということでUSBメモリを使わずに内蔵ディスクのみでデュアルブートする方法
ですが, Windowsのブートマネージャを使う方法がエレガントな気がします.
具体的な方法は"bcdedit"というコマンド名をキーにして検索をかけると, いろいろ
出てきます. また, この際にはFreeBSDのブートローダもUEFI対応の物を使う
必要がありますが, UEFI対応ブートローダは2ヵ月ほど前にcurrentに入りました
ので(詳しくはhttps://wiki.freebsd.org/UEFI), それを持ってくれば動くんじゃ
ないかと思います.

-- 
Katsurajima "Raven" Naoto(桂島 直人)
Family Emblem: Circle and Left 3 Clove-TOMOE(丸に左三つ丁子巴)
e-mail: raven at katsurajima.jp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: alter.4th
Type: application/octet-stream
Size: 1209 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-users-jp/attachments/20140604/1ae5dc41/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: menu.rc
Type: application/octet-stream
Size: 4398 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-users-jp/attachments/20140604/1ae5dc41/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: loader.conf
Type: application/octet-stream
Size: 351 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-users-jp/attachments/20140604/1ae5dc41/attachment-0002.obj>


More information about the freebsd-users-jp mailing list