[FreeBSD-users-jp 95586] Re: Windows 8.x と PCBSDのマルチブート(geom と boot code)

Shin-ya Murakami murashin @ gfd-dennou.org
2015年 8月 10日 (月) 05:15:58 UTC


村上真也です。

私はLet's Note SX4にWindowsを残したままFreeBSDをインストールしました。
その記録は http://d.hatena.ne.jp/msll/20150527/1432708323 にあります。
# UEFI関係の手順はtakawataさんのと同じです

>>   そして、EFIパーティションをmountして
>>   /usr/obj/usr/src/sys/boot/amd64/boot1.efi/boot1.efiを
>>   ${EFIMOUNT}/EFI/FreeBSD/Boot/bootx64.efi
>>   にコピーします
> 
> ここは /boot/boot1.efi ってものが最近の distribution にはあるので、自分
> でコンパイルする必要はないし、また上記の手順で PCBSDをインストールした場
> 合には /boot/efi/EFI/Boot/bootx64.efi があるので、これをこのまま使うべき
> と判断しました。

この判断が疑わしいのではないかと思いました。

私がやったのは、インストール中にシェルを起動して、
USBメモリにboot1.efiをコピーしておいて、それをWindowsから書いてやる、
ということでした。

# マウントされているならPCBSD側から書いてやることもできそうですね。

> で、この /EFI/Boot/bootx64.efi は /boot/grub/x86_64-efi/core.efiと完全に
> 同じものになっています。

私はFreeBSDでgrubは使ってないのでよくわからないのですが、
/boot/efi/EFI/Boot/bootx64.efiはブートセレクタの
アプリケーションなのかなと思いました。

FreeBSDのboot1.efiは別途インストールする必要があるのではないか?
というのが私の意見です。

もしお時間があればお試し下さい。

From: maruyama @ ism.ac.jp (丸山直昌)
Date: Mon, 10 Aug 2015 13:41:04 +0900

> 統計数理研究所の丸山です。
> 
> Windows 8.x と PCBSDのマルチブートがうまくできなくて思案しております。こ
> の件、今年3月にお尋ねして、
> 
> Date: Tue, 03 Mar 2015 21:01:48 +0900
> From: Takanori Watanabe <takawata @ init-main.com>
> Subject: [FreeBSD-users-jp 95488] Re: geom と boot code
> 
>>ここにも前に投稿しましたけど、その内容ちょっとここに書きました。
>>http://qiita.com/takawata19/items/3d1fb96cfde4f1626e3c
> 
> というお答えを頂いきましたが、最近やっと実験できる環境ができて、やってみ
> ましたが、うまくできません。
> 
> ちょっと長くなりますが、状況を以下に説明します。
> 
> 使ったマシンは
> 
> 東芝 dynabook N51
> 型番: PN51NGP-NHA
> Model No: PSKVLN-00300F
> 
> というノートパソコンで、工場出荷時には当然 UEFIブートの設定がされて
> Windows8.1が動きました。PCBSDのインストーラーが UEFIブートには対応してい
> ないため、起動設定をCSMブート(昔流のBIOSインターフェースを前提とする起動
> 方法)に一時的に変更する必要がありますが、そのための設定画面を表示させる
> 方法は
> 
> http://dynabook.com/assistpc/faq/pcdata2/015740.htm
> 
> に書いてありますのでここでは省略します。
> 
> インストール作業にはPCBSD10.2-RC1-08-04-2015-x64-DVD-USB.isoを使いました。
> まず出荷時のdynabookのディスクの状態ですが、
> 
> # gpart show ada0
> =>       34  976773101  ada0  GPT  (466G)
>          34       2014        - free -  (1.0M)
>        2048    2097152     1  !de94bba4-06d1-4d40-a16a-bfd50179d6ac  (1.0G)
>     2099200     204800     2  efi  (100M)
>     2304000     262144     3  ms-reserved  (128M)
>     2566144  836249600     4  ms-basic-data  (399G)
>   838815744  104857600     5  ms-basic-data  (50G)
>   943673344   33098475     6  !de94bba4-06d1-4d40-a16a-bfd50179d6ac  (16G)
>   976771819       1316        - free -  (658K)
> 
> という状態でした。(これはインストーラーの emergency shell を起動して
> gpart コマンドで見ました。)
> 
> Windows8.1のディスク管理機能を使って 399Gの Windows8.1領域を縮小します。
> その方法は例えばPCBSDのハンドブック
> (http://download.pcbsd.org/iso/10.1-RELEASE/amd64/docs/html/pcbsd.html)
> の2.3節あたりに書いてあるので、ここでは省略します。ともかくPCBSDをインス
> トールするための空きを作ります。
> 
> =>       34  976773101  ada0  GPT  (466G)
>          34       2014        - free -  (1.0M)
>        2048    2097152     1  !de94bba4-06d1-4d40-a16a-bfd50179d6ac  (1.0G)
>     2099200     204800     2  efi  (100M)
>     2304000     262144     3  ms-reserved  (128M)
>     2566144  416419840     4  ms-basic-data  (199G)
>   418985984  419829760        - free -  (200G)
>   838815744  104857600     5  ms-basic-data  (50G)
>   943673344   33098475     6  !de94bba4-06d1-4d40-a16a-bfd50179d6ac  (16G)
>   976771819       1316        - free -  (658K)
> 
> となり、この状態で、インストール作業を行います。「UEFI起動」の指定をして
> インストールするのですが、現在PCBSD10.2-RC1-08-04-2015-x64-DVD-USB.isoが
> デバッグ中で、ちょっとおかしな挙動もあり、ころころ修正されるので、ここで
> はインストール方法の詳細は省略します。ともかくインストール作業を行って
> 
> =>       34  976773101  ada0  GPT  (466G)
>          34       2014        - free -  (1.0M)
>        2048    2097152     1  bios-boot  (1.0G)
>     2099200     204800     2  efi  (100M)
>     2304000     262144     3  ms-reserved  (128M)
>     2566144  416419840     4  ms-basic-data  (199G)
>   418985984  415498240     7  freebsd-zfs  (198G)
>   834484224    4096000     8  freebsd-swap  (2.0G)
>   838580224     235520        - free -  (115M)
>   838815744  104857600     5  ms-basic-data  (50G)
>   943673344   33098475     6  !de94bba4-06d1-4d40-a16a-bfd50179d6ac  (16G)
>   976771819       1316        - free -  (658K)
> 
> となります。空き領域に p7(freebsd-zfs, 198G)とp8(freebsd-swap, 2G)が作ら
> れます。またp1の名称がインストール作業前と変わっていることに注意してくだ
> さい(多分grub がインストールされたものと思います)。
> 
> これで、一応 Windows8.1 と PCBSD9.2(RC1 2015/8/4)の両方がディスクに入り、
> どちでも起動できるようになるのですが、面倒なことにこれだけでは、UEFI起動
> モードではWindows8.1が立ち上がり、CSMブートモードではPCBSDが立ち上がる、
> という状態になります。つまりWIndows8.1と PCBSDを切り替えるのにrebootの他
> にBIOS設定変更によるブートモードの変更も必要ということになります。
> 
> で、ここからがこの記事の本題、 UFEIブートメニューの変更です。
> 
> From: Takanori Watanabe <takawata @ init-main.com>
> Subject: [FreeBSD-users-jp 95488] Re: geom と boot code
> 
>>ここにも前に投稿しましたけど、その内容ちょっとここに書きました。
>>http://qiita.com/takawata19/items/3d1fb96cfde4f1626e3c
> 
> に書いてことを試みたのですが、うまくゆきません。
> 
> まず、
> 
> [Windows8.1上]
>   mountvol e: /S
> 
> はできます。これは
> 
> [PCBSD上]
>   mount_msdosfs /dev/ada0p2 (マウントポイント)
> 
> と同じことで、上記のPCBSDインストール直後の状態では
> 
> % glabel status
>                         Name  Status  Components
> gpt/Basic%20data%20partition     N/A  ada0p1
>                 label/efibsd     N/A  ada0p2
>             ntfs/TI31362500C     N/A  ada0p4
>                    ntfs/Data     N/A  ada0p5
>                ntfs/Recovery     N/A  ada0p6
>                  label/swap0     N/A  ada0p8
> 
> で /etc/fstab に
> 
> /dev/label/efibsd  /boot/efi msdosfs rw 0 0
> 
> という行があるので、つまりは /boot/efi にマウントされています。
> で中身はどうなっているかというと
> 
> [pcadmin @ surya] ~% ls -alg /boot/efi
> total 5
> drwxr-xr-x   1 root  wheel  1024  1月  1  1980 .
> drwxr-xr-x  10 root  wheel    54  8月  9 19:24 ..
> drwxr-xr-x   1 root  wheel  1024 12月 26  2014 EFI
> [pcadmin @ surya] ~% ls -alg /boot/efi/EFI
> total 5
> drwxr-xr-x  1 root  wheel  1024 12月 26  2014 .
> drwxr-xr-x  1 root  wheel  1024  1月  1  1980 ..
> drwxr-xr-x  1 root  wheel  1024 12月 26  2014 Boot
> drwxr-xr-x  1 root  wheel  1024 12月 26  2014 Microsoft
> drwxr-xr-x  1 root  wheel  1024 12月 26  2014 Toshiba
> [pcadmin @ surya] ~% ls -alg /boot/efi/EFI/Boot
> total 194
> drwxr-xr-x  1 root  wheel    1024 12月 26  2014 .
> drwxr-xr-x  1 root  wheel    1024 12月 26  2014 ..
> -rwxr-xr-x  1 root  wheel  196608  8月  7 23:20 bootx64.efi
> 
> で、この /EFI/Boot/bootx64.efi は /boot/grub/x86_64-efi/core.efiと完全に
> 同じものになっています。
> 
> [pcadmin @ surya] ~% ls -alg /boot/grub/x86_64-efi/ |grep 196608
> -rw-r--r--  1 root  wheel  196608  8月  8 08:20 core.efi
> -rw-r--r--  1 root  wheel  196608  8月  8 08:20 grub.efi
> [pcadmin @ surya] ~% diff /boot/efi/EFI/Boot/bootx64.efi /boot/grub/x86_64-efi/core.efi
> [pcadmin @ surya] ~%
> 
> で、Takanori Watanabe さんの上記
> http://qiita.com/takawata19/items/3d1fb96cfde4f1626e3c
> に沿って話を進めると、
> 
>>   そして、EFIパーティションをmountして
>>   /usr/obj/usr/src/sys/boot/amd64/boot1.efi/boot1.efiを
>>   ${EFIMOUNT}/EFI/FreeBSD/Boot/bootx64.efi
>>   にコピーします
> 
> ここは /boot/boot1.efi ってものが最近の distribution にはあるので、自分
> でコンパイルする必要はないし、また上記の手順で PCBSDをインストールした場
> 合には /boot/efi/EFI/Boot/bootx64.efi があるので、これをこのまま使うべき
> と判断しました。
> 
>>そして、Windowsでbcdedit /copy {bootmgr} /d "FreeBSD"
>>   として、得られたUUIDをメモして
>>
>>   bcdedit /set {得られたUUID} path \EFI\FreeBSD\Boot\bootx64.efi
>>   とします。
>>
>>   そのあと
>>   bcdedit /set {fwbootmgr} displayorder {得られたUUID} /addlast
>>   とします。
>>   それで、リブートしてF12を押すとブートメニューにFreeBSDという
>>   アイテムが出てきます。
>>   これを選ぶとHDDのEFI上のboot1からFreeBSDがあがるはずです。
> 
> C:\Windows\system32>bcdedit /copy {bootmgr} /d "PCBSD"
> エントリは {29e071aa-3dee-11e5-826b-d07e35754deb} に正常にコピーされまし
> た。
> 
> C:\Windows\system32>bcdedit /set {29e071aa-3dee-11e5-826b-d07e35754deb} path \EFI\Boot\bootx64.efi
> この操作を正しく終了しました。
> 
> C:\Windows\system32>bcdedit /set {fwbootmgr} displayorder {29e071aa-3dee-11e5-86b-d07e35754deb} /addlast
> この操作を正しく終了しました。
> 
> となりましたが、何の変化もありませんでした。 /Boot/bootx64.efi を
> /FreeBSD/bootx64.efi や /FreeBSD/Boot/bootx64.efi に変えたりして色々実験
> しましたが、すべてうまくゆきません。だいたい
> 
> bcdedit /enum
> 
> の出力に何の変化もないのがどうも納得ゆきません。何か重要なステップが抜け
> ているように思います。
> 
> どなたかお助けを!
> 
> --------
> 丸山直昌@統計数理研究所
> _______________________________________________
> 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-unsubscribe @ freebsd.org"
----
Shin-ya Murakami
email: murashin @ gfd-dennou.org
WWW: http://www.gfd-dennou.org/member/murashin/


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