FreeBSD/ZFS/ZFSboot
の編集
http://www.bugbearr.jp/?FreeBSD%2FZFS%2FZFSboot
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
サイト内検索
-- 雛形とするページ --
.NET
.NET/DirectX
.NET/System/Drawing/Drawing2D/Matrix
.NET/System/Drawing/Graphics/DrawImage
.NET/WindowsForms/HTML埋め込み
.NET/コンボボックス
.NET/ツール
.NET/テスト
.NET/ドキュメント作成
.NET/レイアウト
.NET/例外
.NET/文字列
.NET/目的別
.NET/目的別/HTTP
.NET/目的別/Win32API呼び出し
.NET/目的別/ファイルシステム
.NET/目的別/ファイルパス
.NET/目的別/日時
20xx年問題
2D
2D/mult
2D/raytrace
2D/reverse
APIPA
ARP
ASCIIコード表
Access
AdobeAIR
Apache2
Apache2/SSL
BASE64
Blender
Blender/トラブル
Blogアプリ
Boehm-GC
BracketName
BugbearR
C++
C++/printfからiostreamへの移植
C++/例外
C++/演算子多重定義
CJK統合漢字拡張B
CSS
CVS
CentOS
CentOS/バージョン
Cookie
Cygwin
Cygwin/PostgreSQL
Cygwin/トラブル
Cygwin/日本語化
C♯
C♯/MFCからの移植
C♯/アクセス修飾子
C♯/匿名メソッド
C言語
C言語/long_long
C言語/いまだに使われる理由
C言語/型
C言語/定義済みプリプロセッサマクロ
C言語/日時
C言語/罠
C言語/関数/未使用引数
C言語/難しいとされる理由
D-OS
D-OS/x86関連
D-OS/エミュレータ
D-OS/オブジェクト管理
D-OS/コンパイラ
D-OS/コーディング規約
D-OS/システムコール
D-OS/セキュリティ
D-OS/ファイルシステム
D-OS/ブート
D-OS/プロセス管理
D-OS/ポリシー
D-OS/メモ
D-OS/メモリモデル
D-OS/ライセンス
D-OS/分散処理
D-OS/参考
D-OS/参考資料
D-OS/命名法
D-OS/時刻
D-OS/設定
D-OS/配置
DB/挿入
DB/検索
DLNA
DNS
DNS/CNAME
DNS/DynamicDNS
DNS/トップレベルドメイン
DNS/圧縮
DNS/設定ミス
DNS/逆引き
DNS/逆引き詐称
D言語
D言語/Windows
D言語/WindowsAPI
D言語/enum
D言語/import
D言語/version
D言語/winsampがリンクできない
D言語/アクセス保護属性
D言語/エラー対処法
D言語/キーワード
D言語/クラス
D言語/ソート
D言語/ツール
D言語/パフォーマンスチューニング
D言語/ポインタ
D言語/リテラル
D言語/予約語
D言語/例外安全
D言語/列挙体
D言語/型
D言語/外部のDLLを使うには
D言語/定数
D言語/日本語
D言語/正規表現
D言語/演算子
D言語/罠
D言語/連想配列
D言語/配列
D言語/関数
D言語/関数ポインタ
EUC
Eclipse
Eclipse/インストール
Eclipse/トラブル
Eclipse/プラグイン
Eclipseでnative2asciiを使う
EdMaxからThunderbirdへの移行
Ethernet
ExcelVBA
FFXI
FFXI/スキル
FFXI/チャットフィルター
FFXI/バリスタ
FFXI/日時
FFXI/経済
FON/セキュリティ
FastCGI
Firefox
FormatRule
FormattingRules
FreeBSD
FreeBSD/5.3R
FreeBSD/5.3Rインストール
FreeBSD/Apache2
FreeBSD/Apache2/SSL
FreeBSD/CVSup
FreeBSD/Java
FreeBSD/MySQL
FreeBSD/NTP
FreeBSD/OpenSSL
FreeBSD/OpenSSL/オレオレ認証局
FreeBSD/PHP
FreeBSD/PostgreSQL
FreeBSD/RAMディスク
FreeBSD/Tomcat
FreeBSD/UTF-8化
FreeBSD/ZFS
FreeBSD/ZFS/ZFSboot
FreeBSD/analog
FreeBSD/bash
FreeBSD/clockspeed
FreeBSD/daemontools
FreeBSD/djbdns
FreeBSD/ipfilter
FreeBSD/mod_jk2
FreeBSD/mpd
FreeBSD/mutt
FreeBSD/package
FreeBSD/perl
FreeBSD/pf
FreeBSD/phpMyAdmin
FreeBSD/phpPgAdmin
FreeBSD/ports
FreeBSD/portsnap
FreeBSD/portsのインストール
FreeBSD/portupgrade
FreeBSD/qmail
FreeBSD/qmailadmin
FreeBSD/tinydns
FreeBSD/ucspi-tcp
FreeBSD/vpopmail
FreeBSD/カーネルとベースシステムの再構築
FreeBSD/カーネル再構築
FreeBSD/コマンド逆引き
FreeBSD/サーバー設定
FreeBSD/ネットワーク
FreeBSD/バーチャルホスト設定
FreeBSD/ファイルシステム
FreeBSD/ファイル処理順
FreeBSD/ファイル階層/etc
FreeBSD/メイル設定
FreeBSD/ユーザーの追加
FreeBSD/不正アクセス対策
FreeBSD/日本語化
FreeBSD/起動
FrontPage
H8
HTML
HTTP
HTTP/キャッシュ制御
HTTP/セッション
Help
ICMP
IMAP
IPv6
IPアドレス
ISO2022
InterWiki
InterWikiName
InterWikiSandBox
InterWikiテクニカル
Internet
Internet/RFC
JDBC
JIS文字コード
JSF
JSP
Java
Java/J2EE
Java/JAF
Java/JDK6
Java/JSP
Java/JSTL
Java/JavaBeans
Java/Servlet
Java/TagFile
Java/アノテーション
Java/アンチパターン
Java/クラス
Java/ジェネリクス
Java/スレッドダンプ
Java/タグライブラリ
Java/タグライブラリ/sample1
Java/タグライブラリ/sample2
Java/ツール
Java/トラブル
Java/バージョン
Java/メモリリーク
Java/型
Java/文字コード
Java/文字列
JavaScript
JavaScript/Webブラウザ
JavaScript/navigator
JavaScript/マウス座標
JavaScript/互換性問題
JavaScript/文法
JavaScript/日時
JavaScript/連想配列
JavaScript/配列
LDAP
LLMNR
Linux
Linux/SELinux
Linux/rpm
Linux/アーキテクチャ名
Linux/コマンド逆引き
Linux/サポート
Linux/ディストリビューション
Linux/ディストリビューション確認方法
Linux/ファイルシステム
Linux/文字化け
Makefile
MenuBar
MySQL
MySQL/データベース
MySQL/パスワード
MySQL/ユーザー
MySQL/権限
NAS
NAT
NTP
NYSL
NetBIOS
ONC_RPC
OpenOffice.org/移行メモ
OpenSSH
OpenSSL
OpenVPN
Oracle
PC
PC/ACPI
PC/CPUソケット
PC/INT
PC/PnP
PC/クロック
PC/ディスプレイ
PC/フォームファクタ
PC/マザーボード
PC/メモリ
PCI
PHP
PHP/Apache2
PHP/コマンドライン版
PHP/セキュリティ
PHP/セッション
PHP/フレームワーク
PHP/リスト代入
PHP/文字列
PHP/日時
PHP/配列
POP
POP3
PPTP
PS/2キーボードインターフェイス
PV3
Perl
Perl/CGI
Perl/CPAN
Perl/Unicode
Perl/エラーメッセージ
Perl/クラス作成法
Perl/タイムアウト方法
Perl/テスト
Perl/データベース
Perl/ファイル操作
Perl/マルチプロセス
Perl/メイル
Perl/文字列
Perl/日時
Perl/日本語
PoE
PostgreSQL
PostgreSQL/パスワードを忘れた場合
PostgreSQL/自動化
Private
Private/ACL
Private/GUI
Private/テスト
Private/データ構造メモ
Private/メモ
Private/掃除
Private/掃除/日記
Private/掃除/日記/2007-10-06
Private/掃除/日記/2007-10-07
Private/掃除/日記/2007-10-08
Private/掃除/日記/2007-10-09
Private/電子キーボード選定
PuTTY
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
Punycode
Python
Python/HelloWorld
Python/コマンドライン引数
Python/コーディング規約
Python/スライス
Python/プロセス
Python/リスト
Python/排他制御
Python/文字列
Python/永続化
Python/演算子
Python/辞書型
RBL
RPC
RSTP
Rails
Rails/SSL
Rails/migration
Rails/セッション管理
Rails/フィルタ
Rails/プラグイン
RecentDeleted
Ruby
Ruby/DBI
Ruby/PostgreSQL
Ruby/mod_ruby
Ruby/アクセス制御
Ruby/クラス
Ruby/シンボル
Ruby/データベース
Ruby/ハッシュ
Ruby/バージョン
Ruby/プログラム
Ruby/ログ出力
Ruby/入出力
Ruby/同値と同一
Ruby/命名
Ruby/多重代入
Ruby/実行制御
Ruby/文字コード
Ruby/文字列
Ruby/文法エラー
Ruby/日時
Ruby/正規表現
Ruby/演算子
Ruby/環境変数
Ruby/移植
Ruby/配列
SMB
SMTP
SOA
SOAP
SPAMの送信元IPアドレスの例
SPAM報告先
SPAM対策
SPF
SQL
SQL/移植用比較
SSL
STP
SVN
SandBox
Sendmail
Shift_JIS
Snort
Solaris
SpamAssassin
SpamAssassin/設定
SpamAssassin/設定/その他オプション
SpamAssassin/設定/スコアオプション
SpamAssassin/設定/テンプレートタグ
SpamAssassin/設定/ネットワークテストオプション
SpamAssassin/設定/ホワイトリストとブラックリスト
SpamAssassin/設定/ルール定義と権限設定
SpamAssassin/設定/前処理オプション
SpamAssassin/設定/基本メッセージタグ付けオプション
SpamAssassin/設定/学習オプション
SpamAssassin/設定/管理者設定
SpamAssassin/設定/言語オプション
Struts
Struts/Tips
Struts/htmlタグライブラリ
Struts/タグライブラリ
Struts/トラブル
Struts/パスワード入力
Struts/フォーム
Struts/ラジオボタン入力
Struts/動作原理
Struts2
Subversion
TLS
TeraTerm
Thunderbird
ToDo
Tomcat
Tomcat/トラブル
TortoiseSVN
TrackBack
UML
USB
USB/仕様
USBメモリ
UTF-16
UTF-8
Unicode
Unicode/コード表
Unix
Unix/DOS改行の直し方
Unix/OS種別判定
Unix/etc/hosts
Unix/コマンド逆引き
Unix/シェルスクリプト
Unix/トラブル
Unix/ユーザー管理
Unix/リダイレクト
Unix/ロケール
VC++/トラブル
VRRP
VoIP
WINS
WM6開発
WPAD
WakeOnLAN
Web開発
WikiEngines
WikiName
WikiWikiWeb
Windows
Windows-31J
Windows/API
Windows/PuTTY
Windows/TeraTerm
Windows/「送る」の設定
Windows/お勧めソフト
Windows/コマンドライン
Windows/チューニング
Windows/ツール
Windows/トラブル
Windows/ファイルセキュリティ
Windows/ファイル名に使えない文字
Windows/メイラー
Windows/レジストリ
Windows/時刻
Windows/自動実行の停止
Windows/関連付け
Windows7
Windows7/ディレクトリ対応表
Windows7/移行メモ
X01T
X01T/ツール
XHTML
XHTML Basic
XML
YAML
YukiWiki
bash/設定ファイル
chroot_jail
clockspeed
daemontools
frontpage
hostip.info
iptables
kon
libtai
mDNS
mimetex
mod_jk2
mod_perl
ms-tnef
navi2.inc.php
navi2.inc.php/テストc
navi2.inc.php/テストc2
navi2.inc.php/テストc2x
navi2.inc.php/テストc2y
popular
postgresql
qmail
rblsmtpd
ssh_scp自動運転
syslog
tinydns
trackerテスト
trackerテスト/1
uRPF
ucspi-tcp
より対線
アクセスカウンタ
アンチパターン
アンチパターン/共通メソッドもどき
インターネット接続方法調査
ゲーム
システム開発
システム開発/GC
システム開発/エラーの取り扱い
システム開発/システム開発とは?
システム開発/ツール
システム開発/デバッグ
システム開発/データ表現の取り扱い
システム開発/プログラミングアンチパターン
システム開発/前書き
システム開発/参考書
システム開発/命名法
システム開発/国際化
システム開発/基本的な問題点と対策
システム開発/教訓
システム開発/文字コードの取り扱い
システム開発/日時の取り扱い
システム開発/書きたいこと
システム開発/省メモリプログラミング
システム開発/空白の取り扱い
システム開発/翻訳
システム開発/設計
セキュリティ
セマンティックWeb
チューニング
ツール
テストページ
データ表現
トリッキーコード
ネットワーク
ネットワーク機器
ハッシュ関数
バックアップツール
バーチャルホスト
パケットフィルタリング
パーソナルファイアウォール評価
ファイアウォール設定
フォネティック・コード
プライベートアドレス
プログラミング言語
プログラミング言語/ガーベジコレクション
プログラミング言語/クロージャ
プログラミング言語/コンパイル時関数実行
プログラミング言語/トピック
プログラミング言語/プリプロセッサ
プログラミング言語/型
プログラミング言語/宗教論争
プログラミング言語/意味論
プログラミング言語/文字列
プログラミング言語/連想配列
プログラミング言語/配列
プログラミング言語D
ヘルプ
メール
メール/メールアドレスの書式
モバイル通信
リクエスト-レスポンス型
仮想化/ディスククリア
動画
国際化ドメイン名
学習について
情報をどう整理するか
情報整理
提供ソフトウェア
提供ソフトウェア/NYSL
提供ソフトウェア/putwithprogress
携帯Web
携帯機種
攻撃対策
攻撃手法
攻撃目的
教訓
整形ルール
文字コード
文字コード/API
文字コード/文字化けのパターン
文字コード/書籍
文字コード/自動判別
文字化け
日本語
日記
日記/2003-10-01
日記/2003-10-02
日記/2003-10-04
日記/2003-10-06
日記/2003-10-08
日記/2003-10-09
日記/2003-10-10
日記/2003-10-31
日記/2003-11-03
日記/2003-11-04
日記/2003-11-05
日記/2003-11-06
日記/2003-11-08
日記/2003-11-09
日記/2003-11-10
日記/2003-11-11
日記/2003-11-12
日記/2003-11-13
日記/2003-11-15
日記/2003-11-16
日記/2003-11-17
日記/2003-11-18
日記/2003-11-19
日記/2003-11-20
日記/2003-11-21
日記/2003-11-22
日記/2003-11-23
日記/2003-11-24
日記/2003-11-27
日記/2003-11-28
日記/2003-11-29
日記/2003-11-30
日記/2003-12-01
日記/2003-12-02
日記/2003-12-03
日記/2003-12-05
日記/2003-12-06
日記/2003-12-07
日記/2003-12-08
日記/2003-12-09
日記/2003-12-10
日記/2003-12-11
日記/2003-12-12
日記/2003-12-17
日記/2003-12-20
日記/2003-12-21
日記/2003-12-22
日記/2003-12-26
日記/2003-12-27
日記/2004-01-28
日記/2004-01-31
日記/2004-02-01
日記/2004-02-04
日記/2004-02-05
日記/2004-02-07
日記/2004-02-08
日記/2004-02-09
日記/2004-02-10
日記/2004-02-11
日記/2004-02-12
日記/2004-02-20
日記/2004-02-21
日記/2004-02-22
日記/2004-02-24
日記/2004-02-27
日記/2004-03-04
日記/2004-03-06
日記/2004-03-14
日記/2004-03-18
日記/2004-03-21
日記/2004-03-22
日記/2004-03-23
日記/2004-03-25
日記/2004-03-28
日記/2004-04-02
日記/2004-04-03
日記/2004-04-05
日記/2004-04-07
日記/2004-04-09
日記/2004-05-11
日記/2004-05-19
日記/2004-06-06
日記/2004-06-10
日記/2004-12-29
日記/2004-12-30
日記/2004-12-31
日記/2005-01-01
日記/2005-01-23
日記/2005-02-16
日記/2005-02-26
日記/2005-03-07
日記/2005-03-10
日記/2005-03-11
日記/2005-03-12
日記/2005-03-21
日記/2005-03-22
日記/2005-03-25
日記/2005-04-26
日記/2005-05-27
日記/2005-08-27
日記/2005-10-15
日記/2005-10-16
日記/2005-11-01
日記/2005-11-04
日記/2005-11-13
日記/2005-11-14
日記/2005-11-29
日記/2006-01-29
日記/2006-03-09
日記/2006-04-04
日記/2006-04-07
日記/2006-04-21
日記/2006-05-21
日記/2006-05-24
日記/2006-05-26
日記/2006-05-28
日記/2006-06-02
日記/2006-06-03
日記/2006-06-13
日記/2006-06-15
日記/2006-06-16
日記/2006-06-17
日記/2006-06-18
日記/2006-06-21
日記/2006-06-22
日記/2006-06-26
日記/2006-07-02
日記/2006-07-04
日記/2006-07-09
日記/2006-07-10
日記/2006-07-12
日記/2006-07-14
日記/2006-07-16
日記/2006-07-18
日記/2006-07-19
日記/2006-07-26
日記/2006-07-29
日記/2006-08-01
日記/2006-08-04
日記/2006-08-07
日記/2006-08-08
日記/2006-08-09
日記/2006-08-10
日記/2006-08-15
日記/2006-08-20
日記/2006-08-25
日記/2006-08-28
日記/2006-08-29
日記/2006-09-01
日記/2006-09-04
日記/2006-09-07
日記/2006-09-08
日記/2006-09-09
日記/2006-09-10
日記/2006-09-15
日記/2006-09-16
日記/2006-09-18
日記/2006-09-27
日記/2006-09-28
日記/2006-10-07
日記/2006-10-08
日記/2006-10-09
日記/2006-10-10
日記/2006-10-11
日記/2006-10-12
日記/2006-10-13
日記/2006-10-14
日記/2006-10-15
日記/2006-10-16
日記/2006-10-17
日記/2006-10-18
日記/2006-10-19
日記/2006-10-21
日記/2006-10-27
日記/2006-10-28
日記/2006-10-29
日記/2006-11-08
日記/2006-11-25
日記/2006-12-01
日記/2006-12-03
日記/2006-12-04
日記/2006-12-11
日記/2006-12-13
日記/2006-12-14
日記/2006-12-23
日記/2006-12-25
日記/2006-12-27
日記/2007-01-01
日記/2007-01-02
日記/2007-01-04
日記/2007-01-08
日記/2007-01-12
日記/2007-01-13
日記/2007-01-20
日記/2007-01-22
日記/2007-01-23
日記/2007-01-27
日記/2007-01-30
日記/2007-02-01
日記/2007-02-02
日記/2007-02-03
日記/2007-02-04
日記/2007-02-06
日記/2007-02-13
日記/2007-02-22
日記/2007-02-23
日記/2007-02-25
日記/2007-02-27
日記/2007-03-01
日記/2007-03-02
日記/2007-03-03
日記/2007-03-04
日記/2007-03-07
日記/2007-03-09
日記/2007-03-10
日記/2007-03-12
日記/2007-03-13
日記/2007-03-15
日記/2007-03-16
日記/2007-03-17
日記/2007-03-18
日記/2007-03-19
日記/2007-03-21
日記/2007-03-22
日記/2007-03-24
日記/2007-03-26
日記/2007-03-28
日記/2007-03-29
日記/2007-03-31
日記/2007-04-01
日記/2007-04-02
日記/2007-04-04
日記/2007-04-05
日記/2007-04-06
日記/2007-04-07
日記/2007-04-10
日記/2007-04-12
日記/2007-04-13
日記/2007-04-14
日記/2007-04-15
日記/2007-04-18
日記/2007-04-19
日記/2007-04-20
日記/2007-04-21
日記/2007-04-23
日記/2007-04-24
日記/2007-05-01
日記/2007-05-09
日記/2007-05-10
日記/2007-05-11
日記/2007-05-13
日記/2007-05-14
日記/2007-05-16
日記/2007-05-17
日記/2007-05-18
日記/2007-05-19
日記/2007-05-22
日記/2007-05-23
日記/2007-05-25
日記/2007-05-27
日記/2007-05-29
日記/2007-05-30
日記/2007-05-31
日記/2007-06-04
日記/2007-06-06
日記/2007-06-07
日記/2007-06-08
日記/2007-06-11
日記/2007-06-12
日記/2007-06-16
日記/2007-06-17
日記/2007-06-18
日記/2007-06-20
日記/2007-06-25
日記/2007-06-26
日記/2007-06-27
日記/2007-06-28
日記/2007-06-29
日記/2007-06-30
日記/2007-07-05
日記/2007-07-06
日記/2007-07-07
日記/2007-07-11
日記/2007-07-12
日記/2007-07-13
日記/2007-07-14
日記/2007-07-15
日記/2007-07-16
日記/2007-07-22
日記/2007-07-26
日記/2007-07-27
日記/2007-08-14
日記/2007-08-16
日記/2007-08-23
日記/2007-08-29
日記/2007-08-30
日記/2007-09-02
日記/2007-09-03
日記/2007-09-05
日記/2007-09-06
日記/2007-09-07
日記/2007-09-08
日記/2007-09-10
日記/2007-09-11
日記/2007-09-14
日記/2007-09-15
日記/2007-09-16
日記/2007-09-18
日記/2007-09-25
日記/2007-10-05
日記/2007-10-07
日記/2007-10-08
日記/2007-10-09
日記/2007-10-11
日記/2007-10-12
日記/2007-10-13
日記/2007-10-15
日記/2007-10-18
日記/2007-10-20
日記/2007-10-23
日記/2007-10-24
日記/2007-10-25
日記/2007-10-26
日記/2007-10-28
日記/2007-10-29
日記/2007-10-30
日記/2007-10-31
日記/2007-11-01
日記/2007-11-05
日記/2007-11-07
日記/2007-11-08
日記/2007-11-09
日記/2007-11-12
日記/2007-11-13
日記/2007-11-19
日記/2007-11-20
日記/2007-11-22
日記/2007-11-28
日記/2007-11-30
日記/2007-12-01
日記/2007-12-02
日記/2007-12-03
日記/2007-12-05
日記/2007-12-07
日記/2007-12-08
日記/2007-12-09
日記/2007-12-12
日記/2007-12-13
日記/2007-12-14
日記/2007-12-15
日記/2007-12-16
日記/2007-12-18
日記/2007-12-20
日記/2007-12-21
日記/2007-12-22
日記/2007-12-23
日記/2007-12-24
日記/2007-12-25
日記/2007-12-26
日記/2007-12-27
日記/2007-12-28
日記/2007-12-30
日記/2007-12-31
日記/2008-01-03
日記/2008-01-04
日記/2008-01-06
日記/2008-01-07
日記/2008-01-08
日記/2008-01-09
日記/2008-01-12
日記/2008-01-13
日記/2008-01-14
日記/2008-01-15
日記/2008-01-16
日記/2008-01-17
日記/2008-01-19
日記/2008-01-20
日記/2008-01-22
日記/2008-01-24
日記/2008-01-25
日記/2008-01-28
日記/2008-01-30
日記/2008-01-31
日記/2008-02-01
日記/2008-02-02
日記/2008-02-03
日記/2008-02-05
日記/2008-02-06
日記/2008-02-09
日記/2008-02-11
日記/2008-02-15
日記/2008-02-19
日記/2008-02-20
日記/2008-02-21
日記/2008-03-02
日記/2008-03-03
日記/2008-03-06
日記/2008-03-09
日記/2008-03-10
日記/2008-03-11
日記/2008-03-12
日記/2008-03-14
日記/2008-03-15
日記/2008-03-16
日記/2008-03-18
日記/2008-03-20
日記/2008-03-23
日記/2008-03-24
日記/2008-03-25
日記/2008-03-27
日記/2008-03-29
日記/2008-03-30
日記/2008-03-31
日記/2008-04-02
日記/2008-04-05
日記/2008-04-06
日記/2008-04-08
日記/2008-04-09
日記/2008-04-12
日記/2008-04-13
日記/2008-04-15
日記/2008-04-16
日記/2008-04-17
日記/2008-04-20
日記/2008-04-26
日記/2008-04-28
日記/2008-04-29
日記/2008-04-30
日記/2008-05-02
日記/2008-05-03
日記/2008-05-04
日記/2008-05-06
日記/2008-05-11
日記/2008-05-12
日記/2008-05-13
日記/2008-05-14
日記/2008-05-15
日記/2008-05-19
日記/2008-05-24
日記/2008-05-25
日記/2008-05-26
日記/2008-05-27
日記/2008-05-28
日記/2008-05-29
日記/2008-05-30
日記/2008-05-31
日記/2008-06-01
日記/2008-06-04
日記/2008-06-05
日記/2008-06-06
日記/2008-06-07
日記/2008-06-10
日記/2008-06-12
日記/2008-06-13
日記/2008-06-14
日記/2008-06-15
日記/2008-06-17
日記/2008-06-18
日記/2008-06-19
日記/2008-06-20
日記/2008-06-21
日記/2008-06-22
日記/2008-06-23
日記/2008-06-24
日記/2008-06-25
日記/2008-06-27
日記/2008-06-28
日記/2008-07-01
日記/2008-07-03
日記/2008-07-05
日記/2008-07-06
日記/2008-07-07
日記/2008-07-08
日記/2008-07-12
日記/2008-07-13
日記/2008-07-14
日記/2008-07-15
日記/2008-07-16
日記/2008-07-17
日記/2008-07-18
日記/2008-07-20
日記/2008-07-21
日記/2008-07-23
日記/2008-07-25
日記/2008-07-26
日記/2008-08-03
日記/2008-08-05
日記/2008-08-07
日記/2008-08-09
日記/2008-08-10
日記/2008-08-11
日記/2008-08-13
日記/2008-08-16
日記/2008-08-23
日記/2008-08-24
日記/2008-08-26
日記/2008-08-27
日記/2008-08-28
日記/2008-08-29
日記/2008-08-31
日記/2008-09-04
日記/2008-09-05
日記/2008-09-13
日記/2008-09-14
日記/2008-09-21
日記/2008-09-23
日記/2008-09-24
日記/2008-09-30
日記/2008-10-01
日記/2008-10-02
日記/2008-10-06
日記/2008-10-08
日記/2008-10-09
日記/2008-10-12
日記/2008-10-16
日記/2008-10-17
日記/2008-10-18
日記/2008-10-24
日記/2008-10-25
日記/2008-10-28
日記/2008-10-30
日記/2008-10-31
日記/2008-11-01
日記/2008-11-02
日記/2008-11-03
日記/2008-11-06
日記/2008-11-07
日記/2008-11-12
日記/2008-11-13
日記/2008-11-14
日記/2008-11-15
日記/2008-11-16
日記/2008-11-17
日記/2008-11-20
日記/2008-11-21
日記/2008-11-22
日記/2008-11-29
日記/2008-12-01
日記/2008-12-02
日記/2008-12-06
日記/2008-12-07
日記/2008-12-13
日記/2008-12-26
日記/2008-12-27
日記/2008-12-28
日記/2008-12-29
日記/2008-12-30
日記/2008-12-31
日記/2009-01-01
日記/2009-01-02
日記/2009-01-03
日記/2009-01-06
日記/2009-01-08
日記/2009-01-10
日記/2009-01-11
日記/2009-01-12
日記/2009-01-14
日記/2009-01-17
日記/2009-01-18
日記/2009-01-20
日記/2009-01-21
日記/2009-01-22
日記/2009-01-24
日記/2009-01-25
日記/2009-01-28
日記/2009-01-29
日記/2009-01-30
日記/2009-01-31
日記/2009-02-01
日記/2009-02-02
日記/2009-02-03
日記/2009-02-04
日記/2009-02-05
日記/2009-02-06
日記/2009-02-07
日記/2009-02-08
日記/2009-02-11
日記/2009-02-14
日記/2009-02-15
日記/2009-02-16
日記/2009-02-17
日記/2009-02-18
日記/2009-02-20
日記/2009-02-21
日記/2009-02-22
日記/2009-02-23
日記/2009-02-24
日記/2009-02-25
日記/2009-02-26
日記/2009-02-28
日記/2009-03-01
日記/2009-03-03
日記/2009-03-04
日記/2009-03-05
日記/2009-03-06
日記/2009-03-07
日記/2009-03-08
日記/2009-03-09
日記/2009-03-10
日記/2009-03-13
日記/2009-03-14
日記/2009-03-17
日記/2009-03-18
日記/2009-03-19
日記/2009-03-20
日記/2009-03-21
日記/2009-03-23
日記/2009-03-25
日記/2009-04-11
日記/2009-04-12
日記/2009-04-14
日記/2009-04-16
日記/2009-04-17
日記/2009-04-18
日記/2009-04-19
日記/2009-04-20
日記/2009-04-21
日記/2009-04-22
日記/2009-04-28
日記/2009-04-30
日記/2009-05-01
日記/2009-05-02
日記/2009-05-03
日記/2009-05-04
日記/2009-05-07
日記/2009-05-08
日記/2009-05-09
日記/2009-05-10
日記/2009-05-14
日記/2009-05-20
日記/2009-05-21
日記/2009-05-25
日記/2009-05-26
日記/2009-05-27
日記/2009-05-28
日記/2009-05-29
日記/2009-05-31
日記/2009-06-01
日記/2009-06-04
日記/2009-06-06
日記/2009-06-07
日記/2009-06-08
日記/2009-06-11
日記/2009-06-14
日記/2009-06-15
日記/2009-06-21
日記/2009-06-23
日記/2009-06-24
日記/2009-06-27
日記/2009-07-12
日記/2009-07-13
日記/2009-07-20
日記/2009-07-24
日記/2009-07-25
日記/2009-08-01
日記/2009-08-02
日記/2009-08-08
日記/2009-08-11
日記/2009-08-23
日記/2009-08-29
日記/2009-09-06
日記/2009-09-27
日記/2009-10-11
日記/2009-10-19
日記/2009-10-24
日記/2009-10-25
日記/2009-10-28
日記/2009-10-30
日記/2009-10-31
日記/2009-11-01
日記/2009-11-02
日記/2009-11-03
日記/2009-11-07
日記/2009-11-08
日記/2009-11-22
日記/2009-11-25
日記/2009-11-28
日記/2009-12-02
日記/2009-12-04
日記/2009-12-07
日記/2009-12-08
日記/2009-12-10
日記/2009-12-12
日記/2009-12-13
日記/2009-12-15
日記/2009-12-18
日記/2009-12-19
日記/2009-12-22
日記/2009-12-25
日記/2009-12-26
日記/2009-12-27
日記/2009-12-28
日記/2009-12-29
日記/2009-12-30
日記/2009-12-31
日記/2010-01-01
日記/2010-01-02
日記/2010-01-03
日記/2010-01-04
日記/2010-01-05
日記/2010-01-06
日記/2010-01-07
日記/2010-01-09
日記/2010-01-10
日記/2010-01-11
日記/2010-01-12
日記/2010-01-13
日記/2010-01-14
日記/2010-01-16
日記/2010-01-17
日記/2010-01-19
日記/2010-01-20
日記/2010-01-21
日記/2010-01-23
日記/2010-01-25
日記/2010-01-29
日記/2010-02-07
日記/2010-02-14
日記/2010-03-02
日記/2010-03-05
日記/2010-03-07
日記/2010-03-08
日記/2010-03-10
日記/2010-03-11
日記/2010-03-12
日記/2010-03-13
日記/2010-03-14
日記/2010-03-15
日記/2010-03-17
日記/2010-03-20
日記/2010-03-21
日記/2010-03-22
日記/2010-03-23
日記/2010-03-24
日記/2010-03-25
日記/2010-03-27
日記/2010-03-28
日記/2010-03-29
日記/2010-04-01
日記/2010-04-02
日記/2010-04-03
日記/2010-04-04
日記/2010-04-05
日記/2010-04-06
日記/2010-04-09
日記/2010-04-10
日記/2010-04-11
日記/2010-04-13
日記/2010-04-14
日記/2010-04-15
日記/2010-04-25
日記/2010-04-28
日記/2010-04-30
日記/2010-05-01
日記/2010-05-02
日記/2010-05-03
日記/2010-05-04
日記/2010-05-05
日記/2010-05-06
日記/2010-05-07
日記/2010-05-09
日記/2010-05-10
日記/2010-05-11
日記/2010-05-13
日記/2010-05-14
日記/2010-05-15
日記/2010-05-16
日記/2010-05-17
日記/2010-05-19
日記/2010-05-20
日記/2010-05-21
日記/2010-05-26
日記/2010-05-27
日記/2010-05-29
日記/2010-05-31
日記/2010-06-02
日記/2010-06-05
日記/2010-06-07
日記/2010-06-18
日記/2010-06-19
日記/2010-06-26
日記/2010-06-28
日記/2010-07-01
日記/2010-07-04
日記/2010-07-10
日記/2010-07-12
日記/2010-07-18
日記/2010-07-19
日記/2010-07-20
日記/2010-07-21
日記/2010-07-25
日記/2010-07-27
日記/2010-07-30
日記/2010-07-31
日記/2010-08-01
日記/2010-08-07
日記/2010-08-09
日記/2010-08-14
日記/2010-08-17
日記/2010-08-19
日記/2010-08-28
日記/2010-08-31
日記/2010-09-01
日記/2010-09-02
日記/2010-09-04
日記/2010-09-05
書きたいこと
書評
本当にあった怖いコード
本当にあった怖いコード/1
本当にあった怖いコード/10
本当にあった怖いコード/11
本当にあった怖いコード/12
本当にあった怖いコード/13
本当にあった怖いコード/14
本当にあった怖いコード/2
本当にあった怖いコード/3
本当にあった怖いコード/4
本当にあった怖いコード/5
本当にあった怖いコード/6
本当にあった怖いコード/7
本当にあった怖いコード/8
本当にあった怖いコード/9
正規表現
汎用jpドメイン価格調査
現在の課題
環境変数/LD_LIBRARY_PATH
直収電話サービス調査
練習用ページ
練習用ページ/B0009RPCVQ
自然言語処理
負荷テストメモ
赤黒木
量子力学メモ
開発規約
開発規約/1
開発規約/10
開発規約/100
開発規約/101
開発規約/102
開発規約/103
開発規約/104
開発規約/105
開発規約/106
開発規約/107
開発規約/108
開発規約/109
開発規約/11
開発規約/110
開発規約/111
開発規約/112
開発規約/113
開発規約/114
開発規約/115
開発規約/116
開発規約/117
開発規約/118
開発規約/119
開発規約/12
開発規約/120
開発規約/121
開発規約/122
開発規約/123
開発規約/124
開発規約/125
開発規約/126
開発規約/127
開発規約/128
開発規約/129
開発規約/13
開発規約/130
開発規約/131
開発規約/132
開発規約/133
開発規約/134
開発規約/135
開発規約/136
開発規約/137
開発規約/138
開発規約/139
開発規約/14
開発規約/140
開発規約/141
開発規約/142
開発規約/143
開発規約/144
開発規約/145
開発規約/146
開発規約/147
開発規約/148
開発規約/149
開発規約/15
開発規約/150
開発規約/151
開発規約/152
開発規約/153
開発規約/154
開発規約/155
開発規約/156
開発規約/157
開発規約/158
開発規約/159
開発規約/16
開発規約/160
開発規約/161
開発規約/162
開発規約/163
開発規約/164
開発規約/165
開発規約/166
開発規約/167
開発規約/168
開発規約/169
開発規約/17
開発規約/170
開発規約/171
開発規約/172
開発規約/173
開発規約/174
開発規約/175
開発規約/18
開発規約/19
開発規約/2
開発規約/20
開発規約/21
開発規約/22
開発規約/23
開発規約/24
開発規約/25
開発規約/26
開発規約/27
開発規約/28
開発規約/29
開発規約/3
開発規約/30
開発規約/31
開発規約/32
開発規約/33
開発規約/34
開発規約/35
開発規約/36
開発規約/37
開発規約/38
開発規約/39
開発規約/4
開発規約/40
開発規約/41
開発規約/42
開発規約/43
開発規約/44
開発規約/45
開発規約/46
開発規約/47
開発規約/48
開発規約/49
開発規約/5
開発規約/50
開発規約/51
開発規約/52
開発規約/53
開発規約/54
開発規約/55
開発規約/56
開発規約/57
開発規約/58
開発規約/59
開発規約/6
開発規約/60
開発規約/61
開発規約/62
開発規約/63
開発規約/64
開発規約/65
開発規約/66
開発規約/67
開発規約/68
開発規約/69
開発規約/7
開発規約/70
開発規約/71
開発規約/72
開発規約/73
開発規約/74
開発規約/75
開発規約/76
開発規約/77
開発規約/78
開発規約/79
開発規約/8
開発規約/80
開発規約/81
開発規約/82
開発規約/83
開発規約/84
開発規約/85
開発規約/86
開発規約/87
開発規約/88
開発規約/89
開発規約/9
開発規約/90
開発規約/91
開発規約/92
開発規約/93
開発規約/94
開発規約/95
開発規約/96
開発規約/97
開発規約/98
開発規約/99
雑感
雑感/DBアプリはどこまで簡単にできるか
雑感/オブジェクト指向懐疑論
雑感/スレッドの安全な停止方法
雑感/ドメイン名に見る仕様定義の失敗
雑感/仕事の進め方
雑感/信頼できるネットワーク
雑感/情報のまとめ方
雑感/文字列クラスはどうあるべきか
雑感/書かないで済むとは
電子工作
[[FreeBSD/ZFS]] * ZFS boot の設定方法 [#b22f8080] - 参考 http://wiki.freebsd.org/RootOnZFS -- 以下に書いてあることはほとんど同じなので、こっち見たほうが早いかもしれない。 - ここでは GPT ディスクを使う。 -- GPT では OS のデュアルブート不可。どうしてもやりたい場合は GPT 対応のブートローダが必要。(Grub2 とか) - Swap は GPT パーティションとする。 -- ZFS では Swap 領域をカーネルダンプに使うことができない。 - zfs set mountpoint は原則使わない。/etc/fstab を使用する。 -- 自動マウントにしていると、いつマウントされるのか制御できず余計な時にマウントされて非常に厄介なため。 -- ただし、ファイルシステム階層で自動マウントしたい場合は zfs set mountpoint を使う。(/usr/home/* 配下とか。) - telnetd を一時的に動かして、外部の端末からコマンドを投入するのが得策かと思う。 -- Fixit 環境で sshd を動かす手順は検討中。ホスト鍵作成あたりが厄介。 * 下準備 [#na5a4827] - CDROM/DVD か USB にて起動。 - 以下、自分の環境に合わせて変更する。 -- Country Selection --- 110 Japan を選択する。 -- System Console Keymap --- Japanese 106 を選択する。 - sysinstall Main Menu -- Fixit を選択する。 - Plese choose a fixit option -- 起動したメディアに合わせて CDROM/DVD か USB を選択。 - dmesg から接続したディスクを検索する。 # dmesg | grep "MB <" ad0: 20480MB <VBOX HARDDISK 1.0> at ata0-master UDMA33 * パーティションを作成し、ZFS プールを作成する。 [#h11628e6] ** シングルディスク構成の場合 [#w3643386] - パーティションテーブルを初期化する。(これは必要に応じて。メディアの認識の都合で zfs.ko の読み込み前であるべき。) # dd if=/dev/zero of=/dev/ad0 bs=1m count=1 - GPT パーティションテーブルを作成する # gpart create -s gpt ad0 - ブートパーティションを作成する。 # gpart add -s 64K -t freebsd-boot ad0 - Swap パーティションを作成する。(容量はRAMの2~4倍程度取っておく。後から拡張困難なので注意。) # gpart add -s 4G -t freebsd-swap -l swap0 ad0 - 残りを ZFS パーティションとして作成する。 # gpart add -t freebsd-zfs -l disk0 ad0 - Protected MBR(pmbr) と gptzfsboot ローダを入れる。 # gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad0 ad0 has bootcode -- -i 1 は 1番目のパーティション(freebsd-boot)を指す。 - ZFS カーネルモジュールを読み込む # kldload /mnt2/boot/kernel/opensolaris.ko # kldload /mnt2/boot/kernel/zfs.ko - /boot/zfs/zfs.cache を残すために、/boot/zfs ディレクトリを作る。 # mkdir /boot/zfs - ZFS プールを作成する。 # zpool create zroot /dev/gpt/disk0 -- zroot という名前は好きなように。 -- パーティションを切り直した時に、前のプール情報が残っていてエラーになってしまう場合がある。その時は破棄して作り直す。 # zpool list # zpool destroy zroot ** ミラー構成の場合 [#yba6fb8f] - 2つのディスクでまったく同じことをやる。(ad0 で実行した後、ad1 で置き換えて実行する) -- GPT パーティションテーブルを作成する # gpart create -s gpt ad0 # gpart create -s gpt ad1 -- パーティションテーブルを初期化する。(これは必要に応じて。メディアの認識の都合で zfs.ko の読み込み前であるべき。) # dd if=/dev/zero of=/dev/ad0 bs=1m count=1 # dd if=/dev/zero of=/dev/ad1 bs=1m count=1 -- ブートパーティションを作成する。 # gpart add -s 64K -t freebsd-boot ad0 # gpart add -s 64K -t freebsd-boot ad1 -- Swap パーティションを作成する。(容量はRAMの2~4倍程度取っておく。後から拡張困難なので注意。) # gpart add -s 4G -t freebsd-swap -l swap0 ad0 # gpart add -s 4G -t freebsd-swap -l swap1 ad1 -- 残りを ZFS パーティションとして作成する。 # gpart add -t freebsd-zfs -l disk0 ad0 # gpart add -t freebsd-zfs -l disk1 ad1 -- Protected MBR(pmbr) と gptzfsboot ローダを入れる。 # gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad0 # gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad1 --- -i 1 は 1番目のパーティション(freebsd-boot)を指す。 - ZFS カーネルモジュールを読み込む # kldload /mnt2/boot/kernel/opensolaris.ko # kldload /mnt2/boot/kernel/zfs.ko - /boot/zfs/zfs.cache を残すために、/boot/zfs ディレクトリを作る。 # mkdir /boot/zfs - ZFS プールを作成する。 # zpool create zroot mirror /dev/gpt/disk0 /dev/gpt/disk1 -- zroot という名前は好きなように。 -- パーティションを切り直した時に、前のプール情報が残っていてエラーになってしまう場合がある。その時は破棄して作り直す。 # zpool list # zpool destroy zroot * ZFS でファイルシステムを作成する。 [#h6f325c5] ** 方針 [#gb06f6df] - /tmp は tmpfs を使う。 - %%/var/run は tmpfs を使う。%% 一部のアプリが永続的なディレクトリ構成をここに置くため、tmpfs はダメ。 - ZFS はスナップショットをまとめて取りたい集合で切っていく。 - zroot/system 配下に OS のファイルシステム /, /usr, /var を配置する。 - / は zroot/system/sysroot, /usr は zroot/system/usr で割り当てる。こう分離しないと / の差し替えが非常に困難になる。 - zroot/home としてユーザーのホームディレクトリを作成する。 ** 手順 [#t7f08187] - チェックサムは fletcher4 を使う。(デフォルトは fletcher2。スピードより安全を取るなら sha256。) # zfs set checksum=fletcher4 zroot - スナップショットにごみがたまるだけなので atime は設定しない。(ごく稀にこれがダメなアプリがある模様なので要注意) # zfs set atime=off zroot - zroot のマウントポイントを legacy にする。(ZFS の自動マウントでひどい目に遭ったので ZFS のマウントは当てにしない。) # zfs set mountpoint=legacy zroot - 各ファイルシステムを切る。 # zfs create zroot/system # zfs create zroot/system/sysroot # zfs create zroot/system/usr # zfs create zroot/system/var # zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/system/var/crash # zfs create -o exec=off -o setuid=off zroot/system/var/db # zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/system/var/db/pkg # zfs create -o exec=off -o setuid=off zroot/system/var/empty # zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/system/var/log # zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/system/var/mail # zfs create zroot/system/var/run # zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/system/var/tmp # zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/ports # zfs create -o exec=off -o setuid=off zroot/ports/distfiles # zfs create -o exec=off -o setuid=off zroot/ports/packages # zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/src # zfs create zroot/home - ブートするファイルシステムを設定する。(/boot のありか) # zpool set bootfs=zroot/system/sysroot zroot - /tmproot 配下に仮のファイルシステムを作成する。 # mkdir /tmproot # mount -t zfs zroot/system/sysroot /tmproot # mkdir /tmproot/tmp # chmod 1777 /tmp # mkdir /tmproot/usr # mount -t zfs zroot/system/usr /tmproot/usr # mkdir /tmproot/usr/home # mount -t zfs zroot/home /tmproot/usr/home # ln -s /usr/home /tmproot/home # mkdir /tmproot/usr/ports # mount -t zfs zroot/ports /tmproot/usr/ports # mkdir /tmproot/usr/ports/distfiles # mount -t zfs zroot/ports/distfiles /tmproot/usr/ports/distfiles # mkdir /tmproot/usr/ports/packages # mount -t zfs zroot/ports/packages /tmproot/usr/ports/packages # mkdir /tmproot/usr/src # mount -t zfs zroot/src /tmproot/usr/src # mkdir /tmproot/var # mount -t zfs zroot/system/var /tmproot/var # mkdir /tmproot/var/crash # mount -t zfs zroot/system/var/crash /tmproot/var/crash # mkdir /tmproot/var/db # mount -t zfs zroot/system/var/db /tmproot/var/db # mkdir /tmproot/var/db/pkg # mount -t zfs zroot/system/var/db/pkg /tmproot/var/db/pkg # mkdir /tmproot/var/empty # mount -t zfs zroot/system/var/empty /tmproot/var/empty # mkdir /tmproot/var/log # mount -t zfs zroot/system/var/log /tmproot/var/log # mkdir /tmproot/var/mail # mount -t zfs zroot/system/var/mail /tmproot/var/mail # mkdir /tmproot/var/run # mount -t zfs zroot/system/var/run /tmproot/var/run # mkdir /tmproot/var/tmp # mount -t zfs zroot/system/var/tmp /tmproot/var/tmp # chmod 1777 /tmproot/var/tmp - FreeBSD の各種ファイルを入れる # cd /dist/8.0-* # export DESTDIR=/tmproot # for dir in base catpages dict doc games info lib32 manpages ports # do # (cd $dir ; ./install.sh) ; # done # cd src ; ./install.sh all # cd ../kernels ; ./install.sh generic # cd /tmproot/boot ; cp -Rlp GENERIC/* /tmproot/boot/kernel/ - /var/empty を read only にする。 # zfs set readonly=on zroot/system/var/empty - chroot する。 # chroot /tmproot - /etc/fstab に以下を入れる # Device Mountpoint FStype Options Dump Pass# /dev/gpt/swap0 none swap sw 0 0 zroot/system/usr /usr zfs rw 0 0 zroot/system/var /var zfs rw 0 0 zroot/system/var/crash /var/crash zfs rw 0 0 zroot/system/var/db /var/db zfs rw 0 0 zroot/system/var/db/pkg /var/db/pkg zfs rw 0 0 zroot/system/var/empty /var/empty zfs ro 0 0 zroot/system/var/log /var/log zfs rw 0 0 zroot/system/var/mail /var/mail zfs rw 0 0 zroot/system/var/run /var/run zfs rw 0 0 zroot/system/var/tmp /var/tmp zfs rw 0 0 tmpfs /tmp tmpfs rw,mode=1777,size=1073741824 0 0 tmpfs /ports/tmp tmpfs rw,size=1073741824 0 0 zroot/ports /usr/ports zfs rw 0 0 zroot/ports/distfiles /usr/ports/distfiles zfs rw 0 0 zroot/ports/packages /usr/ports/packages zfs rw 0 0 zroot/src /usr/src zfs rw 0 0 zroot/mydata /usr/mydata zfs rw 0 0 - /etc/rc.conf を設定する。(hostname とか ifconfig はシステムに応じて変更を。) echo 'zfs_enable="YES"' >> /etc/rc.conf echo 'hostname="zfsroot.localdomain"' >> /etc/rc.conf echo 'ifconfig_re0="DHCP"' >> /etc/rc.conf - /boot/loader.conf を設定する。 echo 'zfs_load="YES"' >> /boot/loader.conf echo 'vfs.root.mountfrom="zfs:zroot/system/sysroot"' >> /boot/loader.conf - 7.0~7.2R,8.0R では以下の手順でブートローダの再構築が必要 # echo 'LOADER_ZFS_SUPPORT=YES' >> /etc/src.conf # mount -t devfs devfs /dev # export DESTDIR="" # cd /usr/src/sys/boot # make obj # make depend # make # cd i386/loader # make install - aliases を再作成。(必要?) # cd /etc/mail # make aliases - /dev はもう不要なのでアンマウント # umount /dev - chroot 環境を脱出 # exit - ZFS の情報をブートローダ用にコピー # cp /boot/zfs/zpool.cache /tmproot/boot/zfs/zpool.cache -- mkdir /boot/zfs を忘れているとできない。その場合は以下で作り直し。 # mkdir /boot/zfs; zfs export zroot; zfs import zroot - Fixit 環境を出る。 # exit - 再起動する。 - シングルユーザーでログインする。 - /usr/home を自動マウントにする。 # zfs set mountpoint=/usr/home zroot/home - ユーザーを追加するときには、先にファイルシステムを切り、ユーザー単位でのスナップショット権限を与える。 # zfs create zroot/home/alice # adduser ... # zfs allow alice mount,create,snapshot,rename,destroy,clone,promote,send,receive zroot/home/alice * 謎のスクリプト [#c8adcb36] 動作保証なし。 Use at your own risk. #!/bin/sh if [ $# -ne 4 ]; then echo "usage: create_ZFS_root_single.sh DISK0 SWAP_SIZE GPT_DISK0_NAME POOL_NAME" echo "ex. ./create_ZFS_root_single.sh ad0 2g disk0 zroot" exit 1 fi DISK0=$1 SWAP_SIZE=$2 GPT_DISK0_NAME=$3 POOL_NAME=$4 echo "ERASE ALL DATA ON $DISK0. OK? enter 'yes'" read ANSWER if [ "$ANSWER" != "yes" ]; then echo "bye!" exit 2 fi echo Delete partition info. dd if=/dev/zero of=/dev/$DISK0 bs=1m count=1 echo Create partition. gpart create -s gpt $DISK0 gpart add -s 64K -t freebsd-boot $DISK0 gpart add -s $SWAP_SIZE -t freebsd-boot $DISK0 gpart add -t freebsd-zfs -l $GPT_DISK0_NAME $DISK0 gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 $DISK0 echo Load ZFS module kldload /mnt2/boot/kernel/opensolaris.ko kldload /mnt2/boot/kernel/zfs.ko echo ZFS check zpool import echo "NO POOL CHECK OK? enter 'yes'" read ANSWER if [ "$ANSWER" != "yes" ]; then echo "bye!" exit 2 fi echo create ZFS pool mkdir /boot/zfs zpool create $POOL_NAME /dev/gpt/$GPT_DISK0_NAME echo create ZFS filesystem mkdir /tmproot zfs set checksum=fletcher4 $POOL_NAME zfs set atime=off $POOL_NAME zfs set mountpoint=legacy $POOL_NAME zfs create ${POOL_NAME}/system zfs create ${POOL_NAME}/system/sysroot zfs create ${POOL_NAME}/system/usr zfs create ${POOL_NAME}/system/var zfs create -o compression=lzjb -o exec=off -o setuid=off ${POOL_NAME}/system/var/crash zfs create -o exec=off -o setuid=off ${POOL_NAME}/system/var/db zfs create -o compression=lzjb -o exec=on -o setuid=off ${POOL_NAME}/system/var/db/pkg zfs create -o exec=off -o setuid=off ${POOL_NAME}/system/var/empty zfs create -o compression=lzjb -o exec=off -o setuid=off ${POOL_NAME}/system/var/log zfs create -o compression=lzjb -o exec=off -o setuid=off ${POOL_NAME}/system/var/mail zfs create -o compression=lzjb -o exec=on -o setuid=off ${POOL_NAME}/system/var/tmp zfs create -o compression=lzjb -o exec=on -o setuid=off ${POOL_NAME}/ports zfs create -o exec=off -o setuid=off ${POOL_NAME}/ports/distfiles zfs create -o exec=off -o setuid=off ${POOL_NAME}/ports/packages zfs create -o compression=lzjb -o exec=off -o setuid=off ${POOL_NAME}/src zfs create ${POOL_NAME}/home zpool set bootfs=${POOL_NAME}/system/sysroot ${POOL_NAME} echo mount ZFS filesystem mount -t zfs ${POOL_NAME}/system/sysroot /tmproot mkdir /tmproot/tmp chmod 1777 /tmp mkdir /tmproot/usr mount -t zfs ${POOL_NAME}/system/usr /tmproot/usr mkdir /tmproot/usr/home mount -t zfs ${POOL_NAME}/home /tmproot/usr/home ln -s /usr/home /tmproot/home mkdir /tmproot/usr/ports mount -t zfs ${POOL_NAME}/ports /tmproot/usr/ports mkdir /tmproot/usr/ports/distfiles mount -t zfs ${POOL_NAME}/ports/distfiles /tmproot/usr/ports/distfiles mkdir /tmproot/usr/ports/packages mount -t zfs ${POOL_NAME}/ports/packages /tmproot/usr/ports/packages mkdir /tmproot/usr/src mount -t zfs ${POOL_NAME}/src /tmproot/usr/src mkdir /tmproot/var mount -t zfs ${POOL_NAME}/system/var /tmproot/var mkdir /tmproot/var/crash mount -t zfs ${POOL_NAME}/system/var/crash /tmproot/var/crash mkdir /tmproot/var/db mount -t zfs ${POOL_NAME}/system/var/db /tmproot/var/db mkdir /tmproot/var/db/pkg mount -t zfs ${POOL_NAME}/system/var/db/pkg /tmproot/var/db/pkg mkdir /tmproot/var/empty mount -t zfs ${POOL_NAME}/system/var/empty /tmproot/var/empty mkdir /tmproot/var/log mount -t zfs ${POOL_NAME}/system/var/log /tmproot/var/log mkdir /tmproot/var/mail mount -t zfs ${POOL_NAME}/system/var/mail /tmproot/var/mail mkdir /tmproot/var/tmp mount -t zfs ${POOL_NAME}/system/var/tmp /tmproot/var/tmp chmod 1777 /tmproot/var/tmp echo "Extract FreeBSD distribution. OK? enter 'yes'" read ANSWER if [ "$ANSWER" != "yes" ]; then echo "bye!" exit 2 fi echo extract FreeBSD distribution cd /dist/8.0-* export DESTDIR=/tmproot for dir in base catpages dict doc games info lib32 manpages ports do (cd $dir ; ./install.sh) ; done cd src ; ./install.sh all cd ../kernels ; ./install.sh generic cd /tmproot/boot ; cp -Rlp GENERIC/* /tmproot/boot/kernel/ echo set configuration zfs set readonly=on ${POOL_NAME}/system/var/empty #exit 1 cat <<CHROOTSCRIPT_EOT >/tmproot/zfssinglechroot.sh #!/bin/sh cat <<EOT >> /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/gpt/swap0 none swap sw 0 0 zroot/system/sysroot / zfs rw 0 0 zroot/system/usr /usr zfs rw 0 0 zroot/ports /usr/ports zfs rw 0 0 zroot/ports/distfiles /usr/ports/distfiles zfs rw 0 0 zroot/ports/packages /usr/ports/packages zfs rw 0 0 zroot/src /usr/src zfs rw 0 0 zroot/system/var /var zfs rw 0 0 zroot/system/var/crash /var/crash zfs rw 0 0 zroot/system/var/db /var/db zfs rw 0 0 zroot/system/var/db/pkg /var/db/pkg zfs rw 0 0 zroot/system/var/empty /var/empty zfs rw 0 0 zroot/system/var/log /var/log zfs rw 0 0 zroot/system/var/mail /var/mail zfs rw 0 0 tmpfs /var/run tmpfs rw,size=10000000 0 0 zroot/system/var/tmp /var/tmp zfs rw 0 0 tmpfs /tmp tmpfs rw,mode=1777,size=1073741824 0 0 tmpfs /ports/tmp tmpfs rw,size=1073741824 0 0 EOT echo 'zfs_enable="YES"' >> /etc/rc.conf echo 'hostname="zfsroot.localdomain"' >> /etc/rc.conf echo 'ifconfig_re0="DHCP"' >> /etc/rc.conf echo 'zfs_load="YES"' >> /boot/loader.conf echo 'vfs.root.mountfrom="zfs:zroot/system/sysroot"' >> /boot/loader.conf echo reinstall boot loader echo 'LOADER_ZFS_SUPPORT=YES' >> /etc/src.conf mount -t devfs devfs /dev export DESTDIR="" cd /usr/src/sys/boot make obj make depend make cd i386/loader make install cd /etc/mail make aliases umount /dev exit CHROOTSCRIPT_EOT chmod +x /tmproot/zfssinglechroot.sh chroot /tmproot /zfssinglechroot.sh rm /tmproot/zfssinglechroot.sh cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache echo Exit Fixit and reboot, then enter single mode. echo and then enter follow command. echo # zfs set mountpoint=/usr/home zroot/home echo # exit
画像と同じ番号を入力 :
タイムスタンプを変更しない
[[FreeBSD/ZFS]] * ZFS boot の設定方法 [#b22f8080] - 参考 http://wiki.freebsd.org/RootOnZFS -- 以下に書いてあることはほとんど同じなので、こっち見たほうが早いかもしれない。 - ここでは GPT ディスクを使う。 -- GPT では OS のデュアルブート不可。どうしてもやりたい場合は GPT 対応のブートローダが必要。(Grub2 とか) - Swap は GPT パーティションとする。 -- ZFS では Swap 領域をカーネルダンプに使うことができない。 - zfs set mountpoint は原則使わない。/etc/fstab を使用する。 -- 自動マウントにしていると、いつマウントされるのか制御できず余計な時にマウントされて非常に厄介なため。 -- ただし、ファイルシステム階層で自動マウントしたい場合は zfs set mountpoint を使う。(/usr/home/* 配下とか。) - telnetd を一時的に動かして、外部の端末からコマンドを投入するのが得策かと思う。 -- Fixit 環境で sshd を動かす手順は検討中。ホスト鍵作成あたりが厄介。 * 下準備 [#na5a4827] - CDROM/DVD か USB にて起動。 - 以下、自分の環境に合わせて変更する。 -- Country Selection --- 110 Japan を選択する。 -- System Console Keymap --- Japanese 106 を選択する。 - sysinstall Main Menu -- Fixit を選択する。 - Plese choose a fixit option -- 起動したメディアに合わせて CDROM/DVD か USB を選択。 - dmesg から接続したディスクを検索する。 # dmesg | grep "MB <" ad0: 20480MB <VBOX HARDDISK 1.0> at ata0-master UDMA33 * パーティションを作成し、ZFS プールを作成する。 [#h11628e6] ** シングルディスク構成の場合 [#w3643386] - パーティションテーブルを初期化する。(これは必要に応じて。メディアの認識の都合で zfs.ko の読み込み前であるべき。) # dd if=/dev/zero of=/dev/ad0 bs=1m count=1 - GPT パーティションテーブルを作成する # gpart create -s gpt ad0 - ブートパーティションを作成する。 # gpart add -s 64K -t freebsd-boot ad0 - Swap パーティションを作成する。(容量はRAMの2~4倍程度取っておく。後から拡張困難なので注意。) # gpart add -s 4G -t freebsd-swap -l swap0 ad0 - 残りを ZFS パーティションとして作成する。 # gpart add -t freebsd-zfs -l disk0 ad0 - Protected MBR(pmbr) と gptzfsboot ローダを入れる。 # gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad0 ad0 has bootcode -- -i 1 は 1番目のパーティション(freebsd-boot)を指す。 - ZFS カーネルモジュールを読み込む # kldload /mnt2/boot/kernel/opensolaris.ko # kldload /mnt2/boot/kernel/zfs.ko - /boot/zfs/zfs.cache を残すために、/boot/zfs ディレクトリを作る。 # mkdir /boot/zfs - ZFS プールを作成する。 # zpool create zroot /dev/gpt/disk0 -- zroot という名前は好きなように。 -- パーティションを切り直した時に、前のプール情報が残っていてエラーになってしまう場合がある。その時は破棄して作り直す。 # zpool list # zpool destroy zroot ** ミラー構成の場合 [#yba6fb8f] - 2つのディスクでまったく同じことをやる。(ad0 で実行した後、ad1 で置き換えて実行する) -- GPT パーティションテーブルを作成する # gpart create -s gpt ad0 # gpart create -s gpt ad1 -- パーティションテーブルを初期化する。(これは必要に応じて。メディアの認識の都合で zfs.ko の読み込み前であるべき。) # dd if=/dev/zero of=/dev/ad0 bs=1m count=1 # dd if=/dev/zero of=/dev/ad1 bs=1m count=1 -- ブートパーティションを作成する。 # gpart add -s 64K -t freebsd-boot ad0 # gpart add -s 64K -t freebsd-boot ad1 -- Swap パーティションを作成する。(容量はRAMの2~4倍程度取っておく。後から拡張困難なので注意。) # gpart add -s 4G -t freebsd-swap -l swap0 ad0 # gpart add -s 4G -t freebsd-swap -l swap1 ad1 -- 残りを ZFS パーティションとして作成する。 # gpart add -t freebsd-zfs -l disk0 ad0 # gpart add -t freebsd-zfs -l disk1 ad1 -- Protected MBR(pmbr) と gptzfsboot ローダを入れる。 # gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad0 # gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad1 --- -i 1 は 1番目のパーティション(freebsd-boot)を指す。 - ZFS カーネルモジュールを読み込む # kldload /mnt2/boot/kernel/opensolaris.ko # kldload /mnt2/boot/kernel/zfs.ko - /boot/zfs/zfs.cache を残すために、/boot/zfs ディレクトリを作る。 # mkdir /boot/zfs - ZFS プールを作成する。 # zpool create zroot mirror /dev/gpt/disk0 /dev/gpt/disk1 -- zroot という名前は好きなように。 -- パーティションを切り直した時に、前のプール情報が残っていてエラーになってしまう場合がある。その時は破棄して作り直す。 # zpool list # zpool destroy zroot * ZFS でファイルシステムを作成する。 [#h6f325c5] ** 方針 [#gb06f6df] - /tmp は tmpfs を使う。 - %%/var/run は tmpfs を使う。%% 一部のアプリが永続的なディレクトリ構成をここに置くため、tmpfs はダメ。 - ZFS はスナップショットをまとめて取りたい集合で切っていく。 - zroot/system 配下に OS のファイルシステム /, /usr, /var を配置する。 - / は zroot/system/sysroot, /usr は zroot/system/usr で割り当てる。こう分離しないと / の差し替えが非常に困難になる。 - zroot/home としてユーザーのホームディレクトリを作成する。 ** 手順 [#t7f08187] - チェックサムは fletcher4 を使う。(デフォルトは fletcher2。スピードより安全を取るなら sha256。) # zfs set checksum=fletcher4 zroot - スナップショットにごみがたまるだけなので atime は設定しない。(ごく稀にこれがダメなアプリがある模様なので要注意) # zfs set atime=off zroot - zroot のマウントポイントを legacy にする。(ZFS の自動マウントでひどい目に遭ったので ZFS のマウントは当てにしない。) # zfs set mountpoint=legacy zroot - 各ファイルシステムを切る。 # zfs create zroot/system # zfs create zroot/system/sysroot # zfs create zroot/system/usr # zfs create zroot/system/var # zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/system/var/crash # zfs create -o exec=off -o setuid=off zroot/system/var/db # zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/system/var/db/pkg # zfs create -o exec=off -o setuid=off zroot/system/var/empty # zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/system/var/log # zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/system/var/mail # zfs create zroot/system/var/run # zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/system/var/tmp # zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/ports # zfs create -o exec=off -o setuid=off zroot/ports/distfiles # zfs create -o exec=off -o setuid=off zroot/ports/packages # zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/src # zfs create zroot/home - ブートするファイルシステムを設定する。(/boot のありか) # zpool set bootfs=zroot/system/sysroot zroot - /tmproot 配下に仮のファイルシステムを作成する。 # mkdir /tmproot # mount -t zfs zroot/system/sysroot /tmproot # mkdir /tmproot/tmp # chmod 1777 /tmp # mkdir /tmproot/usr # mount -t zfs zroot/system/usr /tmproot/usr # mkdir /tmproot/usr/home # mount -t zfs zroot/home /tmproot/usr/home # ln -s /usr/home /tmproot/home # mkdir /tmproot/usr/ports # mount -t zfs zroot/ports /tmproot/usr/ports # mkdir /tmproot/usr/ports/distfiles # mount -t zfs zroot/ports/distfiles /tmproot/usr/ports/distfiles # mkdir /tmproot/usr/ports/packages # mount -t zfs zroot/ports/packages /tmproot/usr/ports/packages # mkdir /tmproot/usr/src # mount -t zfs zroot/src /tmproot/usr/src # mkdir /tmproot/var # mount -t zfs zroot/system/var /tmproot/var # mkdir /tmproot/var/crash # mount -t zfs zroot/system/var/crash /tmproot/var/crash # mkdir /tmproot/var/db # mount -t zfs zroot/system/var/db /tmproot/var/db # mkdir /tmproot/var/db/pkg # mount -t zfs zroot/system/var/db/pkg /tmproot/var/db/pkg # mkdir /tmproot/var/empty # mount -t zfs zroot/system/var/empty /tmproot/var/empty # mkdir /tmproot/var/log # mount -t zfs zroot/system/var/log /tmproot/var/log # mkdir /tmproot/var/mail # mount -t zfs zroot/system/var/mail /tmproot/var/mail # mkdir /tmproot/var/run # mount -t zfs zroot/system/var/run /tmproot/var/run # mkdir /tmproot/var/tmp # mount -t zfs zroot/system/var/tmp /tmproot/var/tmp # chmod 1777 /tmproot/var/tmp - FreeBSD の各種ファイルを入れる # cd /dist/8.0-* # export DESTDIR=/tmproot # for dir in base catpages dict doc games info lib32 manpages ports # do # (cd $dir ; ./install.sh) ; # done # cd src ; ./install.sh all # cd ../kernels ; ./install.sh generic # cd /tmproot/boot ; cp -Rlp GENERIC/* /tmproot/boot/kernel/ - /var/empty を read only にする。 # zfs set readonly=on zroot/system/var/empty - chroot する。 # chroot /tmproot - /etc/fstab に以下を入れる # Device Mountpoint FStype Options Dump Pass# /dev/gpt/swap0 none swap sw 0 0 zroot/system/usr /usr zfs rw 0 0 zroot/system/var /var zfs rw 0 0 zroot/system/var/crash /var/crash zfs rw 0 0 zroot/system/var/db /var/db zfs rw 0 0 zroot/system/var/db/pkg /var/db/pkg zfs rw 0 0 zroot/system/var/empty /var/empty zfs ro 0 0 zroot/system/var/log /var/log zfs rw 0 0 zroot/system/var/mail /var/mail zfs rw 0 0 zroot/system/var/run /var/run zfs rw 0 0 zroot/system/var/tmp /var/tmp zfs rw 0 0 tmpfs /tmp tmpfs rw,mode=1777,size=1073741824 0 0 tmpfs /ports/tmp tmpfs rw,size=1073741824 0 0 zroot/ports /usr/ports zfs rw 0 0 zroot/ports/distfiles /usr/ports/distfiles zfs rw 0 0 zroot/ports/packages /usr/ports/packages zfs rw 0 0 zroot/src /usr/src zfs rw 0 0 zroot/mydata /usr/mydata zfs rw 0 0 - /etc/rc.conf を設定する。(hostname とか ifconfig はシステムに応じて変更を。) echo 'zfs_enable="YES"' >> /etc/rc.conf echo 'hostname="zfsroot.localdomain"' >> /etc/rc.conf echo 'ifconfig_re0="DHCP"' >> /etc/rc.conf - /boot/loader.conf を設定する。 echo 'zfs_load="YES"' >> /boot/loader.conf echo 'vfs.root.mountfrom="zfs:zroot/system/sysroot"' >> /boot/loader.conf - 7.0~7.2R,8.0R では以下の手順でブートローダの再構築が必要 # echo 'LOADER_ZFS_SUPPORT=YES' >> /etc/src.conf # mount -t devfs devfs /dev # export DESTDIR="" # cd /usr/src/sys/boot # make obj # make depend # make # cd i386/loader # make install - aliases を再作成。(必要?) # cd /etc/mail # make aliases - /dev はもう不要なのでアンマウント # umount /dev - chroot 環境を脱出 # exit - ZFS の情報をブートローダ用にコピー # cp /boot/zfs/zpool.cache /tmproot/boot/zfs/zpool.cache -- mkdir /boot/zfs を忘れているとできない。その場合は以下で作り直し。 # mkdir /boot/zfs; zfs export zroot; zfs import zroot - Fixit 環境を出る。 # exit - 再起動する。 - シングルユーザーでログインする。 - /usr/home を自動マウントにする。 # zfs set mountpoint=/usr/home zroot/home - ユーザーを追加するときには、先にファイルシステムを切り、ユーザー単位でのスナップショット権限を与える。 # zfs create zroot/home/alice # adduser ... # zfs allow alice mount,create,snapshot,rename,destroy,clone,promote,send,receive zroot/home/alice * 謎のスクリプト [#c8adcb36] 動作保証なし。 Use at your own risk. #!/bin/sh if [ $# -ne 4 ]; then echo "usage: create_ZFS_root_single.sh DISK0 SWAP_SIZE GPT_DISK0_NAME POOL_NAME" echo "ex. ./create_ZFS_root_single.sh ad0 2g disk0 zroot" exit 1 fi DISK0=$1 SWAP_SIZE=$2 GPT_DISK0_NAME=$3 POOL_NAME=$4 echo "ERASE ALL DATA ON $DISK0. OK? enter 'yes'" read ANSWER if [ "$ANSWER" != "yes" ]; then echo "bye!" exit 2 fi echo Delete partition info. dd if=/dev/zero of=/dev/$DISK0 bs=1m count=1 echo Create partition. gpart create -s gpt $DISK0 gpart add -s 64K -t freebsd-boot $DISK0 gpart add -s $SWAP_SIZE -t freebsd-boot $DISK0 gpart add -t freebsd-zfs -l $GPT_DISK0_NAME $DISK0 gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 $DISK0 echo Load ZFS module kldload /mnt2/boot/kernel/opensolaris.ko kldload /mnt2/boot/kernel/zfs.ko echo ZFS check zpool import echo "NO POOL CHECK OK? enter 'yes'" read ANSWER if [ "$ANSWER" != "yes" ]; then echo "bye!" exit 2 fi echo create ZFS pool mkdir /boot/zfs zpool create $POOL_NAME /dev/gpt/$GPT_DISK0_NAME echo create ZFS filesystem mkdir /tmproot zfs set checksum=fletcher4 $POOL_NAME zfs set atime=off $POOL_NAME zfs set mountpoint=legacy $POOL_NAME zfs create ${POOL_NAME}/system zfs create ${POOL_NAME}/system/sysroot zfs create ${POOL_NAME}/system/usr zfs create ${POOL_NAME}/system/var zfs create -o compression=lzjb -o exec=off -o setuid=off ${POOL_NAME}/system/var/crash zfs create -o exec=off -o setuid=off ${POOL_NAME}/system/var/db zfs create -o compression=lzjb -o exec=on -o setuid=off ${POOL_NAME}/system/var/db/pkg zfs create -o exec=off -o setuid=off ${POOL_NAME}/system/var/empty zfs create -o compression=lzjb -o exec=off -o setuid=off ${POOL_NAME}/system/var/log zfs create -o compression=lzjb -o exec=off -o setuid=off ${POOL_NAME}/system/var/mail zfs create -o compression=lzjb -o exec=on -o setuid=off ${POOL_NAME}/system/var/tmp zfs create -o compression=lzjb -o exec=on -o setuid=off ${POOL_NAME}/ports zfs create -o exec=off -o setuid=off ${POOL_NAME}/ports/distfiles zfs create -o exec=off -o setuid=off ${POOL_NAME}/ports/packages zfs create -o compression=lzjb -o exec=off -o setuid=off ${POOL_NAME}/src zfs create ${POOL_NAME}/home zpool set bootfs=${POOL_NAME}/system/sysroot ${POOL_NAME} echo mount ZFS filesystem mount -t zfs ${POOL_NAME}/system/sysroot /tmproot mkdir /tmproot/tmp chmod 1777 /tmp mkdir /tmproot/usr mount -t zfs ${POOL_NAME}/system/usr /tmproot/usr mkdir /tmproot/usr/home mount -t zfs ${POOL_NAME}/home /tmproot/usr/home ln -s /usr/home /tmproot/home mkdir /tmproot/usr/ports mount -t zfs ${POOL_NAME}/ports /tmproot/usr/ports mkdir /tmproot/usr/ports/distfiles mount -t zfs ${POOL_NAME}/ports/distfiles /tmproot/usr/ports/distfiles mkdir /tmproot/usr/ports/packages mount -t zfs ${POOL_NAME}/ports/packages /tmproot/usr/ports/packages mkdir /tmproot/usr/src mount -t zfs ${POOL_NAME}/src /tmproot/usr/src mkdir /tmproot/var mount -t zfs ${POOL_NAME}/system/var /tmproot/var mkdir /tmproot/var/crash mount -t zfs ${POOL_NAME}/system/var/crash /tmproot/var/crash mkdir /tmproot/var/db mount -t zfs ${POOL_NAME}/system/var/db /tmproot/var/db mkdir /tmproot/var/db/pkg mount -t zfs ${POOL_NAME}/system/var/db/pkg /tmproot/var/db/pkg mkdir /tmproot/var/empty mount -t zfs ${POOL_NAME}/system/var/empty /tmproot/var/empty mkdir /tmproot/var/log mount -t zfs ${POOL_NAME}/system/var/log /tmproot/var/log mkdir /tmproot/var/mail mount -t zfs ${POOL_NAME}/system/var/mail /tmproot/var/mail mkdir /tmproot/var/tmp mount -t zfs ${POOL_NAME}/system/var/tmp /tmproot/var/tmp chmod 1777 /tmproot/var/tmp echo "Extract FreeBSD distribution. OK? enter 'yes'" read ANSWER if [ "$ANSWER" != "yes" ]; then echo "bye!" exit 2 fi echo extract FreeBSD distribution cd /dist/8.0-* export DESTDIR=/tmproot for dir in base catpages dict doc games info lib32 manpages ports do (cd $dir ; ./install.sh) ; done cd src ; ./install.sh all cd ../kernels ; ./install.sh generic cd /tmproot/boot ; cp -Rlp GENERIC/* /tmproot/boot/kernel/ echo set configuration zfs set readonly=on ${POOL_NAME}/system/var/empty #exit 1 cat <<CHROOTSCRIPT_EOT >/tmproot/zfssinglechroot.sh #!/bin/sh cat <<EOT >> /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/gpt/swap0 none swap sw 0 0 zroot/system/sysroot / zfs rw 0 0 zroot/system/usr /usr zfs rw 0 0 zroot/ports /usr/ports zfs rw 0 0 zroot/ports/distfiles /usr/ports/distfiles zfs rw 0 0 zroot/ports/packages /usr/ports/packages zfs rw 0 0 zroot/src /usr/src zfs rw 0 0 zroot/system/var /var zfs rw 0 0 zroot/system/var/crash /var/crash zfs rw 0 0 zroot/system/var/db /var/db zfs rw 0 0 zroot/system/var/db/pkg /var/db/pkg zfs rw 0 0 zroot/system/var/empty /var/empty zfs rw 0 0 zroot/system/var/log /var/log zfs rw 0 0 zroot/system/var/mail /var/mail zfs rw 0 0 tmpfs /var/run tmpfs rw,size=10000000 0 0 zroot/system/var/tmp /var/tmp zfs rw 0 0 tmpfs /tmp tmpfs rw,mode=1777,size=1073741824 0 0 tmpfs /ports/tmp tmpfs rw,size=1073741824 0 0 EOT echo 'zfs_enable="YES"' >> /etc/rc.conf echo 'hostname="zfsroot.localdomain"' >> /etc/rc.conf echo 'ifconfig_re0="DHCP"' >> /etc/rc.conf echo 'zfs_load="YES"' >> /boot/loader.conf echo 'vfs.root.mountfrom="zfs:zroot/system/sysroot"' >> /boot/loader.conf echo reinstall boot loader echo 'LOADER_ZFS_SUPPORT=YES' >> /etc/src.conf mount -t devfs devfs /dev export DESTDIR="" cd /usr/src/sys/boot make obj make depend make cd i386/loader make install cd /etc/mail make aliases umount /dev exit CHROOTSCRIPT_EOT chmod +x /tmproot/zfssinglechroot.sh chroot /tmproot /zfssinglechroot.sh rm /tmproot/zfssinglechroot.sh cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache echo Exit Fixit and reboot, then enter single mode. echo and then enter follow command. echo # zfs set mountpoint=/usr/home zroot/home echo # exit
テキスト整形のルールを表示する