From owner-freebsd-users-jp@freebsd.org Mon Aug 10 04:46:32 2015 Return-Path: Delivered-To: freebsd-users-jp@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8CC0799D1E3 for ; Mon, 10 Aug 2015 04:46:32 +0000 (UTC) (envelope-from maruyama@ism.ac.jp) Received: from amogha.ism.ac.jp (amogha.ism.ac.jp [133.58.120.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 19B938B0 for ; Mon, 10 Aug 2015 04:46:31 +0000 (UTC) (envelope-from maruyama@ism.ac.jp) Received: from indra.ism.ac.jp (amogha.ism.ac.jp [133.58.120.10]) by amogha.ism.ac.jp (8.14.3/8.14.3) with ESMTP id t7A4f7XU014388; Mon, 10 Aug 2015 13:41:07 +0900 (JST) (envelope-from maruyama@ism.ac.jp) Received: (from maruyama@localhost) by indra.ism.ac.jp (8.14.9/8.14.9/Submit) id t7A4f4QP001131; Mon, 10 Aug 2015 13:41:04 +0900 (JST) (envelope-from maruyama@ism.ac.jp) X-Authentication-Warning: indra.ism.ac.jp: maruyama set sender to maruyama@ism.ac.jp using -f From: maruyama@ism.ac.jp (=?iso-2022-jp?B?GyRCNF07M0Q+PjsbKEI=?=) To: freebsd-users-jp@freebsd.org Organization: =?iso-2022-jp?B?GyRCRX03Vz90TX04JjVmPWobKEI=?= Reply-To: maruyama@ism.ac.jp Date: Mon, 10 Aug 2015 13:41:04 +0900 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Subject: [FreeBSD-users-jp 95583] =?iso-2022-jp?b?V2luZG93cyA4LnggGyRCJEgbKEIgUENCU0QbJEIkTiVeGyhC?= =?iso-2022-jp?b?GyRCJWslQSVWITwlSBsoQihnZW9tIBskQiRIGyhCIGJvb3QgY29kZSk=?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussion relevant to FreeBSD communities in Japan List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Aug 2015 04:46:32 -0000 統計数理研究所の丸山です。 Windows 8.x と PCBSDのマルチブートがうまくできなくて思案しております。こ の件、今年3月にお尋ねして、 Date: Tue, 03 Mar 2015 21:01:48 +0900 From: Takanori Watanabe 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 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 の出力に何の変化もないのがどうも納得ゆきません。何か重要なステップが抜け ているように思います。 どなたかお助けを! -------- 丸山直昌@統計数理研究所