[FreeBSD-users-jp 95526] Re: 500GBのHDDでマルチブートを

丸山直昌 maruyama at ism.ac.jp
Fri May 8 09:17:03 UTC 2015


統計数理研究所の丸山です。

>Date: Wed, 22 Apr 2015 16:07:29 +0900
>From: mitsuyoshi Dobashi <m.dobashi440 at gmail.com>

>gpartなどの話題もありましたが、2TB以下のHDDでのマルチブートは
>とりあえず MBRでしょうか?
>
>CPU: i3-4160
> MB: H81M-E (UEFI仕様)
>HDD: 500GB
>の構成です。

「UEFI仕様」というのは経験がないのですが、それはともかく、最近次のよう
な事態を経験して、そろそろMBRスキームを捨てるべき時代になったと確信す
るに至りました。MBRスキームは、FreeBSD2.2.6の時代からかれこれ17,18年も
使っていたのですが、、、。

「経験した事態」とは以下のような事です。

PCBSD10.1の「お任せインストール」で500GB ディスクをまるまるPCBSDにする
と、以下のようにbois-boot と zfsのパーティションを含むGPTスキームとな
ります(システム1)。

システム1
[root at samanta{107}] ~# gpart show -p ada0
=>        34  1000215149    ada0  GPT  (477G)
          34        2048  ada0p1  bios-boot  (1.0M)
        2082           6          - free -  (3.0K)
        2088   995999744  ada0p2  freebsd-zfs  (475G)
   996001832     4194304  ada0p3  freebsd-swap  (2.0G)
  1000196136       19047          - free -  (9.3M)

このシステムを起動して / 以下を tar やら cp を使って、 MBR スキームの
300GBディスクに含まれる以下のような ufs ファイルシステムにコピーします。

システム2
=>       63  625142385  ada0  MBR  (298G)
         63       1985        - free -  (993K)
       2048    3072000     1  ntfs  (1.5G)
    3074048  297619456     2  ntfs  (142G)
  300693504  287582208     4  freebsd  [active]  (137G)
  588275712   36864000     3  ntfs  (18G)
  625139712       2736        - free -  (1.3M)

                             label/rootfs1     N/A  ada0s4d
                                label/var1     N/A  ada0s4h
                                label/usr1     N/A  ada0s4k

/dev/label/rootfs1   2031256   155548  1713208     8%    /
/dev/label/var1      2031256   521544  1347212    28%    /var
/dev/label/usr1     30450776 10800684 17214032    39%    /usr

するとシステム1では ALT+cntl+ファンクションキーで X の画面からVTYへの
切替えが正常に働くのに対して、システム2では、画面が変な色に変わるだけ
で、実際問題として VTY は使えません(キー入力だけは効いていますが)。

調べてみると、システム1では起動時の dmesg が

Copyright (c) 1992-2014 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.1-RELEASE-p8 #25 d0fb866(releng/10.1): Thu Nov 13 07:57:26 EST 2014
    root at bellicose:/usr/obj/root/pcbsd-build-10-STABLE/git/freebsd/sys/GENERIC amd64
FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
VT: running with driver "vga".
CPU: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz (2594.16-MHz K8-class CPU)
(以下略)

となっているのに対して、システム2では

VT: running with driver "vga".

が表示されません。これは boot code の違いによると考えています。システ
ム1のboot code は gnu grubらしく、システム2の boot code は

gpart bootcode -b /boot/boot0 ada0
gpart bootcode -b /boot/boot ada0s4

で作ったもの(boot0cfg -b boot0 と bsdlabel -B -b /boot/boot で作っても
同じ)です。

さらに、次のようなディスク構成のシステム3(120GB PCI SSD)にシステム1を
コピーしても VTY は使えません。

システム3
=>       34  250069613  ada1  GPT  (119G)
         34          6        - free -  (3.0K)
         40         40     1  freebsd-boot  (20K)
         80       2008        - free -  (1.0M)
       2088   16777216     2  freebsd-swap  (8.0G)
   16779304   10485760     3  freebsd-ufs  (5.0G)
   27265064   62914560     4  freebsd-ufs  (30G)
   90179624   41943040     5  freebsd-ufs  (20G)
  132122664   10485760     6  freebsd-ufs  (5.0G)
  142608424   62914560     7  freebsd-ufs  (30G)
  205522984   10485760     8  freebsd-ufs  (5.0G)
  216008744   34060896     9  freebsd-ufs  (16G)
  250069640          7        - free -  (3.5K)

                               label/pcmr1     N/A  ada1p6
                               label/pcmu1     N/A  ada1p7

/dev/label/pcmr1   5061624   545328  4111368    12%    /
/dev/label/pcmu1  30450776 10793128 17221588    39%    /usr

ここで boot code は

gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1

で作ったものです。

以上は ThinkPad X230(chipset は Intel(R) HD Graphics 4000)上での実験で
す。

更に、システム2とシステム3では、 zzz コマンドによる suspend ができませ
ん。システム1では zzz コマンドによる suspend と resume はうまく働いて
いるように見えます。

これらの違いが、 zfs と ufsの差によって生じているとは、私にはどうして
も思えません。boot codeの違いによるものと思います。詳しい仕組みを私は
理解してはいませんが、この状況を標語的に表現すると、

	伝統的な MBR stage 0 boot code と stage 1 bsdlabel boot code 
	は、小型軽量ではあるが、現在の FreeBSD の機能を支えることは、
	困難になりつつある。

と言えるように思います。

なお、この ML には「FreeBSDはサーバー用」という考えで、PCBSDに興味を持
たない方々が多いように感じていますが、PCBSDはFreeBSDに単にPCBSD meta
packagesを pkg add しただけのもので、基本的には同じ機能を持っています。
無垢のFreeBSD10.1であっても、Xのパッケージを pkg add すれば、VTYに関す
る上記の現象は同じように起こると思います。

長くなり過ぎるので、ここで一旦中断します。

--------
丸山直昌@統計数理研究所


More information about the freebsd-users-jp mailing list