From owner-freebsd-users-jp@freebsd.org Tue Aug 9 11:28:50 2016 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 5C59FBB334D for ; Tue, 9 Aug 2016 11:28:50 +0000 (UTC) (envelope-from maruyama@ism.ac.jp) Received: from amogha.ism.ac.jp (amogha.ism.ac.jp [133.58.120.10]) by mx1.freebsd.org (Postfix) with ESMTP id C6F071ACC for ; Tue, 9 Aug 2016 11:28:49 +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.5/8.14.5) with ESMTP id u79BSlAE012863; Tue, 9 Aug 2016 20:28:47 +0900 (JST) (envelope-from maruyama@ism.ac.jp) Received: (from maruyama@localhost) by indra.ism.ac.jp (8.15.2/8.15.2/Submit) id u79BSl0r060832; Tue, 9 Aug 2016 20:28:47 +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: Tue, 09 Aug 2016 20:28:47 +0900 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Subject: [FreeBSD-users-jp 95917] =?iso-2022-jp?b?RHVhbCBib290IG9uIGR5bmFib29rTjUxKBskQiQ9JE4bKEIx?= =?iso-2022-jp?b?IC0tIEJPT1RYNjQuRUZJKQ==?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.22 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: Tue, 09 Aug 2016 11:28:50 -0000 統計数理研究所の丸山です。 Toshiba dynabookN51 上での Windows8.1 と PC-BSDの dual boot。 まずPC-BSD10.3のインストーラーが作成する BOOTX64.EFI が適切なものなのか どうか。 この点について昨年このMLでは多くの方から疑問が呈されましたが、今回の私の 経験から、この点ではPC-BSD10.3は問題ない、と断言できます。以下今の私の dynabookN51の状況を書きます。 内臓diskは500G、 Windows8.1 プリインストール状態では GPTスキームになって いて、それを Windows の領域縮小ユーティリティなどを使って、結局のとろ現 在は次のような状態になっています。 [maruyama@surya{41}] ~% gpart show ada0 => 34 976773101 ada0 GPT (466G) 34 2014 - free - (1.0M) 2048 2048 1 bios-boot (1.0M) 4096 2095104 - free - (1.0G) 2099200 204800 2 efi (100M) 2304000 262144 3 ms-reserved (128M) 2566144 164506897 4 ms-basic-data (78G) 167073041 213909504 7 freebsd-zfs (102G) 380982545 7 - free - (3.5K) 380982552 209577984 8 freebsd-zfs (100G) 590560536 4096000 9 freebsd-swap (2.0G) 594656536 10485760 10 freebsd-ufs (5.0G) 605142296 83886080 11 freebsd-ufs (40G) 689028376 10485760 12 freebsd-ufs (5.0G) 699514136 83886080 13 freebsd-ufs (40G) 783400216 55416825 14 freebsd-ufs (26G) 838817041 104857600 5 ms-basic-data (50G) 943674641 33098480 6 !de94bba4-06d1-4d40-a16a-bfd50179d6ac (16G) 976773121 14 - free - (7.0K) 工場出荷時にこの disk は => 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) という状態で、一度Recovery diskを使ってまるまるWindowsを入れ直して、さら に PC-BSD10.3のインストール作業をなるなど、色々やった挙句現状は上のよう な状態です。途中経過の詳細は省略しますが、ともかく現状ada0p1には gnu grub が、ada0p4には Windows8.1本体、ada0p7 にはPC-BSD10.3が入っています。 ada0p2 はご存知のとおり FAT16 の UEFI 用領域で、 [maruyama@surya{46}] /boot/efi% ls -alg total 5 drwxr-xr-x 1 root wheel 1024 Jan 1 1980 . drwxr-xr-x 10 root wheel 56 Aug 10 02:55 .. drwxr-xr-x 1 root wheel 1024 Aug 22 2015 EFI [maruyama@surya{47}] /boot/efi% ls -alg EFI total 5 drwxr-xr-x 1 root wheel 1024 Aug 22 2015 . drwxr-xr-x 1 root wheel 1024 Jan 1 1980 .. drwxr-xr-x 1 root wheel 1024 May 26 20:07 BOOT drwxr-xr-x 1 root wheel 1024 Aug 22 2015 Microsoft drwxr-xr-x 1 root wheel 1024 Aug 22 2015 Toshiba [maruyama@surya{48}] /boot/efi% ls -alg EFI/BOOT total 194 drwxr-xr-x 1 root wheel 1024 May 26 20:07 . drwxr-xr-x 1 root wheel 1024 Aug 22 2015 .. -rwxr-xr-x 1 root wheel 196608 Aug 1 07:56 BOOTX64.EFI EFI/Microsoft と EFI/Toshiba はプリインストールで元々あるもの、 EFI/BOOT/BOOTX64.EFI は PC-BSD10.3インストーラーが grub-install --efi-directory=/boot/efi --removable --target=x86_64-efi --force /dev/ada0 で作成したものです。 grub のバージョンは % pkg info |grep -i grub grub2-efi-2.02_15 Multiboot EFI boot loader grub2-pcbsd-2.02q_8 Multiboot boot loader です。 grub-install は同時に ada0p1 の bios-boot partition にも何か書き 込みます。(bios-boot partition がないと、ここでエラーになることからわか る)。 EFI ブート環境設定を確認するため、Windows を立ち上げて bcdedit /enum all の出力をこのメールの末尾に付けます。 この状態で dynabookN51 の電源を入れると(Windows の 高速起動モードは無効に してあります) 1. 「Windowsブートマネージャー」と題するラインモードのメニューが現れ、 (Windows8.1 を選択すればWindows8.1が立ち上がるが) ESCキーを押すと 2. 画面が一度消えて、その後一瞬同じ「Windowsブートマネージャー」が表示さ れるがすぐに消えて 3. 「 >> Start PXE over IPv6 」と表示されて、十数秒でタイムアウト 4. 「 >> Start PXE over IPv4 」と表示されて、十数秒でタイムアウト 5. 何故かもう一度「 >> Start PXE over IPv4 」と表示されて、十数秒でタイ ムアウト 6. gnu grub が立ち上がり、grubが正常に動いてPC-BSDが起動できる という経過をたどります。ネットワークの UTPケーブルを抜いた状態で電源を入 れると 3,4,5 は飛ばして 6に入ります。 この状況から、PC-BSD10.3のインストール過程で grub-install が作成する BOOTX64.EFI は適切なものであると断言致します。 内臓ディスクではなく、外付け USB デバイスにPC-BSD10.3をインストールする 実験をしてみても、例えば8GB USBメモリスティックでやると % gpart show da1 => 34 15124925 da1 GPT (7.2G) 34 6 - free - (3.0K) 40 2048 1 bios-boot (1.0M) 2088 204800 2 efi (100M) 206888 13633536 3 freebsd-zfs (6.5G) 13840424 1048576 4 freebsd-swap (512M) 14889000 235959 - free - (115M) という結果を得ることができ、この USB 使って dynabookN51を起動すると、何 の苦労もなく素直に gnu grub が立ち上がり、最終的に PC-BSD10.3は起動しま す。インストール作業から立ち上げまで、legacy biosモードを使わずに、すべ て UEFI モードだけでできます。 通常 FreeBSD を UEFI ブートマシンにインストールする場合、/boot/boot1.efi をefi パーティション(FAT16)にコピーしておいてこの boot1.efi が FreeBSDを 起動するという仕掛けですが、PC-BSDのデフォルトのインストールは ZFS上にイ ンストールしたシステムを gnu-grub 経由で起動するというもので、bios-boot パーティション上にあるgnu-grubを起動するための BOOTX64.EFIが必要です。そ れは/boot/boot1.efi とは違うのもです。 勿論 PC-BSDを UEFI のマシンの UFSパーティションにインストールすることは できて、その場合通常の /boot/boot1.efi で起動することはできるはずですが、 多分 /boot/loader.conf の修正が必要でしょう。grub経由の起動の場合に行わ れるカーネル環境変数の設定が boot1.efi では行われないでしょうから。この 場合の検証は私は今のところできていません。 今日はここまで。 -- bcdedit /enum all の出力 ファームウェアのブート マネージャー -------------------------------- identifier {fwbootmgr} displayorder {bootmgr} {dc984317-4850-11e5-beab-ca77328079f8} {dc984318-4850-11e5-beab-ca77328079f8} {e97bf818-4850-11e5-beab-ca77328079f8} timeout 0 Windows ブート マネージャー -------------------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume2 path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale ja-JP inherit {globalsettings} bootdebug Yes default {current} resumeobject {dc984315-4850-11e5-beab-ca77328079f8} displayorder {current} {e97bf812-4850-11e5-beab-ca77328079f8} {e97bf811-4850-11e5-beab-ca77328079f8} toolsdisplayorder {memdiag} timeout 0 displaybootmenu Yes Windows ブート マネージャー -------------------------------- identifier {e97bf818-4850-11e5-beab-ca77328079f8} device partition=\Device\HarddiskVolume2 path \EFI\BOOT\BOOTX64.EFI description GnuGrub locale ja-JP displaybootmenu Yes ファームウェア アプリケーション (101fffff -------------------------------- identifier {10d18537-533f-11e5-8268-806e6f6e6963} description UEFI: IP6 Realtek PCIe FE Family Controller ファームウェア アプリケーション (101fffff -------------------------------- identifier {10d18538-533f-11e5-8268-806e6f6e6963} description UEFI: IP4 Realtek PCIe FE Family Controller ファームウェア アプリケーション (101fffff -------------------------------- identifier {dc984317-4850-11e5-beab-ca77328079f8} description EFI Network ファームウェア アプリケーション (101fffff -------------------------------- identifier {dc984318-4850-11e5-beab-ca77328079f8} description EFI USB Device Windows ブート ローダー -------------------------------- identifier {current} device partition=C: path \Windows\system32\winload.efi description Windows 8.1 locale ja-JP inherit {bootloadersettings} recoverysequence {e97bf811-4850-11e5-beab-ca77328079f8} recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {dc984315-4850-11e5-beab-ca77328079f8} nx OptIn bootmenupolicy Standard detecthal Yes Windows ブート ローダー -------------------------------- identifier {e97bf811-4850-11e5-beab-ca77328079f8} device ramdisk=[unknown]\Recovery\WindowsRE\Winre.wim,{e97bf812-4850-11e5-beab-ca77328079f8} path \windows\system32\winload.efi description Windows Recovery Environment locale ja-jp inherit {bootloadersettings} displaymessage Recovery displaymessageoverride Recovery osdevice ramdisk=[unknown]\Recovery\WindowsRE\Winre.wim,{e97bf812-4850-11e5-beab-ca77328079f8} systemroot \windows nx OptIn bootmenupolicy Standard winpe Yes 休止状態からの再開 -------------------------------- identifier {dc984315-4850-11e5-beab-ca77328079f8} device partition=C: path \Windows\system32\winresume.efi description Windows Resume Application locale ja-JP inherit {resumeloadersettings} recoverysequence {e97bf811-4850-11e5-beab-ca77328079f8} recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 filedevice partition=C: filepath \hiberfil.sys bootmenupolicy Standard debugoptionenabled No Windows メモリ テスター -------------------------------- identifier {memdiag} device partition=\Device\HarddiskVolume2 path \EFI\Microsoft\Boot\memtest.efi description Windows Memory Diagnostic locale ja-JP inherit {globalsettings} badmemoryaccess Yes EMS 設定 -------------------------------- identifier {emssettings} bootems No デバッガー設定 -------------------------------- identifier {dbgsettings} debugtype Serial debugport 1 baudrate 115200 RAM 不良 -------------------------------- identifier {badmemory} グローバル設定 -------------------------------- identifier {globalsettings} inherit {dbgsettings} {emssettings} {badmemory} ブート ローダー設定 -------------------------------- identifier {bootloadersettings} inherit {globalsettings} {hypervisorsettings} ハイパーバイザー設定 ------------------- identifier {hypervisorsettings} hypervisordebugtype Serial hypervisordebugport 1 hypervisorbaudrate 115200 再開ローダー設定 -------------------------------- identifier {resumeloadersettings} inherit {globalsettings} デバイス オプション -------------------------------- identifier {e97bf812-4850-11e5-beab-ca77328079f8} description Windows Recovery ramdisksdidevice unknown ramdisksdipath \Recovery\WindowsRE\boot.sdi -------- 丸山直昌@統計数理研究所