crunchgen.1 revision 1.11.2.6

file.1		revision 1.16.2.3
disklabel.8	revision 1.15.2.7
This commit is contained in:
Kazuo Horikawa 2000-12-29 16:30:33 +00:00
parent 876a3d03f0
commit 8c7044be98
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=8584
3 changed files with 491 additions and 249 deletions

View file

@ -22,7 +22,7 @@
.\" Author: James da Silva, Systems Design and Analysis Group .\" Author: James da Silva, Systems Design and Analysis Group
.\" Computer Science Department .\" Computer Science Department
.\" University of Maryland at College Park .\" University of Maryland at College Park
.\" %FreeBSD: src/usr.sbin/crunch/crunchgen/crunchgen.1,v 1.11.2.3 2000/11/17 12:57:43 joe Exp % .\" %FreeBSD: src/usr.sbin/crunch/crunchgen/crunchgen.1,v 1.11.2.6 2000/12/08 15:28:02 ru Exp %
.\" .\"
.Dd November 16, 2000 .Dd November 16, 2000
.\" jpman %Id: crunchgen.1,v 1.3 1997/07/29 13:43:59 konuma Stab % .\" jpman %Id: crunchgen.1,v 1.3 1997/07/29 13:43:59 konuma Stab %
@ -32,13 +32,15 @@
.Nm crunchgen .Nm crunchgen
.Nd クランチバイナリ構築環境を作成する .Nd クランチバイナリ構築環境を作成する
.Sh 書式 .Sh 書式
.Nm crunchgen .Bk -words
.Nm
.Op Fl foql .Op Fl foql
.Op Fl h Ar makefile-header-name .Op Fl h Ar makefile-header-name
.Op Fl m Ar makefile-name .Op Fl m Ar makefile-name
.Op Fl c Ar c-file-name .Op Fl c Ar c-file-name
.Op Fl e Ar exec-file-name .Op Fl e Ar exec-file-name
.Op Ar conf-file .Op Ar conf-file
.Ek
.Sh 解説 .Sh 解説
クランチバイナリ (crunched binary) は、 クランチバイナリ (crunched binary) は、
たくさんの別々のプログラムをひとつにまとめて たくさんの別々のプログラムをひとつにまとめて
@ -123,13 +125,13 @@
出力する C のファイル名を 出力する C のファイル名を
.Ar c-file-name .Ar c-file-name
とします。デフォルトの名前は とします。デフォルトの名前は
.Dq <conf-name>.c .Pa <conf-name>.c
です。 です。
.It Fl e Ar exec-file-name .It Fl e Ar exec-file-name
クランチバイナリの実行形式ファイルの名前を クランチバイナリの実行形式ファイルの名前を
.Ar exec-file-name .Ar exec-file-name
とします。デフォルトの名前は とします。デフォルトの名前は
.Dq <conf-name> .Pa <conf-name>
です。 です。
.It Fl f .It Fl f
キャッシュを消去し、キャッシュされていたパラメータを強制的に再計算します。 キャッシュを消去し、キャッシュされていたパラメータを強制的に再計算します。
@ -152,12 +154,22 @@ make
の名前を の名前を
.Ar makefile-name .Ar makefile-name
とします。デフォルトの名前は とします。デフォルトの名前は
.Dq <conf-name>.mk .Pa <conf-name>.mk
です。 です。
.It Fl o .It Fl o
各プログラムの make ターゲットに対し、 各プログラムの make ターゲットに対し、
.Dq Li make obj .Dq Li make obj
ルールを追加します。 ルールを追加します。
.It Fl p Ar obj-prefix
.Ic objdir
を計算するときに、
.Ic srcdir
の前に付けるパス名を設定します。
このオプションが存在しない場合、使用するプレフィックスは
.Ev MAKEOBJDIRPREFIX
環境変数の内容か、または
.Pa /usr/obj
です。
.It Fl q .It Fl q
静粛処理モード。状況報告メッセージを抑制します。 静粛処理モード。状況報告メッセージを抑制します。
.El .El
@ -185,7 +197,7 @@ make
これらのディレクトリは これらのディレクトリは
.Bx .Bx
.Dq <source-dir>/<progname>/ .Dq Pa <source-dir>/<progname>/
方式を用いて検索されます。 方式を用いて検索されます。
.Ic srcdirs .Ic srcdirs
行は複数あってもよく、ディレクトリは記述された順に検索されます。 行は複数あってもよく、ディレクトリは記述された順に検索されます。
@ -242,13 +254,21 @@ make
プログラム プログラム
.Ar progname .Ar progname
.Dq obj
ディレクトリを指定します。
通常はディレクトリ
.Ic srcdir
内の
.Pa obj .Pa obj
という名前のディレクトリを探し、もし見つからなければ、ディレクトリ ディレクトリを指定します。
通常、
.Pa obj
ディレクトリは、
ソースディレクトリ名の前に次のいずれかのコンポーネントを付けたものとして
計算され、コンポーネントには次の順番で優先度があります:
コマンドラインにおける
.Fl p
の引数、環境変数
.Ev MAKEOBJDIRPREFIX
の値、または
.Pa /usr/obj
です。
もしディレクトリが見つからなければ、ディレクトリ
.Ic srcdir .Ic srcdir
自身が 自身が
.Ic objdir .Ic objdir
@ -363,7 +383,9 @@ libs -lutil -lcrypt
.Pp .Pp
このコンフィギュレーションファイルでは、 このコンフィギュレーションファイルでは、
いくつかの基本的なシステムユーティリティと いくつかの基本的なシステムユーティリティと
自家製のインストールプログラム ``myinstall'' から成る 自家製のインストールプログラム
.Dq Pq myinstall
から成る
小さなクランチバイナリを記述しています。 小さなクランチバイナリを記述しています。
ソースディレクトリは全く指定されていませんが、 ソースディレクトリは全く指定されていませんが、
オブジェクトファイルは オブジェクトファイルは
@ -371,7 +393,7 @@ libs -lutil -lcrypt
行で直接指定されています。 行で直接指定されています。
.Pp .Pp
さらに、 さらに、
.Dq anotherprog .Dq Pa anotherprog
構築時には、引数 構築時には、引数
.Pp .Pp
.Dl -DNO_FOO WITHOUT_BAR=YES .Dl -DNO_FOO WITHOUT_BAR=YES
@ -379,7 +401,7 @@ libs -lutil -lcrypt
がすべてのビルドターゲットに対して追加されます。 がすべてのビルドターゲットに対して追加されます。
.Pp .Pp
クランチバイナリ クランチバイナリ
.Dq kcopy .Dq Pa kcopy
は以下のようにして作成できます: は以下のようにして作成できます:
.Pp .Pp
.Bd -literal -offset indent .Bd -literal -offset indent
@ -391,7 +413,7 @@ $ #
.Ed .Ed
.Pp .Pp
ここまでくれば、バイナリ ここまでくれば、バイナリ
.Dq kcopy .Dq Pa kcopy
をインストールフロッピにコピーし、 をインストールフロッピにコピーし、
各コンポーネントプログラムの名前でハードリンクを設けることができます。 各コンポーネントプログラムの名前でハードリンクを設けることができます。
.Sh 関連項目 .Sh 関連項目

View file

@ -1,20 +1,20 @@
.\" %FreeBSD: src/usr.bin/file/file.1,v 1.16 2000/03/01 12:19:39 sheldonh Exp % .\" %FreeBSD: src/usr.bin/file/file.1,v 1.16.2.3 2000/12/12 14:52:49 ru Exp %
.Dd July 30, 1997 .Dd December 8, 2000
.Dt FILE 1 "Copyright but distributable" .Dt FILE 1 "Copyright but distributable"
.Os .Os
.Sh 名称 .Sh 名称
.Nm file .Nm file
.Nd ファイルの種類を判定する .Nd ファイルの種類を判定する
.Sh 書式 .Sh 書式
.Nm file .Nm
.Op Fl vczL .Op Fl bciknsvzL
.Op Fl f Ar namefile .Op Fl f Ar namefile
.Op Fl m Ar magicfiles .Op Fl m Ar magicfiles
.Ar .Ar
.Sh 解説 .Sh 解説
このマニュアルは このマニュアルは
.Nm .Nm
コマンドのバージョン 3.22 について記載しています。 コマンドのバージョン 3.33 について記載しています。
.Nm .Nm
は、引数で指定されたファイルの種類を判定するプログラムです。判定の は、引数で指定されたファイルの種類を判定するプログラムです。判定の
ために、ファイルシステムテスト、マジックナンバテスト、言語テストの ために、ファイルシステムテスト、マジックナンバテスト、言語テストの
@ -24,9 +24,7 @@
.Pp .Pp
ファイルの種類として表示されるのは、 ファイルの種類として表示されるのは、
.Em text .Em text
( (印字可能文字と少数の制御文字だけのファイルで、
.Tn ASCII
キャラクタだけのファイルで、
.Tn ASCII .Tn ASCII
端末に表示した場合、 端末に表示した場合、
問題が起こらないもの)、 問題が起こらないもの)、
@ -36,7 +34,9 @@
カーネル等に理解可能な形にコンパイルされたプログラムを カーネル等に理解可能な形にコンパイルされたプログラムを
含むファイル)、その他のものを意味する 含むファイル)、その他のものを意味する
.Em data .Em data
(data は、通常 `バイナリ' か表示不能なもの) のうちの 1 つです。 (data は、通常
.Sq バイナリ
か表示不能なもの) のうちの 1 つです。
例外は、内部フォーマットがよく知られた、 例外は、内部フォーマットがよく知られた、
バイナリデータを含むファイル (コアファイルや tar アーカイブ) です。 バイナリデータを含むファイル (コアファイルや tar アーカイブ) です。
ファイル ファイル
@ -44,11 +44,23 @@
やプログラムそのものを変更するときは、 やプログラムそのものを変更するときは、
.Em "これらのキーワードを残して下さい" .Em "これらのキーワードを残して下さい"
.Pp
ディレクトリ内のすべての可読なファイルは、 ディレクトリ内のすべての可読なファイルは、
単語 ``text'' を表示することが期待されています。 単語
Berkeley で行われたように、``shell commands text'' を .Dq text
``shell script'' と変更するようなことはしないで下さい。 を表示することが期待されています。
Berkeley で行われたように、
.Dq shell commands text
.Dq shell script
と変更するようなことはしないで下さい。
ファイル
.Pa /usr/share/misc/magic
は、
.Nm
のソース配布中の
.Pa Magdir
サブディレクトリ中の大量の小さなファイルから機械的に構築されることに
注意してください。
.Pp .Pp
ファイルシステムテストは、 ファイルシステムテストは、
.Xr stat 2 .Xr stat 2
@ -58,7 +70,7 @@ Berkeley
使っているシステムに合った既知のファイルの種類 使っているシステムに合った既知のファイルの種類
(システムに実装されたソケット、シンボリックリンク、 (システムに実装されたソケット、シンボリックリンク、
名前付きパイプ (FIFO)) は、システムヘッダファイル 名前付きパイプ (FIFO)) は、システムヘッダファイル
.Pa sys/stat.h .Aq Pa sys/stat.h
で定義されていれば表示されます。 で定義されていれば表示されます。
.Pp .Pp
マジックナンバテストは、ファイルが固定フォーマットのデータであるか マジックナンバテストは、ファイルが固定フォーマットのデータであるか
@ -71,51 +83,83 @@ Berkeley
.Pa exec.h .Pa exec.h
で定義されています。 で定義されています。
実行ファイルは、 実行ファイルは、
ファイルの先頭近くの特定の場所に、`マジックナンバ' を持ちます。 ファイルの先頭近くの特定の場所に、
.Sq マジックナンバ
を持ちます。
これは これは
.Ux .Ux
オペレーティングシステムに対し、 オペレーティングシステムに対し、
ファイルがバイナリ実行形式であり、 ファイルがバイナリ実行形式であり、
どのタイプの実行可能ファイルであるかを知らせます。 どのタイプの実行可能ファイルであるかを知らせます。
`マジックナンバ' の概念は拡張され、データファイルにも適用されています。 .Sq マジックナンバ
の概念は拡張され、データファイルにも適用されています。
ファイルの先頭に近い固定位置に固定識別子があるファイルは、 ファイルの先頭に近い固定位置に固定識別子があるファイルは、
このように記述できます。 このように記述できます。
これらのファイル情報は、マジックファイル これらのファイル識別情報は、マジックファイル
.Pa /usr/share/misc/magic .Pa /usr/share/misc/magic
から読み込まれます。 から読み込まれます。
.Pp .Pp
もしファイルが ファイルがマジックファイルのどのエントリにもマッチしない場合、
.Tn ASCII text ファイルに見えるかどうか検査されます。
ファイルのようであるなら、 .Tn ASCII ,
.Tn ISO-8859-x ,
非 ISO 8-bit 拡張 ASCII 文字集合
(Macintosh および IBM PC システムで使用),
.Tn UTF-8-encoded Unicode ,
.Tn UTF-16-encoded Unicode ,
.Tn EBCDIC
の文字集合が区別可能であり、
これには各文字集合における印字可能 text を構成する
バイトの範囲およびシーケンスを使用します。
ファイルがこれらのテストのいずれかを通過した場合、文字集合が報告されます。
.Tn ASCII ,
.Tn ISO-8859-x ,
.Tn UTF-8 ,
extended-ASCII ファイルは
.Dq text
として識別されます。
なぜなら、ほとんどどのような端末においても読めるからです。
.Tn UTF-16
および
.Tn EBCDIC
.Dq character data
でしかありません。
これらは text を含みますが、読む前に変換が必要だからです。
さらに、
.Nm .Nm
は、その言語を推定しようとします。 は text タイプファイルの他の特性も判定しようとします。
ファイルの行の終端が、UNIX 標準の LF ではなく、
CR, CRLF, NEL のいずれかである場合、そのことが報告されます。
組み込みのエスケープシーケンスや重ね打ちを含むファイルについても、
識別されます。
.Pp
text タイプファイルで使用されている文字集合を判定した後、
その言語を推定しようとします。
言語テストは、ファイルの始めの数ブロックに 言語テストは、ファイルの始めの数ブロックに
特定の文字列 ( 特定の文字列 (
.Pa Inames.h .Pa Inames.h
を参照) を参照)
があるかどうかを探します。たとえばキーワード があるかどうかを探します。たとえばキーワード
.Em .br .Em \&.br
があればそれはおそらく があればそれはおそらく
.Xr troff 1 .Xr troff 1
の入力ファイルであり、 の入力ファイルであり、
.Em struct struct
というキーワードは、C 言語のプログラムであることを示しています。 というキーワードは、C 言語のプログラムであることを示しています。
こうした推定方法は、前述の 2 つのテストより信頼性が低いため、 こうした推定方法は、前述の 2 つのテストより信頼性が低いため、
最後に行われます。言語テストルーチンは ( 最後に行われます。言語テストルーチンは (
.Xr tar 1 .Xr tar 1
アーカイブのような) その他のファイルもチェックし、未知のファイルを アーカイブのような) その他のファイルもチェックします。
`ASCII text' とすべきか、`data' とすべきかを決定します。 .Pp
上記の文字集合のいずれで記述されているとも識別できなかったファイルは、
単に
.Dq data
と呼ばれます。
.Sh オプション .Sh オプション
.Bl -tag -width indent .Bl -tag -width indent
.It Fl v .It Fl b
プログラムのバージョンを表示して、終了します。 出力行の前にファイル名を付けません (短縮モード)。
.It Fl m Ar list
マジックナンバを含む別のファイルの
.Ar list
を指定します。
これは、1 つのファイルか、コロン (:) で分けられたファイルのリストです。
.It Fl z
compress で圧縮されたファイルの中身を見ようとします。
.It Fl c .It Fl c
マジックファイルを解析した形式を、調査できるように表示します。 マジックファイルを解析した形式を、調査できるように表示します。
通常、 通常、
@ -129,7 +173,66 @@ compress
.Ar name_file .Ar name_file
もしくは引数の filename は少なくとも 1 つは指定しなければなりません。 もしくは引数の filename は少なくとも 1 つは指定しなければなりません。
標準入力のファイルの種類を判定させる場合は、 標準入力のファイルの種類を判定させる場合は、
ファイル名として、``-'' を指定します。 ファイル名として、
.Dq Ar -
を指定します。
.It Fl i
.Nm
に、伝統的な人間が読める形式の代りに、
mime タイプ文字列を出力させます。
よって、
.Dq ASCII text
の代りに
.Dq text/plain; charset=us-ascii
となります。
本オプションが動作するようにするために、
.Nm
はファイル認識方法
(例えば、多くの text ファイルタイプやディレクトリ等) を変え、
別の
.Dq Pa マジック
ファイルを使用します
(後述の
.Sx FILES
節を参照してください)。
.It Fl k
最初にマッチしても停止せずに、処理を継続します。
.It Fl m Ar list
マジックナンバを含む別のファイルの
.Ar list
を指定します。
これは、1 つのファイルか、コロン (:) で分けられたファイルのリストです。
.It Fl n
各ファイルのチェック後に、標準出力をフラッシュします。
ファイルの一覧をチェックしているときのみ、有用です。
ファイルタイプをパイプから出力するプログラムにおいて使用することを意図します。
.It Fl s
通常、
.Nm
が引数のファイルの読み込みとタイプの判定を行うのは、
.Xr stat 2
が通常ファイルであると報告した場合のみです。
これにより問題を回避しています。
なぜなら、特殊ファイルの読み込みは、
特定の結果を発生させる場合があるからです。
.Fl s
オプションを指定すると、
.Nm
は、ブロックおよびキャラクタの特殊ファイルも読み込みます。
これは、raw ディスクパーティション中のデータに存在する
ファイルシステムタイプの判定に有用です。
なぜなら、raw ディスクパーティションはブロック型特殊ファイルであるからです。
本オプションはまた、
.Nm
.Xr stat 2
が報告するファイルの大きさを無視するようにさせます。
なぜなら、システムによっては、
raw ディスクパーティションの大きさは 0 であると報告するものがあるからです。
.It Fl v
プログラムのバージョンを表示して、終了します。
.It Fl z
compress で圧縮されたファイルの中身を見ようとします。
.It Fl L .It Fl L
オプションは(システムがシンボリックリンクを提供していれば)、 オプションは(システムがシンボリックリンクを提供していれば)、
.Xr ls 1 .Xr ls 1
@ -139,17 +242,17 @@ compress
身の種類を判定します。 身の種類を判定します。
.El .El
.Sh 関連ファイル .Sh 関連ファイル
.Bl -tag -width /usr/share/misc/magic -compact .Bl -tag -width /usr/share/misc/magic.mime -compact
.It Pa /usr/share/misc/magic .It Pa /usr/share/misc/magic
デフォルトのマジックナンバのリスト ( デフォルトのマジックナンバのリスト
.Fx 3.0 .It Pa /usr/share/misc/magic.mime
以前では .Fl i
.Pa /etc/magic が指定されて mime タイプを出力する場合に使用する、
でした) デフォルトのマジックナンバのリスト
.El .El
.Sh 環境変数 .Sh 環境変数
環境変数 環境変数
.Em MAGIC .Ev MAGIC
は、デフォルトのマジックナンバファイルを指定するために は、デフォルトのマジックナンバファイルを指定するために
使うことができます。 使うことができます。
.Sh 関連項目 .Sh 関連項目
@ -168,24 +271,25 @@ FILE(CMD)
このバージョンは全ての空白を区切り文字として扱うため このバージョンは全ての空白を区切り文字として扱うため
パターン内の空白はエスケープしなければならないということです。 パターン内の空白はエスケープしなければならないということです。
たとえば、 たとえば、
.br .Bd -literal -compact
>10 string language impress\ (imPRESS data) >10 string language impress (imPRESS data)
.br .Ed
とマジックファイルに書かれていた場合は、次のように とマジックファイルに書かれていた場合は、次のように
変更せねばなりません。 変更せねばなりません。
.br .Bd -literal -compact
>10 string language\e impress (imPRESS data) >10 string language\e impress (imPRESS data)
.br .Ed
.Pp
またこのバージョンでは、バックスラッシュを含んでいる またこのバージョンでは、バックスラッシュを含んでいる
パターンもエスケープしなくてはいけません。たとえば、 パターンもエスケープしなくてはいけません。たとえば、
.br .Bd -literal -compact
0 string \ebegindata Andrew Toolkit document 0 string \ebegindata Andrew Toolkit document
.br .Ed
とマジックファイルに書かれていた場合は、次のように とマジックファイルに書かれていた場合は、次のように
変更せねばなりません。 変更せねばなりません。
.br .Bd -literal -compact
0 string \e\ebegindata Andrew Toolkit document 0 string \e\ebegindata Andrew Toolkit document
.br .Ed
.Pp .Pp
Sun Microsystems の SunOS リリース 3.2 もしくはそれ以降には、 Sun Microsystems の SunOS リリース 3.2 もしくはそれ以降には、
System V 由来の System V 由来の
@ -194,8 +298,9 @@ System V ͳ
このバージョンは SUN のものとは、細かい点でしか異なりません。 このバージョンは SUN のものとは、細かい点でしか異なりません。
このバージョンには `&' 演算子の拡張が含まれています。 このバージョンには `&' 演算子の拡張が含まれています。
使い方は、次のようなものです。 使い方は、次のようなものです。
.br .Bd -literal -compact
>16 long&0x7fffffff >0 not stripped >16 long&0x7fffffff >0 not stripped
.Ed
.Sh マジックディレクトリ .Sh マジックディレクトリ
マジックファイルのエントリは様々なソース (主に USENET) マジックファイルのエントリは様々なソース (主に USENET)
から集められたり、様々な作者から提供されました。 から集められたり、様々な作者から提供されました。
@ -215,6 +320,32 @@ System V ͳ
(たとえば、 (たとえば、
.Pa /usr/share/misc/magic.orig .Pa /usr/share/misc/magic.orig
という名前に変更します) 。 という名前に変更します) 。
.Sh 使用例
.Bd -literal
$ file file.c file /dev/hda
file.c: C program text
file: ELF 32-bit LSB executable, Intel 80386, version 1,
dynamically linked, not stripped
/dev/hda: block special
$ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
/dev/hda: x86 boot sector
/dev/hda1: Linux/i386 ext2 filesystem
/dev/hda2: x86 boot sector
/dev/hda3: x86 boot sector, extended partition table
/dev/hda4: Linux/i386 ext2 filesystem
/dev/hda5: Linux/i386 swap file
/dev/hda6: Linux/i386 swap file
/dev/hda7: Linux/i386 swap file
/dev/hda8: Linux/i386 swap file
/dev/hda9: empty
/dev/hda10: empty
$ file -i file.c file /dev/hda
file.c: text/x-c
file: application/x-executable, dynamically linked (uses shared libs), not stripped
/dev/hda: application/x-not-regular-file
.Ed
.Sh 歴史 .Sh 歴史
.Nm .Nm
コマンドは、少なくとも Research Version 6 コマンドは、少なくとも Research Version 6
@ -228,95 +359,48 @@ System V
更にまた柔軟になりました。 更にまた柔軟になりました。
.Pp .Pp
このプログラムは、System V バージョンを基づいており、 このプログラムは、System V バージョンを基づいており、
.An Ian Darwin .An Ian Darwin Aq ian@darwinsys.com
によって、他の誰かのソースコードを見ることなく によって、他の誰かのソースコードを見ることなく
書かれました。 書かれました。
.Pp .Pp
.An John Gilmore .An John Gilmore
はコードを拡張し、最初の版よりも は、コードを拡張し、最初の版よりもよいものにしました。
よいものにしました。
.An Geoff Collyer .An Geoff Collyer
は 不適当なところが数箇所あるのを は、不適当なところが数箇所あるのを発見し、
発見し、いくつかマジックファイルエントリを いくつかマジックファイルエントリを提供しました。
提供しました。
プログラムは、ずっと発展し続けています。
.SH 作者
.An Ian F. Darwin Aq ian@sq.com ,
UUCP アドレス {utzoo | ihnp4}!darwin!ian,
住所 P.O. Box 603, Station F, Toronto, Ontario, CANADA M4Y 2L8.
により書かれました。
.Pp
.An Rob McMahon Aq cudcv@warwick.ac.uk .An Rob McMahon Aq cudcv@warwick.ac.uk
が 1989 年に、`&' 演算子を単純な は、1989 年に、
`x&y != 0' から `x&y op z' に拡張するため変更しました。 .Sq \&&
演算子を寄贈しました。
.Pp .Pp
.An Guy Harris Aq guy@auspex.com .An Guy Harris Aq guy@netapp.com
が 1993 年に、 は、1993 年から現在に至り、多くの変更を行っています。
.Bl -item -offset indent
.It
``旧型'' の `&' 演算子を元のように戻しました。理由は、
.Bl -enum -offset indent
.It
Rob McMahon の変更によりこれまでの使用法ができなくなった。
.It
このバージョンの
.Nm
がサポートする SunOS の ``新型'' の `&' 演算子で、`x&y op z' も扱える。
.It
Rob の変更はドキュメントに書かれていなかった。
.El
.It
他段階の `>' 追加。
.It
``beshort'', ``leshort'' などのキーワードの追加。
.Nm
が動いているプロセスのバイトオーダではなく、
ファイル特有のバイトオーダで数字を見るようにするキーワードです。
.El
.Pp .Pp
.An Ian Darwin 基本開発と 1990 年から現在に至るメンテナンスを、
.An Christos Zoulas Aq christos@astron.com
.An Christos Zoulas Aq christos@deshaw.com が行っています。
を含む .Pp
多くの作者による 1990-1992 年の変更。 2000 年に
.An Chris Lowth Aq chris@lowth.com
が修正を行い、
.Fl i
オプションが mime タイプ文字列を出力し、
別のマジックファイルと内部ロジックを使用するようになりました。
.Pp
2000 年 7 月に
.An Eric Fischer Aq enf@pobox.com
が修正を行い、
文字コードを識別し、非 ASCII ファイルの原語を識別しようとするようになりました。
.Pp
.Pa Magdir
ディレクトリ (
.Pa /usr/share/misc/magic
ファイルのソース) に対する寄贈者は、ここに含めるには長過ぎます。
ご了承ください。
.Sh 法律上の注意 .Sh 法律上の注意
Copyright (c) Ian F. Darwin, Toronto, Canada, Copyright (c) Ian F. Darwin, Toronto, Canada, 1986-1999.
1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993. Covered by the standard Berkeley Software Distribution
.Pp copyright; see the file LEGAL.NOTICE in the source distribution.
This software is not subject to and may not be made subject to any
license of the American Telephone and Telegraph Company, Sun
Microsystems Inc., Digital Equipment Inc., Lotus Development Inc., the
Regents of the University of California, The X Consortium or MIT, or
The Free Software Foundation.
.Pp
This software is not subject to any export provision of the United States
Department of Commerce, and may be exported to any country or planet.
.Pp
Permission is granted to anyone to use this software for any purpose on
any computer system, and to alter it and redistribute it freely, subject
to the following restrictions:
.Pp
.Bl -enum -offset indent
.It
The author is not responsible for the consequences of use of this
software, no matter how awful, even if they arise from flaws in it;
.It
The origin of this software must not be misrepresented, either by
explicit claim or by omission. Since few users ever read sources,
credits must appear in the documentation;
.It
Altered versions must be plainly marked as such, and must not be
misrepresented as being the original software. Since few users
ever read sources, credits must appear in the documentation;
.It
This notice may not be removed or altered.
.El
.Pp
A few support files (
.Fn getopt ,
.Fn strtok )
distributed with this package
are in the public domain; they are so marked.
.Pp .Pp
The files The files
.Pa tar.h .Pa tar.h
@ -328,8 +412,10 @@ from his public-domain
.Nm tar .Nm tar
program, and are not covered by the above restrictions. program, and are not covered by the above restrictions.
.Sh バグ .Sh バグ
マジックディレクトリから .Pa Pagicdir
マジックファイルを自動的に作成するよりよい方法があるはずです。 から
.Pa Magic
ファイルを自動的に作成するよりよい方法があるはずです。
それは何なのでしょうか。より起動を速くするため それは何なのでしょうか。より起動を速くするため
マジックファイルをバイナリにコンパイルするとよいでしょう。 マジックファイルをバイナリにコンパイルするとよいでしょう。
(たとえば (たとえば
@ -343,20 +429,21 @@ System V
.Nm .Nm
には、正確さよりも 速度を重視したアルゴリズムが には、正確さよりも 速度を重視したアルゴリズムが
いくつかあるので いくつかあるので
.Tn ASCII text
ファイルの内容については ファイルの内容については
間違うことがあります。 間違うことがあります。
.Pp .Pp
.Tn ASCII text
ファイルのサポート ( 元々はプログラミング言語のため ) は ファイルのサポート (元々はプログラミング言語のため) は
単純で、不十分であり、更新には再コンパイルが必要です。 単純で、不十分であり、更新には再コンパイルが必要です。
.Pp .Pp
複数の行に渡るものをサポートするため 複数の行に渡るものをサポートするため
``else'' 項があるべきです。 .Dq else
項があるべきです。
.Pp .Pp
マジックファイルと キーワードの正規表現を マジックファイルと キーワードの正規表現を
サポートするべきです。 サポートするべきです。
.Tn ASCII TAB ASCII TAB
をフィールドの識別子にすることは醜く、 をフィールドの識別子にすることは醜く、
ファイルの編集を難しくしていますが、残されています。 ファイルの編集を難しくしていますが、残されています。
.Pp .Pp
@ -365,14 +452,16 @@ System V
コマンドと man page マクロの区別です。 コマンドと man page マクロの区別です。
正規表現のサポートで、このことは簡単になるでしょう。 正規表現のサポートで、このことは簡単になるでしょう。
.Pp .Pp
\s-2FORTRAN\s0 に対してプログラムが働きません。 FORTRAN に対してプログラムが働きません。
行の先頭にインデントされているキーワードを見ることにより 行の先頭にインデントされているキーワードを見ることにより
\s-2FORTRAN\s0 だと判別すべきです。 FORTRAN だと判別すべきです。
正規表現のサポートによりこれは簡単になるでしょう。 正規表現のサポートによりこれは簡単になるでしょう。
.Pp .Pp
.Em ascmagic .Em ascmagic
に入っている に入っている
キーワードのリストは、おそらくマジックファイルに キーワードのリストは、おそらく
.Pa Magic
ファイルに
入れるべきものです。 入れるべきものです。
これはオフセットの値として `*' のようなキーワードを これはオフセットの値として `*' のようなキーワードを
使うことで可能でしょう。 使うことで可能でしょう。
@ -385,9 +474,15 @@ System V
マジックファイル上の位置ではなく、 マジックファイル上の位置ではなく、
ファイルオフセット順にすることはできないだろうか。 ファイルオフセット順にすることはできないだろうか。
.Pp .Pp
プログラムは、推定が「どれぐらいよい」のかを知る方法を プログラムは、推定が
提供すべきです。ファイルの最初の 5 文字が ``From '' .Dq どれぐらいよい
であるときに推測をしても、``Newsgroups:'' や "Return-Path:" のかを知る方法を
提供すべきです。ファイルの最初の 5 文字が
.Dq From\ \&
であるときに推測をしても、
.Dq Newsgroups:
.Dq Return-Path:
といった文字による推測ほどよくはないので、推測結果を といった文字による推測ほどよくはないので、推測結果を
捨てることになります。しかし、もしそういった文字が 捨てることになります。しかし、もしそういった文字が
現れなければ最初の推定を使わなければなりません。 現れなければ最初の推定を使わなければなりません。
@ -395,11 +490,12 @@ System V
このプログラムは、いくつかの商用の このプログラムは、いくつかの商用の
.Nm .Nm
コマンドより遅いです。 コマンドより遅いです。
複数の文字コードのサポートにより、より遅くなっています。
.Pp .Pp
このマニュアルページ、特にこの節が長過ぎます。 このマニュアルページ、特にこの節が長過ぎます。
.Sh 入手性 .Sh 入手性
オリジナル作者の最新のバージョンを anonymous FTP で、 オリジナル作者の最新のバージョンを anonymous FTP で、
.Em ftp.deshaw.com .Pa ftp.deshaw.com
.Pa /pub/file/file-X.YY.tar.gz .Pa /pub/file/file-X.YY.tar.gz
から手に入れることができます。 から手に入れることができます。

View file

@ -33,7 +33,7 @@
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" @(#)disklabel.8 8.2 (Berkeley) 4/19/94 .\" @(#)disklabel.8 8.2 (Berkeley) 4/19/94
.\" %FreeBSD: src/sbin/disklabel/disklabel.8,v 1.15.2.3 2000/10/31 01:32:23 jkh Exp % .\" %FreeBSD: src/sbin/disklabel/disklabel.8,v 1.15.2.7 2000/12/28 16:45:04 hoek Exp %
.\" .\"
.\" jpman %Id: disklabel.8,v 1.2 1997/03/31 14:09:16 horikawa Stab % .\" jpman %Id: disklabel.8,v 1.2 1997/03/31 14:09:16 horikawa Stab %
.\" .\"
@ -44,51 +44,44 @@
.Nm disklabel .Nm disklabel
.Nd ディスクラベルの読み書きを行う .Nd ディスクラベルの読み書きを行う
.Sh 書式 .Sh 書式
.Nm disklabel .Nm
.Op Fl r .Op Fl r
.Ar disk .Ar disk
.br .Nm
.Nm disklabel
.Fl w .Fl w
.Op Fl r .Op Fl r
.Ar disk Ar disktype .Ar disk Ar disktype
.Oo Ar packid Oc .Oo Ar packid Oc
.br .Nm
.Nm disklabel
.Fl e .Fl e
.Op Fl r .Op Fl r
.Ar disk .Ar disk
.br .Nm
.Nm disklabel
.Fl R .Fl R
.Op Fl r .Op Fl r
.Ar disk Ar protofile .Ar disk Ar protofile
.br .Nm
.Nm disklabel
.Op Fl NW .Op Fl NW
.Ar disk .Ar disk
.sp .Pp
.br .Nm
.Nm disklabel
.Fl B .Fl B
.Oo .Oo
.Fl b Ar boot1 .Fl b Ar boot1
.Fl s Ar boot2 .Fl s Ar boot2
.Oc .Oc
.Ar disk .Ar disk
.Oo Ar disktype Oc .Oo Ar disktype/auto Oc
.br .Nm
.Nm disklabel
.Fl w .Fl w
.Fl B .Fl B
.Oo .Oo
.Fl b Ar boot1 .Fl b Ar boot1
.Fl s Ar boot2 .Fl s Ar boot2
.Oc .Oc
.Ar disk Ar disktype .Ar disk Ar disktype/auto
.Oo Ar packid Oc .Oo Ar packid Oc
.br .Nm
.Nm disklabel
.Fl R .Fl R
.Fl B .Fl B
.Oo .Oo
@ -96,9 +89,7 @@
.Fl s Ar boot2 .Fl s Ar boot2
.Oc .Oc
.Ar disk Ar protofile .Ar disk Ar protofile
.Oo Ar disktype Oc .Oo Ar disktype/auto Oc
.\" 注: 上記 .br は改行動作のために挿入
.\" By horikawa@jp.freebsd.org (30 Mar 1997)
.Sh 解説 .Sh 解説
.Nm .Nm
はディスクドライブやディスクパックにラベルを書き込んだり、 はディスクドライブやディスクパックにラベルを書き込んだり、
@ -122,7 +113,7 @@
.Nm .Nm
による操作のほとんどは による操作のほとんどは
メモリ内にあるラベルのコピーに対してアクセスします。 メモリ内にあるラベルのコピーに対してアクセスします。
(ディスク上に存在する)ラベルにアクセスするためには (ディスク上に存在する) ラベルにアクセスするためには
.Fl r .Fl r
オプションを使用します。 オプションを使用します。
このオプションにより、 このオプションにより、
@ -137,23 +128,30 @@
.Ss ディスクデバイス名 .Ss ディスクデバイス名
.Pp .Pp
全ての 全ての
.Nm disklabel
の書式で、ディスクのデバイス名が必要です。
ディスクのデバイス名は必ずローデバイスで
.if t 「全体」を表すパーティション (すなわち ``c'')
.if n 「全体」を表すパーティション (すなわち "c")
でなければなりません。
.if t 「全体」を表すパーティション (すなわち ``c'')
.if n 「全体」を表すパーティション (すなわち "c")
とは、例えば
.Pa /dev/da0c
です。
.Nm .Nm
の書式で、ディスクのデバイス名が必要です。
ディスクのデバイス名は、
ディスクまたはスライスを示すローデバイス名でなければなりません。
例えば
.Pa da0 .Pa da0
といった省略形を内部で は DOS パーティションに無関係でディスク全体を表し、
.Pa /dev/da0c .Pa da0s1
に変換するため、省略形も使用できます。 はスライスを表します。
デバイスによっては、特に
.Ar ccd
では、
.Dq ディスク全体を示す
(または
.Dq c )
パーティションを必要とします。
例えば
.Pa ccd0c
です。
デバイス指定時には、
.Pa /dev/
のパスプレフィックスを付ける必要はありません。
.Nm
は自動的にこれを前に付けます。
.Ss ディスクラベルの読み込み .Ss ディスクラベルの読み込み
.Pp .Pp
ラベルをディスクドライブに保存したり確認するためには ラベルをディスクドライブに保存したり確認するためには
@ -161,7 +159,7 @@
.Nm .Nm
を使用します。 を使用します。
.Pp .Pp
.Nm disklabel .Nm
.Op Fl r .Op Fl r
.Ar disk .Ar disk
.Pp .Pp
@ -182,17 +180,25 @@
.Fl r .Fl r
フラグが与えられると、 フラグが与えられると、
ディスク上の実際のラベルが表示されます。 ディスク上の実際のラベルが表示されます。
通常は、どちらでも同じ結果となりますが、
ラベルが未初期化の場合とまたは壊れている場合には、違う結果となります。
.Ss 標準的なラベルの書き込み .Ss 標準的なラベルの書き込み
.Pp .Pp
標準的なラベルを書き込むには、 標準的なラベルを書き込むには、
以下の書式を使います。 以下の書式を使います。
.Pp .Pp
.Nm disklabel .Nm
.Fl w .Fl w
.Op Fl r .Op Fl r
.Ar disk Ar disktype .Ar disk Ar disktype/auto
.Oo Ar packid Oc .Oo Ar packid Oc
.Pp .Pp
.Nm
.Fl w
.Op Fl r
.Ar disk
auto
.Pp
コマンドには引数として、ラベルを書き込むドライブ名および コマンドには引数として、ラベルを書き込むドライブ名および
.Pa disktab(5) .Pa disktab(5)
に書かれているドライブタイプが必要です。 に書かれているドライブタイプが必要です。
@ -233,12 +239,34 @@ disktab
ディスクに対するラベルの書き込みは唯一サポートされた操作であり、 ディスクに対するラベルの書き込みは唯一サポートされた操作であり、
.Ar disk .Ar disk
自身は標準の名前 (フルパス名であってはなりません) で提供される必要があります。 自身は標準の名前 (フルパス名であってはなりません) で提供される必要があります。
.Pp
PC ベースのシステムでは、
BIOS に正しく
.Fx
ディスクラベルを認識させるために、特別な要件があります。
古いシステムでは、
.Dq 危険な方法で専用化された
ディスクラベルが必要かもしれません。
これは、偽の DOS パーティションを作成することにより、
最近のディスクのジオメトリに対して古い BIOS が引き起す問題を
回避するというものです。
新しいシステムでは、通常の DOS スライスを
.Ar fdisk
で作成して、このスライス中に
.Fx
ディスクラベルを作成すれば良いでしょう。
本件についてはこのマニュアルで後述します。
.Pp
新規ディスクラベルをインストールするだけでは、
このラベルでシステムをブートさせることは出来ません。
ブートブロックもまたインストールする必要があります。
本件についてはこのマニュアルで後述します。
.Ss 既存のディスクラベルの編集 .Ss 既存のディスクラベルの編集
.Pp .Pp
既存のディスクラベルを編集するには、 既存のディスクラベルを編集するには、
以下の書式を使います。 以下の書式を使います。
.Pp .Pp
.Nm disklabel .Nm
.Fl e .Fl e
.Op Fl r .Op Fl r
.Ar disk .Ar disk
@ -264,7 +292,7 @@ disktab
ファイルからディスクラベルを復元するには、 ファイルからディスクラベルを復元するには、
以下の書式を使います。 以下の書式を使います。
.Pp .Pp
.Nm disklabel .Nm
.Fl R .Fl R
.Op Fl r .Op Fl r
.Ar disk Ar protofile .Ar disk Ar protofile
@ -285,21 +313,21 @@ disktab
後述のブートオプションを参照してください。 後述のブートオプションを参照してください。
.Ss ディスクラベル領域への書き込みの有効化および無効化 .Ss ディスクラベル領域への書き込みの有効化および無効化
.Pp .Pp
デフォルトでは デフォルトでは
ディスクの先頭領域にあるディスクラベル領域への書き込みは不可能です。 ディスクの先頭領域にあるディスクラベル領域への書き込みは不可能です。
ディスクドライバはいかなる操作も無視します。 ディスクドライバはいかなる操作も無視します。
もし(例えばラベルを消去するなど) もし (例えばラベルを消去するなど)
この領域への書き込みを行う必要があるならば、 この領域への書き込みを行う必要があるならば、
以下の書式を使います。 以下の書式を使います。
.Pp .Pp
.Nm disklabel .Nm
.Op Fl W .Op Fl W
.Ar disk .Ar disk
.Pp .Pp
ラベルの書き込みを可能にした後に不可能にするには ラベルの書き込みを可能にした後に不可能にするには
以下のコマンドを使います。 以下のコマンドを使います。
.Pp .Pp
.Nm disklabel .Nm
.Op Fl N .Op Fl N
.Ar disk .Ar disk
.Ss ブートストラップのインストール .Ss ブートストラップのインストール
@ -308,7 +336,7 @@ disktab
の最後の 3 つの書式は、ブートストラップコードを の最後の 3 つの書式は、ブートストラップコードを
インストールするために使われます: インストールするために使われます:
.Pp .Pp
.Nm disklabel .Nm
.Fl B .Fl B
.Oo .Oo
.Fl b Ar boot1 .Fl b Ar boot1
@ -320,7 +348,7 @@ disktab
この書式ではブートストラップのみインストールします。 この書式ではブートストラップのみインストールします。
ディスクラベルは変更しません。 ディスクラベルは変更しません。
.Pp .Pp
.Nm disklabel .Nm
.Fl w .Fl w
.Fl B .Fl B
.Oo .Oo
@ -330,12 +358,17 @@ disktab
.Ar disk Ar disktype .Ar disk Ar disktype
.Oo Ar packid Oc .Oo Ar packid Oc
.Pp .Pp
.if t この書式は前述の ``ラベルの書き込み'' コマンドと一致します。 この書式は前述の
.if n この書式は前述の "ラベルの書き込み" コマンドと一致します .Dq ラベルの書き込み
コマンドと一致します。
新しいボリュームラベルを書き込むとともに 新しいボリュームラベルを書き込むとともに
ブートストラップのインストールもおこないます。 ブートストラップのインストールもおこないます。
ベースディスクに対して本コマンドを実行すると、
.Dq 危険な方法で専用化された
ラベルを作成します。
本コマンドは、通常、ベースディスクではなくスライスに対して実行します。
.Pp .Pp
.Nm disklabel .Nm
.Fl R .Fl R
.Fl B .Fl B
.Oo .Oo
@ -345,8 +378,9 @@ disktab
.Ar disk Ar protofile .Ar disk Ar protofile
.Oo Ar disktype Oc .Oo Ar disktype Oc
.Pp .Pp
.if t この書式は前述の ``ラベルの復元'' コマンドと一致します. この書式は前述の
.if n この書式は前述の "ラベルの復元" コマンドと一致します. .Dq ラベルの復元
コマンドと一致します.
ボリュームラベルを復元するとともに ボリュームラベルを復元するとともに
ブートストラップのインストールもおこないます。 ブートストラップのインストールもおこないます。
.Pp .Pp
@ -382,8 +416,9 @@ disktab
このディスクに対する このディスクに対する
.Xr disktab 5 .Xr disktab 5
エントリの エントリの
.if t ``b0'' および ``b1'' .Dq b0
.if n "b0" および "b1" および
.Dq b1
パラメータより得られます。 パラメータより得られます。
.It .It
そうでない場合、デフォルトのブートイメージ名は そうでない場合、デフォルトのブートイメージ名は
@ -394,6 +429,62 @@ disktab
になります (詳細はアーキテクチャによって異なり、 になります (詳細はアーキテクチャによって異なり、
Alpha においては単一ステージのブートが使用されます)。 Alpha においては単一ステージのブートが使用されます)。
.El .El
.Ss スクラッチからの、ブート可能ディスクの初期化/フォーマット
.Pp
ディスクをスクラッチから初期化するには、次の手順をお勧めします。
この手順は、FreeBSD 以外のスライスを含む、
ディスク上のすべてを削除してしまうことに注意してください。
.Bl -enum
.It
.Ar fdisk
を使用して、DOS パーティションテーブルを作成します。
これにより、
.Fx
ディスクラベルを保持するディスク全体のスライスを作成し、
マスタブートレコードをインストールします。
.It
.Ar disklabel
を使用して、最初の
.Fx
ディスクラベルを初期化し、
.Fx
ブートブロックをインストールします。
.It
.Ar disklabel
を使用して、新規に作成したラベルを編集し、適切なパーティションを追加します。
.It
最後に、ラベル中に作成したファイルシステムパーティションを newfs します。
典型的なディスクラベルのパーティショニング方式では、
.Dq a
パーティションは約 128MB でルートファイルシステムを、
.Dq b
パーティションはスワップを、
.Dq d
パーティションは /var を (通常 128MB)、
.Dq e
パーティションは /var/tmp を (通常 128MB)、
.Dq f
パーティションは /usr を (通常 2G くらい)、
.Dq g
パーティションは /home を (通常、残り)、
それぞれ割り当てます。
これは、システムによって異なります。
.El
.Pp
.Nm fdisk Fl BI Ar da0
.Pp
.Nm
.Fl w
.Fl r
.Fl B
.Ar da0s1
auto
.Pp
.Pp
.Nm
.Fl e
.Ar da0s1
.Pp
.Sh 関連ファイル .Sh 関連ファイル
.Bl -tag -width Pa -compact .Bl -tag -width Pa -compact
.It Pa /etc/disktab .It Pa /etc/disktab
@ -403,7 +494,7 @@ Alpha
.Nm .Nm
ディスクラベルを確認、編集、または復元する際に ディスクラベルを確認、編集、または復元する際に
アスキー形式のラベルを使用します。 ASCII 形式のラベルを使用します。
フォーマットは以下のとおりです。 フォーマットは以下のとおりです。
.Bd -literal -offset 4n .Bd -literal -offset 4n
# /dev/da1c: # /dev/da1c:
@ -452,7 +543,9 @@ flags
が指定可能です。 が指定可能です。
.Ar removable .Ar removable
はリムーバブルメディアドライブに対して設定されますが、 はリムーバブルメディアドライブに対して設定されますが、
現在の FreeBSD のドライバはこのフラグを 現在の
.Fx
のドライバはこのフラグを
評価しません。 評価しません。
.Ar ecc .Ar ecc
はサポートされていません。 はサポートされていません。
@ -504,22 +597,31 @@ UFS
LFS ファイルシステムに対しては、 LFS ファイルシステムに対しては、
セグメントシフト値を意味します。 セグメントシフト値を意味します。
.El .El
.Pp
行の残りの部分はコメントで、 行の残りの部分はコメントで、
ドライブの ドライブの
一般的には使われていない(しかし多分正確な)ジオメトリ情報に 一般的には使われていない (しかし多分正確な) ジオメトリ情報に
基づいたシリンダの割り当て情報を示しています。 基づいたシリンダの割り当て情報を示しています。
アスタリスク (*) はパーティションがシリンダ境界で アスタリスク (*) はパーティションがシリンダ境界で
厳密にはじまっていない、もしくは終っていないことを意味します。 厳密にはじまっていない、もしくは終っていないことを意味します。
.Sh 使用例 .Sh 使用例
.Dl disklabel da0 .Dl disklabel da0s1
.Pp .Pp
da0 のラベルとしてカーネル内のコピーを .Pa da0s1
.Pa /dev/da0c のラベルとしてカーネル内のコピーを
.Pa /dev/da0s1
から得られたものとして表示します。 から得られたものとして表示します。
ラベルを読み込み時には、ラベルがスライス上に存在する場合でも、
FreeBSD はベースディスク名を指定することを許しています。
しかしながら、厳密には、
ベースディスク名を指定するのは
.Dq 危険な方法で専用化された
ラベルを使用する場合に限定してください。
通常は、スライスを指定してください。
.Pp .Pp
.Dl disklabel da0 > savedlabel .Dl disklabel da0s1 > savedlabel
.Pp .Pp
.Pa da0 .Pa da0s1
に対する に対する
カーネル内のコピーをファイルに カーネル内のコピーをファイルに
.Pa savedlabel .Pa savedlabel
@ -528,39 +630,43 @@ da0
.Fl R .Fl R
フラグを用いてラベルを復元する際に使用できます。 フラグを用いてラベルを復元する際に使用できます。
.Pp .Pp
.Dl disklabel -w -r /dev/da0c da2212 foo .Dl disklabel -w -r /dev/da0s1 da2212 foo
.Pp .Pp
.Pa /etc/disktab .Pa /etc/disktab
に書かれている に書かれている
.if t ``da2212'' .Dq da2212
.if n "da2212"
の情報を の情報を
da0 のラベルとして書き込みます。 .Pa da0s1
のラベルとして書き込みます。
存在したブートストラップコードは使えなくなります。 存在したブートストラップコードは使えなくなります。
.Pp .Pp
.Dl disklabel -e -r da0 .Dl disklabel -e -r da0s1
.Pp .Pp
da0 のディスク上のラベルを読み込み、編集し、再び書き込みます。 .Pa da0s1
のディスク上のラベルを読み込み、編集し、再び書き込みます。
ディスク上のラベルとともにカーネル内コピーも書き換えられます。 ディスク上のラベルとともにカーネル内コピーも書き換えられます。
存在したブートストラップコードは影響を受けません。 存在したブートストラップコードは影響を受けません。
.Pp .Pp
.Dl disklabel -r -w da0 auto .Dl disklabel -r -w da0s1 auto
.Pp .Pp
da0 から必要な情報を自動検出し、新しいラベルをディスクに書こうとします。 .Pa da0s1
から必要な情報を自動検出し、新しいラベルをディスクに書こうとします。
パーティションおよびファイルシステム情報を編集するために、 パーティションおよびファイルシステム情報を編集するために、
この後で disklabel -e コマンドを使って下さい。 この後で disklabel -e コマンドを使って下さい。
.Pp .Pp
.Dl disklabel -R da0 savedlabel .Dl disklabel -R da0s1 savedlabel
.Pp .Pp
.Pa savedlabel .Pa savedlabel
に書かれている情報を に書かれている情報を
da0 のラベルとして書き込みます。 .Pa da0s1
のラベルとして書き込みます。
ディスク上のラベルとともにカーネル内コピーも書き換えられます。 ディスク上のラベルとともにカーネル内コピーも書き換えられます。
存在したブートストラップコードは影響を受けません。 存在したブートストラップコードは影響を受けません。
.Pp .Pp
.Dl disklabel -B da0 .Dl disklabel -B da0s1
.Pp .Pp
da0 に新たにブートストラップコードを書き込みます. .Pa da0s1
に新たにブートストラップコードを書き込みます.
ブートストラップコードは ブートストラップコードは
.Pa /boot/boot1 .Pa /boot/boot1
、およびもし必要ならば 、およびもし必要ならば
@ -568,17 +674,34 @@ da0
です。 です。
ディスク上のラベルおよびカーネル内コピーは影響を受けません。 ディスク上のラベルおよびカーネル内コピーは影響を受けません。
.Pp .Pp
.Dl disklabel -w -B /dev/da0c -b newboot1 -s newboot da2212 .Dl disklabel -w -B /dev/da0s1 -b newboot1 -s newboot da2212
.Pp .Pp
新たなラベルとブートストラップコードを書き込みます。 新たなラベルとブートストラップコードを書き込みます。
.if t ラベルは disktab ``da2212'' の情報を使用し、 ラベルは disktab の
.if n ラベルは disktab "da2212" の情報を使用し、 .Dq da2212
の情報を使用し、
ディスク上のラベルとともにカーネル内コピーも書き換えられます。 ディスク上のラベルとともにカーネル内コピーも書き換えられます。
ブートストラップコードは ブートストラップコードは
.Pa /boot/newboot1 .Pa /boot/newboot1
.Pa /boot/newboot2 .Pa /boot/newboot2
です。 です。
.Pp
.Dl dd if=/dev/zero of=/dev/da0 bs=512 count=32
.Dl fdisk -BI da0
.Dl dd if=/dev/zero of=/dev/da0s1 bs=512 count=32
.Dl disklabel -w -r -B da0s1 auto
.Dl disklabel -e da0s1
.Pp
ディスク上の既存の情報を完全に削除し、
単一の
.Dq ディスク全体
スライスを含む DOS パーティションテーブル付きの、
ブート可能ディスクを新規に作成します。
次にスライスを初期化し、編集します。
.Pa dd
はオプションですが、
BIOS によっては正しくディスクを認識するために必要です。
.Sh 関連項目 .Sh 関連項目
.Xr disklabel 5 , .Xr disklabel 5 ,
.Xr disktab 5 , .Xr disktab 5 ,
@ -593,23 +716,23 @@ da0
ラベルを作成するものがあります。 ラベルを作成するものがあります。
そのため、 そのため、
オープンされているディスクのラベルは オープンされているディスクのラベルは
.if t ``a'' .Dq a
.if n "a"
パーティションに書く必要があります。 パーティションに書く必要があります。
このような理由で、 このような理由で、
次の 2 ステップにより、 次の 2 ステップにより、
所望のラベルを作成する必要がある場合があります。 所望のラベルを作成する必要がある場合があります。
第 1 ステップは少なくとももう 1 つのパーティションを作成することであり、 第 1 ステップは少なくとももう 1 つのパーティションを作成することであり、
第 2 ステップは 第 2 ステップは
.if t ``a'' .Dq a
.if n "a"
パーティションを小さくしながら パーティションを小さくしながら
新たなパーティションのラベルを設定することです。 新たなパーティションのラベルを設定することです。
.Pp .Pp
ファイルシステムによっては、 ファイルシステムによっては、
用意された領域にブートストラップコードが収まり切らないような 用意された領域にブートストラップコードが収まり切らないような
マシンがあるかも知れません マシンがあるかも知れません
その結果として、``ブート可能な'' ディスクのパーティションに その結果として、
.Dq ブート可能な
ディスクのパーティションに
ファイルシステムを作成できない場合があります。 ファイルシステムを作成できない場合があります。
ブートストラップコードを書き込む時に、 ブートストラップコードを書き込む時に、
.Nm .Nm
@ -626,8 +749,9 @@ FS_BOOT
はそのパーティションに重なるようなブートストラップコードを書き込みません。 はそのパーティションに重なるようなブートストラップコードを書き込みません。
.Sh バグ .Sh バグ
ディスク名がフルパスで指定されない場合には、 ディスク名がフルパスで指定されない場合には、
.if t デバイス名は ``c'' パーティションになります。 デバイス名は
.if n デバイス名は "c" パーティションになります。 .Dq c
パーティションになります。
.Pp .Pp
i386 アーキテクチャでは、プライマリブートストラップセクタに、 i386 アーキテクチャでは、プライマリブートストラップセクタに、
組み込みの 組み込みの