From owner-freebsd-users-jp@freebsd.org Sun Apr 17 15:32:09 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 5E662B11A40 for ; Sun, 17 Apr 2016 15:32:09 +0000 (UTC) (envelope-from maruyama@ism.ac.jp) Received: from garbha.ism.ac.jp (garbha.ism.ac.jp [133.58.120.13]) by mx1.freebsd.org (Postfix) with ESMTP id DD5281808 for ; Sun, 17 Apr 2016 15:32:08 +0000 (UTC) (envelope-from maruyama@ism.ac.jp) Received: from indra.ism.ac.jp (garbha.ism.ac.jp [133.58.120.13]) by garbha.ism.ac.jp (8.15.2/8.15.2) with ESMTPS id u3HFW0ZQ026150 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 18 Apr 2016 00:32:00 +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 u3HFW0JC033483; Mon, 18 Apr 2016 00:32:00 +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: =?iso-2022-jp?B?GyRCMixJdBsoQiAbJEI+ITksGyhC?= Cc: freebsd-users-jp@freebsd.org In-Reply-To: <3ff2a6a1-dad7-619f-1b3f-63c51ff25eb4@nifty.com> (message from =?iso-2022-jp?B?GyRCMixJdBsoQiAbJEI+ITksGyhC?= on Sun, 17 Apr 2016 19:51:38 +0900) Organization: =?iso-2022-jp?B?GyRCRX03Vz90TX04JjVmPWobKEI=?= Reply-To: maruyama@ism.ac.jp Date: Mon, 18 Apr 2016 00:31:59 +0900 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Subject: [FreeBSD-users-jp 95770] Re: =?iso-2022-jp?b?GyRCJVEhPCVGJSMlNyVnJXMkLBsoQiAyIBskQiREGyhC?= =?iso-2022-jp?b?GyRCOm4kbCReJDskcxsoQg==?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.21 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: Sun, 17 Apr 2016 15:32:09 -0000 統計数理研究所の丸山です。 Sun, 17 Apr 2016 19:51:38 +0900 岡部 勝幸 writes: >> gpart create -s GPT ada0 >> gpart add -t freebsd-ufs ada0 >> gpart add -t freebsd ada0 >> >> と続けてやると、 ada0p1 の次にできるのは ada0s1 ですか ada0s2ですか、は >> たまた ada0p2 ですか? > >試してみたところ ada0s2 でした。 有難うございました。岡部さんから今日私が得た知識は、GPTスキームに対する 私の見方まで変えてしまいました。MBRスキーム+BSD labelが持つ色々な問題点 をGPTは解決したというのが私の解釈で、中でも UFSファイルシステムの中の第1〜 15セクタにstage 1 boot code(普通は/boot/bootの第1〜15セクタのコピー)を持っ ているという伝統をやめて type freebsd-bootのパーティションとして独立させ たのは、時代の要請にも合っているし、仕様としてもすっきりしていると思って います。そもそもMBRスキームという用語自体、 gpart の時代になって作られた 言葉で、元々は「Microsoft流disk slice」であって、その中にBSD label を入 れ込むという方法は、Berkeley版 BSDにあったdisklabel をIntel/Windowsマシ ンに適合させるための苦肉の策だったと解釈しています。こんな伝統はこの際捨 てて GPT の freebsd-ufs partitionに統一する方が健全、と思っていたので、 GPT スキームで ada0s1a などが作れると知って、ある意味「幻滅」すら感じま した。 まあ、私の感想はそのくらいにしておいて、岡部さんがお書きになった >小金丸さんのされたかったことは、おそらく次のような事かと思います(GPTの >ブートコードは対応してないでしょうから結局はMBRにする必要あるでしょうけど)。 について考えてみましょう。問題は GPTスキームで ada0s1a にある /boot/loader(stage 2 boot loader)にいかにして辿り着けるか、です。 MBRスキームではデバイスの先頭セクタは /boot/boot0 で、これがstage 0 boot loaderですが、先頭セクタは4つのスライスのアドレス情報も持っているので、 stage 0 boot loaderは ada0s1a, adas02a などの第1〜15セクタにある stage 1 boot code を見つけることができます。それはさらに/boot/loader(stage 2 boot loader) に制御を渡してOSの起動が進みます(/boot.configを参照しますが)。 さて GPTスキームだとどうでしょう。コードを読んだわけではないので以下に書 くことには推理が入っていますが、次のような流れだと思います。 GPTスキームではディスクのレイアウト情報はデバイスのセクタ0ではなく、 セクタ34以下にあるのでしょう。従って stage 0 boot code(/boot/pmbrのコピー) は、単に type freebsd-boot のパーティションにある stage 1 boot code(/boot/gptboot)に制御を渡して、これがディスクのレイアウト情報を読ん で続く起動シーケンスを決めるのだと思います。そう考えると # gpart create -s GPT ada0 # gpart add -t freebsd-boot -s 40 ada0 # gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0 # gpart add -t freebsd -s 260G ada0 # gpart create -s BSD -n 10 ada0s2 # gpart add -s 5g -t freebsd-ufs ada0s2 # gpart add -s 2g -t freebsd-swap ada0s2 # gpart add -s 50g -t freebsd-ufs ada0s2 # gpart add -s 2g -t freebsd-ufs ada0s2 # gpart add -s 50g -t freebsd-ufs ada0s2 # gpart add -s 41g -t freebsd-ufs ada0s2 # gpart add -t freebsd -s 260G ada0 # gpart create -s BSD -n 10 ada0s3 # gpart add -s 5g -t freebsd-ufs ada0s3 # gpart add -s 2g -t freebsd-swap ada0s3 # gpart add -s 50g -t freebsd-ufs ada0s3 # gpart add -s 2g -t freebsd-ufs ada0s3 # gpart add -s 50g -t freebsd-ufs ada0s3 # gpart add -s 41g -t freebsd-ufs ada0s3 で ada0s2a に freebsd を入れておけば起動しませんかね? これが小金丸さんのご希望にかなうかどうか知りませんが。 自分で実験できなくて済みません。 -------- 丸山直昌@統計数理研究所