訳註: これは作業してる最中のもので、本来、訳作業者以外は見えぬべきものです。 訳作業者以外は見ないでください。意味が反対になったりとか当然にあるから、 内容は利用しないでください。この言語への変換作業(翻訳作業)物に関しては、現在、オープンなライセンス条件ではありません。 十進240のコードのキャラクターを<240>に置換してる場合あり
Chapter22.Miscellaneous operations

Table of Contents

22.1. Installing the boot manager
22.2. Deleting the disklabel
22.3. Speaker
22.4. Forgot root password?
22.5. Password file is busy?
22.6. Adding a new hard disk
22.7. How to rebuild the devices in /dev

この章ではさまざまな topics を、まばらな順序で収集してます

22.1.Installing the boot manager

Sysinst 、 NetBSD インストールプログラムは通常、 NetBSD boot manager をハードディスクにインストールします。 boot manager もまた、インストールも再設定も後からでも行うことができ、 必要なら、 fdisk コマンドで行います。 例えば:

# fdisk -B wd0

もし NetBSD がハードディスクから起動しなければ、 インストールフロッピーから起動しハードディスク上のカーネルを start できます。 インストールディスクを入れて、そしてブートプロンプトで次のコマンドを与えます:

> boot wd0a:netbsd

これでハードディスクから起動します (正しいデバイスを使ってください。 例えば SCSI disk には sd0a)。

時々 fdisk -B は期待した結果に ならないことがあります(少なくとも私の場合ありました)。 多分、 Windows 95 や Linux with LILO のような他のオペレーティングシステムを インストールしたり消したりしたことでしょう。 この場合、fdisk -i ( これは DOS での fdisk /mbr として知られています) を running してみて、そして再び NetBSD から fdisk の run を試してください。.

22.2.Deleting the disklabel

これはあまり頻繁に行う操作ではありませんけれども、 必要な場合、方法を知っていると重宝します。 この種の操作は、行う前に、何をするのか正確に理解するようにしてください。 例えば:

# dd if=/dev/zero of=/dev/rwd0c bs=8k count=1

このコマンドでディスクラベルは消えます (MBR パーティションテーブルではなく )。 ディスクを完全に消去するには、 全体デバイス rwd0d を使います。 例えば:

# dd if=/dev/zero of=/dev/rwd0d bs=8k

上のコマンドは NetBSD の i386 および amd64 ports のみで期待したように work します。 ほかの ports では、デバイス全体は最後が c で d ではありません(例 rwd0c)。

22.3.Speaker

この tip は私(訳註:ガイドの原著者)がメーリングリストで見つけました(著者は思い出せません)。 スピーカーから sound を出力する(例えば、長いスクリプトの終わりに ) には、 spkr ドライバーが カーネル設定の中で使えて、 /dev/speaker に mapped されています。例えば:

echo 'BPBPBPBPBP' > /dev/speaker

spkr デバイスは generic カーネルでは有効ではなく; カスタム化されたカーネルが必要です。

22.4.Forgot root password?

もしルートのパスワードを忘れたら、全ては失わないで、 まだ次のステップでシステムをリカバーでき: シングルユーザーで boot し、 mount / して root の パスワードを変更します。 詳細は:

  1. シングルユーザーで Boot し: boot prompt が現れ 5秒のカウントダウンが開始した時、次のコマンドを与え:

    > boot -s
  2. 次の prompt で

    Enter pathname of shell or RETURN for sh:

    Enterを押します。

  3. 次のコマンドを Write:

    # fsck -y /
    # mount -u /
    # fsck -y /usr
    # mount /usr
  4. root のパスワードを変更します:

    # passwd root
    Changing local password for root.
    New password: (not echoed)
    Retype new password: (not echoed)
    # 
  5. シェルを抜け、マルチユーザーモードに行きます。

    # exit

Password file is busy とエラーが出た場合は、 下の節を御覧ください。

22.5.Password file is busy?

もしパスワードを変更しようと試して、ミステリアスなメッセージ、 Password file is busy が出たら、 恐らくその意味は、 /etc/ptmp ファイルが システムから消されていないと言うことです。このファイルは /etc/master.passwd ファイルの temporary copy で; 重要な情報を失わない様チェックして、それから消します:

 # rm /etc/ptmp 

もし /etc/ptmp ファイルが存在すると、 システム startup 時にも warning メッセージを receive することが有り得ます。 例えば:

root: password file may be incorrect - /etc/ptmp exists

22.6.Adding a new hard disk

この節は、既に動作中の NetBSD システムに、新しいハードディスクを追加する方法を記述します。 次の例では 新しい SCSI コントローラーおよびそのコントローラーに接続した新しいハードディスク、 を追加します。新しいコントローラーの追加が不要なら、 その関連部分を飛ばし、ハードディスクの設定に行ってください。 IDE ハードディスクの installation も同じで; デバイス名だけが違います (sd# の代わりに wd#)。

常に、新しいハードウェアーを買う前に、 NetBSD の ハードウェアー 互換性リストを参照し、そしてシステムが、その新しいデバイスを サポートしているか確認してください。

SCSI コントローラーがシステムに物理的に installed され、 新しいハードディスクが接続されると、計算機を restart し、 デバイスが正しく検出されるか dmesg コマンドを使って 確認するときが来ました。これは NCR-875 コントローラーでのサンプル出力です:

ncr0 at pci0 dev 15 function 0: ncr 53c875 fast20 wide scsi
ncr0: interrupting at irq 10
ncr0: minsync=12, maxsync=137, maxoffs=16, 128 dwords burst, large dma fifo
ncr0: single-ended, open drain IRQ driver, using on-chip SRAM
ncr0: restart (scsi reset).
scsibus0 at ncr0: 16 targets, 8 luns per target
sd0(ncr0:2:0): 20.0 MB/s (50 ns, offset 15)
sd0: 2063MB, 8188 cyl, 3 head, 172 sec, 512 bytes/sect x 4226725 sectors

もし、出力にデバイスが見当たらなければ、 利用しているカーネルがサポートしてるかチェックし; 必要なら、 カスタムカーネルをコンパイルします ( Chapter32, Compiling the kernelを御覧ください)。

さて、パーティションが fdisk コマンドを使って作れます。最初に、ディスクの現在の状況をチェックし:

# fdisk sd0
NetBSD disklabel disk geometry:
cylinders: 8188 heads: 3 sectors/track: 172 (516 sectors/cylinder)

BIOS disk geometry:
cylinders: 524 heads: 128 sectors/track: 63 (8064 sectors/cylinder)

Partition table:
0: sysid 6 (Primary 'big' DOS, 16-bit FAT (> 32MB))
    start 63, size 4225473 (2063 MB), flag 0x0
        beg: cylinder    0, head   1, sector  1
        end: cylinder  523, head 127, sector 63
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>

この例では、ハードディスクには既に DOS パーティションが入っていて、削除して native NetBSD パーティションに置き換えます。コマンド fdisk -u sd0 でパーティションを interactively に変更できます。変更されたデータは exiting 前の時だけディスクに書かれ、また、 fdisk は 書き込む前に確認を求めてくるので、緊張せずに作業できます。

BIOS パーティションを作るには、コマンド fdisk -u が必ず使われ; 結果は次のように:

Partition table:
0: sysid 169 (NetBSD)
    start 63, size 4225473 (2063 MB), flag 0x0
        beg: cylinder    0, head   1, sector  1
        end: cylinder  523, head 127, sector 63
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>

さて、 NetBSD パーティションのために ディスクラベルを作るときが来ました。この正しいステップは:

# disklabel sd0 > tempfile
# vi tempfile
# disklabel -R -r sd0 tempfile

さて、既に説明された tempfile を編集して、 いくつかディスクラベルパーティションを作ります。 結果は:

#      size   offset   fstype [fsize bsize   cpg]
a:  2048004       63   4.2BSD   1024  8192    16 # (Cyl.  0*- 3969*)
c:  4226662       63   unused      0     0       # (Cyl.  0*- 8191*)
d:  4226725        0   unused      0     0       # (Cyl.  0 - 8191*)
e:  2178658  2048067   4.2BSD   1024  8192    16 # (Cyl.  3969*- 8191*)

ディスクラベルが作られたとき、最適化することができ、コマンド newfs -N /dev/rsd0a の出力を調べると ディスクラベルパーティションの最後に、割り当てられていないセクターが存在すると warns してきます。 newfs が報告してきた値は、手順を繰り返し行う中で パーティションサイズの調整に使えます。

最後の操作は 新しく定義されたパーティション (a および e) にファイルシステムを作ります。

# newfs /dev/rsd0a
# newfs /dev/rsd0e

ディスクの利用の準備がここで整っていて、 2つのパーティションがマウントできます。 例えば:

# mount /dev/sd0a /mnt

これが成功すると、 /etc/fstab にパーティションの entry を put したくなるでしょう

22.7.How to rebuild the devices in /dev

最初に、シングルユーザーへとシャットダウンします。 パーティションはまだ rw (read-write)でマウントされています; これはマルチユーザーモードにいる間に 単に shutdown now と打つことでなります。または、 -s オプションで reboot し、 / および /dev を read-writable にします。

# mount -u /
# mount -u /dev

そして:

# mkdir /newdev
# cd /newdev
# cp /dev/MAKEDEV* .
# sh ./MAKEDEV all
# cd /
# mv dev olddev
# mv newdev dev
# rm -r olddev

または、全ソースを取得して /usr/src にあるなら:

# mkdir /newdev
# cd /newdev
# cp /usr/src/etc/MAKEDEV.local .
# ( cd /usr/src/etc ; make MAKEDEV )
# cp /usr/src/etc/obj*/MAKEDEV .
# sh ./MAKEDEV all
# cd /
# mv dev olddev; mv newdev dev
# rm -r olddev

$arch の決定には

# uname -m

または

# sysctl hw.machine_arch