最近の変更サイトマップ

ESPの容量は512MiB以上が推奨らしい

FreeBSDのブート環境をEFIにすべく調べてたら、EFI System Partitionについて留意すべき事が幾つかあるようなので殴り書き。公式仕様書といった一次情報は未見、かつEFI黎明期のバッドノウハウが混じってる可能性もあるので、本記事の正確性については保証できますん( ゚ω゚ )

ESPのファイルシステム:

  • FAT32が正式
  • 一部のLinuxディストリビューションはFAT16で作ることがある
  • FreeBSDのnewfs_msdos -F 32で作ったFAT32は、一部のEFI実装で正しく読めない事がある。この場合はFAT12, FAT16で作ればよい。
  • Linux/FreeBSDではFAT12, FAT16のESPでも問題ないが、WindowsはFAT32しかだめ。
  • 大抵のUEFIはどのFATでも大丈夫だが、一部の実装ではFAT32以外だとダメ。

ESPのサイズ:

  • 正式な言及はなし
  • ただし、FAT32の最小サイズは65527クラスタで、1クラスタの最小単位は1セクタであるから、(最小ESPサイズ)=(セクタサイズ)×65527 となる。
    • 1セクタ=512バイトの場合:33549824B=32763.5KiB≒31.995MiB
    • 1セクタ=4096バイトの場合:268398592B=262108KiB≒255.964MiB
  • しかし一部のEFI実装は512MiB未満のESPを正しく扱えない事がある。
    • こっちの資料には、FAT32は最小クラスタサイズ4KiBで最小ボリュームサイズが512MiBとあるので、最小クラスタが4KiB想定の実装があるのかも?
  • 一方で、Windows/MacはESPを200MiBで作るので最早訳ワカメ状態(512Eドライブまでなら規格上も問題ないんだろうけど…)
  • Linuxのmkdosfsコマンドは520MiBまでのパーティションをFAT16で作るのがデフォ挙動なので要注意。
  • FAT12, FAT16の場合、最小サイズ制限はない

ファーム、OS、ストレージのそれぞれの都合が絡み合って何とも複雑な状況っぽい。

FAT32の最小容量制限を考慮すると、FreeBSD 11デフォの800KiBのESPなんぞ以ての外ですな。今後、ネイティブ4Kストレージが増えてく事を考えると、Windowsを使ってFAT32な512MiBのESPを作るのがさいつよか?

参考サイト

Macに4kモニタをDP MSTで繋いでる人はSierraにするべからず

間もなくHigh Sierraがリリースされるというのに、今更Sierraの話題でごめんね。

Macで4kモニタをDisplay Port 1.2のMST1)モードで繋げて使ってる人は、10.12にしてはいけない。もれなくマウスカーソルの挙動がバグる。ウィンドウの境界にマウスポインタを持って行くと、アイコンがウィンドウのリサイズ操作を意味する「↔」に変わるけど、この変の挙動がおかしくなる。

まず、ウィンドウ境界の判定がおかしい。ポインタの表示は「↔」とかに変わるが、実際に操作しようとすると正常に機能しない。詳しく調査はしてないけど、境界の左右どちらか幾分ズレた所に操作領域があるっぽい。そして、一度変わったポインタアイコンは、操作領域を外れても元の通常ポインタ表示(「↖」こんなやつ)に戻らない。でも機能としては通常のマウスカーソルである。

このバグはウィンドウ境界だけではなく、Finderの列幅調整などのドラッグで操作可能な部分でも起きる。

本国のフォーラムではSierraリリース直後から問題が報告されてるのに、10.12.6でも直ってない。それどころか、High Sierraのβ版でも直ってないみたい(改善はされてるらしいが何かの拍子に再発する模様)。

僕はYosemite以降のOSXがどーも肌に合わなくてMavericksを使い続けてるんだけど、そろそろ各種アプリのサポートが切られ出したから重い腰を上げてSierraに更新した矢先の仕打ちですよ。こんなこともあろうかと、別パーティションで試してたのでソッコウでMavericksに戻って事無きを得ましたけどね。

それにしても、Yosemite以降のOSXって本当に品質が悪過ぎじゃないですかね…。このバグにしたって、社内で外付け4kモニタ使ってる人がいれば一発で発覚するだろうに。まともにQAチェックもしてないんだろうね。公式で4k情報を出すくらいなんだから、最低限のチェックくらいはしてもらいたいものだね。

こんな調子じゃ当分10.9から離れられなさそう。いよいよもって10.9じゃ立ち行かなくなったら、その時はもうMacを止めるかもしれない。

参考サイト

1) Multi Stream Transport

lang/php71とwww/mod_php71のZTSオプションは合わせないとハマる

FreeBSDでportsからPHP 7.1とmod_php71をインストールする際、それぞれのZTSのオプション設定を合わせておかないとハマる。というのも、ZTSの有無によってPHPエクステンションの読み込みパスが変わるからだ。

  • ZTS無効時:/usr/local/lib/php/20160303/
  • ZTS有効時:/usr/local/lib/php/20160303-zts/

エクステンションはlang/php71のZTSオプションに沿った場所にインストールされる。一方、mod_phpは自身のZTSオプション設定に沿った場所からエクステンションを読み込もうとするため、設定を合わせておかないとApache起動時に

Failed loading /usr/local/lib/php/20160303-zts/opcache.so:  Cannot open "/usr/local/lib/php/20160303-zts/opcache.so"

てな感じで怒られる事になる。

P4コマンドでファイルが変更済みかどうかを判定する

Perforceでチェックアウト中のファイルに変更があるかどうか──P4Vで言えば、チェンジリストのファイルアイコンが青くなってるかどうか、を調べるにはp4 diff -sr /path/to/fileを使う。ファイルに変更があれば何も返ってこず、変更がなければ与えたファイルのフルパスが返って来る。

■ファイルに変更がある場合
$ p4 diff -sr modified_file.cpp
$

■ファイルに変更がない場合
$ p4 diff -sr no_changes_file.cpp
/path/to/no_changes_file.cpp
$

もっと直接的に確認できる方法は無いのだろうか・・・?

参考サイト

ZFSでディスクを交換する時はgpart backup/restoreが便利

ZFSのプールを構成するHDDを交換する時など、新旧のHDDでパーティション構成をそっくりそのまま同じにしたい場合がある。gpart addでチマチマ目コピーしてもいいのだが、というか今まで自分はそうしてたのだが、gpart backupgpart restoreでパーティション情報をコピー出来ると知った。

使い方は以下のログを見ればご理解頂けるかと。

$ gpart show ada1
=>        34  5860533101  ada1  GPT  (2.7T)
          34           6        - free -  (3.0K)
          40  5858435944     1  freebsd-zfs  (2.7T)
  5858435984     2097151        - free -  (1.0G)

$ gpart show ada2
gpart: No such geom: ada2.

# gpart backup ada1 | gpart restore ada2

$ gpart show ada2
=>        34  5860533101  ada2  GPT  (2.7T)
          34           6        - free -  (3.0K)
          40  5858435944     1  freebsd-zfs  (2.7T)
  5858435984     2097151        - free -  (1.0G)

ada1のパーティションテーブルをada2にコピーしている。typoで変なパーティションを作る事もないし、マジ便利。便宜上「ZFSで〜」というタイトルにしたが、勿論ZFS以外でも有用な技だ。

start.txt · 最終更新: 2016-05-07 17:46 by decomo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0