2026/01/09(金)ディスク無罪
zpool に異常が起きたので嫌々ながら HDD を2本買ってデータを移行したけど、問題は SATA カードか、ケースのHDDバックプレーンの結線が怪しかった?
安物のSATAカードを買ったんだけど、なんか不安になったので HBA カードを買った。HPとかNECの中古サーバーから抜いて売られてる LSI 7300 チップのやつ。
カードを入れ替えてケーブルを差し替えて終わり。 GPTラベルを設定して、それを識別子として zpool を構成しているのでデバイス名が変わっても影響を受けない。
カードが届いて小一時間で入れ替えが終わってしまう便利さと一抹の寂しさ。
2026/01/01(木)geom label のメモ
geom ラベルの操作がよくわからないので確認した。
geom part modify や geom パーティション作成の際の create にラベルを指定した場合はラベルがディスクに書き込まれる。glabel や geom label を使った場合はディスクに書き込まれない。OS上のgeomデータとして保持されるので、これは揮発する。という事らしい。
自分の理解では、ラベルの操作は3つのコマンドで実施できる。
- glabel
- geom label
- gpart
- create -l LABEL
- modify -l LABEL
それぞれラベルの付き方や見え方が異なるみたいだ。
- /dev/ 以下での見え方が異なる。
- geom 関連コマンド
GEOMのラベルと GUID Partition のラベルをないまぜにとらえてしまっているのか?
gpart(8) の label の説明がこれ。GUID Partition のメタデータを使ってラベルを付けている。
-l label The label attached to the partition. This option is only valid when used on partitioning schemes that support partition labels.
glabel(8) の説明はこれ。GPT (= GUID Partition) だと思われる。
Support for partition metadata is implemented for:
- GPT labels (directory /dev/gpt/).
- GPT UUIDs (directory /dev/gptid/).
geom label は glabel っぽい。
geom(8) の説明。これっぽい。ラベルを付与するときに create サブコマンドを使うとデバイスには書き込まれない。label サブコマンドで作るとデバイスに書き込まれる。
- create Create temporary label name for the given provider. This is the
- “manual” method. The kernel module geom_label.ko will be loaded if it is not loaded already.
- label Set up a label name for the given provider. This is the
- “automatic” method, where metadata is stored in a provider's last sector. The kernel module geom_label.ko will be loaded if it is not loaded already.
動かしてみる
ada6p1 にラベルを付けてみる。初期状態。gptid だけ付与されている。
Geom name: ada6p1 Providers: 1. Name: gptid/074bb1ee-375d-11ed-8291-7085c2c786cd Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533088 length: 3000592941056 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
glabel create で付与してみる。 geom ではラベルが付くが、gpt パーティションには書き込まれないはず。
%sudo glabel create labelc ada6p1
glabel list や geom label list だとラベルが見える .. code:
Geom name: ada6p1 Providers: 1. Name: gptid/074bb1ee-375d-11ed-8291-7085c2c786cd Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533088 length: 3000592941056 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 Geom name: ada6p1 Providers: 1. Name: label/labelc Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533088 length: 3000592941056 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
geom part list では label が null になっている。
%geom part list ada6 Geom name: ada6 modified: false state: OK fwheads: 16 fwsectors: 63 last: 5860533127 first: 40 entries: 128 scheme: GPT Providers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 efimedia: HD(1,GPT,074bb1ee-375d-11ed-8291-7085c2c786cd,0x28,0x15d50a360) rawuuid: 074bb1ee-375d-11ed-8291-7085c2c786cd rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b label: (null) length: 3000592941056 offset: 20480 type: freebsd-zfs index: 1 end: 5860533127 start: 40 Consumers: 1. Name: ada6 Mediasize: 3000592982016 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
glabel label で付与してみる。デバイスに書き込まれず geom ラベルが上書きされた。想定外。
Geom name: ada6p1 Providers: 1. Name: gptid/074bb1ee-375d-11ed-8291-7085c2c786cd Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533088 length: 3000592941056 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 Geom name: ada6p1 Providers: 1. Name: label/labell Mediasize: 3000592940544 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533087 length: 3000592940544 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
%geom part list ada6 Geom name: ada6 modified: false state: OK fwheads: 16 fwsectors: 63 last: 5860533127 first: 40 entries: 128 scheme: GPT Providers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 efimedia: HD(1,GPT,074bb1ee-375d-11ed-8291-7085c2c786cd,0x28,0x15d50a360) rawuuid: 074bb1ee-375d-11ed-8291-7085c2c786cd rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b label: (null) length: 3000592941056 offset: 20480 type: freebsd-zfs index: 1 end: 5860533127 start: 40 Consumers: 1. Name: ada6 Mediasize: 3000592982016 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
gpart modify, geom part modify を使うとパーティションに書き込まれる。 .. code:
%sudo gpart modify -i 1 -l "on-partition" ada6 ada6p1 modified %geom part list ada6 Geom name: ada6 modified: false state: OK fwheads: 16 fwsectors: 63 last: 5860533127 first: 40 entries: 128 scheme: GPT Providers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 efimedia: HD(1,GPT,074bb1ee-375d-11ed-8291-7085c2c786cd,0x28,0x15d50a360) rawuuid: 074bb1ee-375d-11ed-8291-7085c2c786cd rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b label: on-partition length: 3000592941056 offset: 20480 type: freebsd-zfs index: 1 end: 5860533127 start: 40 Consumers: 1. Name: ada6 Mediasize: 3000592982016 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
man を読んで把握した内容とは食い違うけど、
- glabel コマンドではパーティションに書き込まない
- gpart modify, create や geom part modify, create では書き込める
という事みたい。zpool の指定にデバイス名ではなくラベルを使いたくて確認していたけど、label だと揮発してしまうので modify を使って付与したラベルを使うのが安全そう。
2025/02/27(木)emacs
書く分には色々試してもいいんだけど、読むときの方が手に馴染んだものがいい。というか emacs がいい。
emacs はファイラーでもある。dired とか sppedbar とかがなくても充分素早い操作ができる。それをマウスを使わずホームポジションだけで操作できる。
そのままファイルの内容をインクリメンタルサーチできる。正規表現サーチできる。ディレクトリのgrepは、なんかクセがある。でもシェルを起動してgrepはできる。
マルチウィンドウマルチフレームマルチバッファをスイスイ行き来できる。
こんなエディタ他に無いんだよな。GUIを容赦なく使いこなすあたり、Vimにはない特徴だと思う。
M-x 5 2 を打ちまくれ。
2025/01/19(日)おじさんがgoを学ぶ5 ChatGPT
ChatGPTいいですね。 goの「習得は優しいが使いこなすのは難しい」を解決するのに、
- ストリーム型って持ち回っていいの?
- このコードってベター?
- 正解?じゃなく正解はないけどグラデーションがある質問にも回答をくれる
いちいち人に聞いたり調べたりしていたらきりがない質問も気兼ねなく聞ける。 RustやC#のように制限が強い言語もよいけど、goのようなゆるい言語をChatGPTで学ぶっていうのもよい。
2025/01/17(金)AIがプログラマを駆逐する
AIは既存のデータを大量に集めることで正解っぽいものを提示してる。プログラムなら github で公開されているコードから情報を集めたりしてる。
なので、プログラマがいない世界ではAIはプログラムを学べない。プログラマが書いたコードが大量に存在しないといけない。
本当にAIがプログラマの仕事を奪うにはAI最適化されたプログラム言語とか、制御構造はブラックボックスでいきなりアセンブラを吐くとかそんな世界なんじゃないかな。
って思いました。