スポンサーリンク

BSDLABEL(8) FreeBSD システム管理者マニュアル BSDLABEL(8)

名称

bsdlabel − ディスクラベルの読み書きを行う

書式

bsdlabel [−A] disk | −f file

bsdlabel −w [−An] [−B [−b boot]] [−m machine] disk | −f file [type]

bsdlabel −e [−An] [−B [−b boot]] [−m machine] disk | −f file

bsdlabel −R [−An] [−B [−b boot]] [−m machine] [−f] disk | −f file protofile

解説

bsdlabel ユーティリティは、ディスクパーティションやパーティションイメージ を含むファイル上に BSD ラベルを書きこんだり、確認したり、修正したりするた めに使われます。また bsdlabel は同時にブートストラップコードをインストー ルすることもできます。

ディスクデバイス名

デバイス指定時 (すなわち −f オプションが使われていない場合) には、 /dev/ のパスプレフィックスは省略可能です。 bsdlabel ユーティリティは自動的にこ れを前に付けます。

一般的なオプション

−A オプションをつけると、 BSD ラベルの中で歴史的な理由で残っている部分を 処理できるようになります。このオプションを与えない場合、これらのフィール ドには適切な値が設定されます。

−f オプションは、ディスクパーティションの代わりにファイルに対して操作を行 なうよう bsdlabel に指示します。

−n オプションは、ディスクが変更される直前で bsdlabel の実行を止め、実行結 果をディスクに書きこまずに表示します。

−m machine 引数は、指定されたマシンに合ったレイアウトを使うように bsdlabel に指示を行います。

ディスクラベルの読み込み

ディスクドライブ上のラベルを確認するためにはオプションを指定せずに bsdlabel を使用します。

bsdlabel [−A] [−m machine] disk

disk は対象とするディスクを示します。また da0/dev/da0 のような書式で も指定することができます。これによってパーティションのレイアウトを表示し ます。

標準的なラベルの書き込み

標準的なラベルを書き込むには、以下の書式を使います。

bsdlabel −w [−An] [−m machine] disk [type]

ドライブの種類が指定されている場合、 disktab(5) ファイル内の同名のエント リが使用され、指定されていない場合はデフォルトのレイアウトが使われます。

既存のディスクラベルの編集

既存のディスクラベルを編集するには、以下の書式を使います。

bsdlabel −e [−An] [−m machine] disk

このコマンドは、デフォルトのエディタでディスクラベルをオープンし、エディ タ終了時にディスクラベルを検証し、正しければそれをディスクに書きこみま す。

ファイルからのディスクラベルの復元

ファイルからディスクラベルを復元するには、以下の書式を使います。

bsdlabel −R [−An] [−m machine] disk protofile

bsdlabel は以前の操作により ASCII フォーマットのファイルに保存されたディ スクラベルを復元することができます。ラベルを作成するときに使われるプロト タイプファイルは、ラベルを読み込んだり編集したりするときのものと同じ フォーマットである必要があります。コメントは ‘#’ と改行で区切られます。

ブートストラップのインストール

−B 引数が指定された場合、ブートストラップコードが /boot/boot から読みこま れ、それがディスクに書きこまれます。 −b boot 引数を用いると、別のファイル が使用できます。

関連ファイル

       /boot/boot

デフォルトのブートイメージ
/etc/disktab
ディスクを説明したファイル

保存されたファイルの書式

bsdlabel ユーティリティは、ディスクラベルを確認、編集、または復元する際に ASCII 形式のラベルを使用します。フォーマットは以下のとおりです。

    8 partitions:
    #        size   offset    fstype   [fsize bsize bps/cpg]
      a:    81920        0    4.2BSD     1024  8192    16
      b:   160000    81920      swap
      c:  1173930        0    unused        0     0         # "raw" part, don’t edit

−A オプションが指定されている場合、フォーマットは次のようになります:

    # /dev/da1c:
    type: SCSI
    disk: da0s1
    label:
    flags:
    bytes/sector: 512
    sectors/track: 51
    tracks/cylinder: 19
    sectors/cylinder: 969
    cylinders: 1211
    sectors/unit: 1173930
    rpm: 3600
    interleave: 1
    trackskew: 0
    cylinderskew: 0
    headswitch: 0           # milliseconds
    track-to-track seek: 0  # milliseconds
    drivedata: 0

   8 partitions:
    #        size   offset    fstype   [fsize bsize bps/cpg]
      a:    81920        0    4.2BSD     1024  8192    16
      b:   160000    81920      swap
      c:  1173930        0    unused        0     0         # "raw" part, don’t edit

‘#’ で始まる行はコメントです。

パーティションテーブルは 8 つまでエントリを持つことができ、以下の情報を含 みます:

       #

パーティションの識別子は ‘a’ から ‘h’ の 1 文字です。慣例的な理由 により、 ‘c’ パーティションはディスク全体を表すために予約されてい ます。

size
セクタ単位でのパーティションの大きさです。 K (キロバイト - 1024), M (メガバイト - 1024*1024), G (ギガバイト - 1024*1024*1024), % ( ‘c’ 以外の固定長のパーティションを取り除いた 後の空間に対するパー セント)か、 * (固定長のパーティションとパーセント指定のパーティ ションを取り除いた 後の空間すべて)。パーティション ‘c’ に対して * を指定すると、ディスク全体を意味します。小文字の K, M, G も許され ます。大きさと型の間には空白を入れてはなりません。

例: 2097152, 1G, 1024M, 1048576K はすべて同じ大きさです (512 バイ トセクタを仮定)。

offset
ドライブの先頭からパーティションの開始位置までのオフセット値 (セ クタ単位)です。 * は、使用すべき正しいオフセット (直前のパーティ ションの終端に 1 を加えたもの) を、 bsdlabel に計算させます。ただ しパーティション ‘c’ は無視します。パーティション ‘c’ に対して は、 * はオフセット 0 と解釈されます。

fstype
パーティションの使用目的を表します。例では現在使用されているパー ティション型を示します。 UFS ファイルシステムおよび ccd(4) では 4.2BSD が使われます。 Vinum ドライブでは vinum が使われます。他の 一般的な型は swapunused です。取り決めでは、パーティション ‘c’ はスライス全体を表し、型 unused であるべきですが、 bsdlabel はこの取り決めを強制しません。 bsdlabel ユーティリティは多くの他 のパーティション型を知っていますが、それらは現在使用されていませ ん (詳細は、 <sys/disklabel.h> ファイルで FS_UNUSED で始まってい る定義を参照してください)。

fsize
4.2BSD
と LFS のファイルシステムに対してのみ有効です。フラグメン トの大きさを意味します。 1 GB 未満のパーティションに対するデフォ ルトは 1024 で、 1 GB 以上に対するデフォルトは 4096 です。

bsize
4.2BSD
と LFS のファイルシステムに対してのみ有効です。ブロックの 大きさを意味します。 1 GB 未満のパーティションに対するデフォルト は 8192 で、 1 GB 以上に対するデフォルトは 16384 です。

bps/cpg
4.2BSD
ファイルシステムに対しては、シリンダグループ中のシリンダ数 を意味します。 LFS ファイルシステムに対しては、セグメントシフト値 を意味します。 1 GB 未満のパーティションに対するデフォルトは 16 で、 1 GB 以上に対するデフォルトは 64 です。

使用例

bsdlabel da0s1

da0 の最初のスライス用に、 /dev/da0s1 から得たものとしてラベルを表示しま す

bsdlabel da0s1 > savedlabel

da0s1 に対するカーネル内のコピーをファイルに savedlabel に保存します。こ のファイルは後で −R オプションを用いてラベルを復元する際に使用できます。

bsdlabel -w /dev/da0s1

da0s1 のラベルを作成します。

bsdlabel -e da0s1

da0s1 のラベルを読み込み、編集し、その結果を書き込みます。

bsdlabel -e -n da0s1

da0s1 のディスク上のラベルを読み、編集し、新規ラベルがどのようになるかを (セクタ単位で) 表示します。新規ラベルは、メモリにもディスクにもインストー ル しません。

bsdlabel -w da0s1

da0s1 にデフォルトのラベルを書きこみます。パーティション情報やファイルシ ステム情報を編集するには、この後で bsdlabel −e コマンドを使って下さい。

bsdlabel -R da0s1 savedlabel

savedlabel に書かれている情報を da0s1 のラベルとして書き込みます。ディス ク上のラベルとともにカーネル内コピーも書き換えられます。

bsdlabel -R -n da0s1 label_layout

パーティションレイアウト label_layout を使用すると、 da0s1 のラベルがどの ようになるかを表示します。 %* に基くパーティションの大きさ指定を使用 するラベル方式を使用した場合に、各パーティションにどれだけ割り当てられる かを判定するのに有用です。

bsdlabel -B da0s1

da0s1 に新たにブートストラップコードを書き込みます. ブートストラップコー ドは /boot/boot です。

bsdlabel -w -B -b newboot /dev/da0s1

新たなラベルとブートストラップコードを書き込みます。ブートストラップコー ドはカレントディレクトリにある newboot です。

      dd if=/dev/zero of=/dev/da0 bs=512 count=32
      fdisk -BI da0
      dd if=/dev/zero of=/dev/da0s1 bs=512 count=32
      bsdlabel -w -B da0s1
      bsdlabel -e da0s1

ディスク上の既存の情報を完全に削除し、ディスク全体を覆う 1 つのスライスを 含んだ DOS パーティションテーブル付きのブート可能ディスクを新規に作成しま す。次にスライスを初期化し、編集します。 dd(1) はオプションですが、 BIOS によっては正しくディスクを認識するために必要です。

これは、 %, M, G, * といった新規パーティションサイズ型を使用する、ディス クラベルの例です。次のコマンドラインのソースファイルとして使用可能です: ‘‘bsdlabel -R ad0s1c new_label_file’’

    # /dev/ad0s1c:

   8 partitions:
    #        size   offset    fstype   [fsize bsize bps/cpg]

a: 400M 0 4.2BSD 4096 16384 75

# (Cyl. 0 - 812*)

b: 1G * swap
c: * * unused
e: 204800 * 4.2BSD
f: 5g * 4.2BSD
g: * * 4.2BSD

診断

デバイスドライバは、オープンされているパーティションに関して、サイズが小 さくなることおよびオフセットが変化することを許しません。

互換性

u_int32_t を用いてセクタ数を格納しているため、 BSD ラベルは最大 2^32-1 セ クタに制限されます。これは通常 2TB のディスク容量を意味します。これより大 きなディスクをパーティションを分けるには、例えば gpt(8) などの別の方法を 使う必要があります。各々の BSD は、少しずつ異なったバージョンの BSD ラベ ルを使用しており、一般的に互換性はありません。

関連項目

ccd(4), geom(4), md(4), disktab(5), boot0cfg(8), fdisk(8), gpt(8)

FreeBSD 10.0 March 15, 2003 FreeBSD 10.0

スポンサーリンク