[FreeBSD-users-jp 96362] Re: ブートディスクの構造

osawa.hisao @ tbd.t-com.ne.jp osawa.hisao @ tbd.t-com.ne.jp
2018年 12月 16日 (日) 07:49:01 UTC


大澤です。

丸山様、解説ありがとうございます。だいぶわかりました。

つまり、今回のようなことはスライスの先頭がパーティション'a'であり、
かつ、UFSパーティションの先頭には8KiBの空きがあるという妙な実装に
なっているわけで、たまたま動いていると言えなくもない状態ですね。
ブートディスクにHDDを使っていた頃は、ちょっとでも快適にしようと
スライスの先頭をスワップにしていたこともあったので、
今回は運が良かったというか。

まあ、MBRやそれに対する実装がろくでもないのかもしれませんが、
現環境のマシンパワーにはそれほど不満を持っていないので、
UEFIに移行するためのマザーボード、CPU、メモリといった投資を
する気になれないんですよね。
ちなみに、FreeBSDではスキャナがどうしても動かなかったんで、
Windowsは必要です。


大澤


----- 元のメッセージ -----
差出人: "丸山直昌" <masa @ amogha.jp>
宛先: freebsd-users-jp @ freebsd.org
Cc: "osawa hisao" <osawa.hisao @ tbd.t-com.ne.jp>
送信済み: 2018年12月16日, 日曜日 10:39:13
件名: Re: [FreeBSD-users-jp 96359] Re: ブートディスクの構造

丸山です。

この話題なら私に任せてください。と、すぐに思ったのですが、今や GPTスキー
ム漬けの毎日でMBRスキームの話は頭の片隅に行ってしまい、このメールを書く
ために必要な的確な参照情報を掘り出すのに時間がかかってしまいました。

Sat, 15 Dec 2018 10:18:49 +0900 (JST)
osawa.hisao @ tbd.t-com.ne.jp writes:

>なんというか、ここの解釈なんですが、
>metadata areaはスライス中のすべてのパーティションの前に用意されるような
>に見えるのですが、
>いま、このディスクのboot1, boot2がパーティション'a'のなかにあって、
>でも一見正常に起動していて、それでいいのか?と疑問になっているのです。

「これでいいのか?」と感じるのは、極めて健全な感性だと思います。ある意味
MBRスキームのこの構造は「不健全」だと思います。ですが、伝統的なBSDはこの
構造を長い間使い続けてきたことは事実です。FreeBSD1.1.5.1以来二十年以上に
亙ってMBR+BSDlabelで暮らしてきた私も、GPTスキームに出会った2015年後半に
はMBRスキームと決別する決心を固めた次第です。

BSDlabelのこのちょっとおかした構造は

/usr/include/sys/disklabel.h

の

/* Size of bootblock area in sector-size neutral bytes */
#define BBSIZE          8192

で定義されています。つまりUFSは、それが占拠しているパーティションの最初
8192バイトを使わずに開けておき、ディスク全体の(MBRであれば、各スライスの)レ
イアウト情報とboot codeが特定のパーティションの中に置かれている、という、
極めて不健全な構造を許しています。

・・・・・・・・・・
中略
・・・・・・・・・・

大澤さん、ろくでもない MBRは捨てて、GPTに移行しましょう。GPTなら各パーティ
ションの先頭16セクタのことなど忘れていることができます。

--------
丸山 直昌 まるやま なおまさ
メールアドレス: masa @ amogha.jp



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