---
[管理番号 22] (最終更新 2000/11/08 01:59:13)
Q. FreeBSD では MO, PD, DVD-RAM は使えますか?
A. FreeBSD のバージョンによってサポートされているレベルが異なりますが、もち
ろん使用できます。サポートしているドライバは、2.2 系では od(4) ドライバ、
3.0 以降は da(4) ドライバが対応しています。da トライバは HDD などの
Fixed Direct Access メディアと Removable メディアの共用になっています。
od ドライバは 3.0R で SCSI サブシステムが CAM に移行する際、開発が中断さ
れシステムから削除されてしまいました。
注意していただきたいのは 3.0R から 3.3R まで、これらのシステムには
/dev/od0* が存在していますが、実体は /dev/da* 即ち一番目の HDD を指して
います。このため、MO の boot block をクリアしようとして、間違えて HDD の
disk slice を破壊した人は多いようです。また、2.2 系からアップグレードし
たシステムでは、sd(4), od(4) から da(4) に統一されるため、SCSI ID の割り
当てによっては更に注意が必要でしょう。3.4R では /dev/od0* は作成されない
ようになっていますが、アップグレードした場合などは残ったままになりますの
で、この危険を未然に防ぎたければ rm /dev/od* すべきでしょう。
da ドライバの問題点として 512 bytes/sector にしか対応していない点が挙げ
られます。そのため 640MB 及び 1.2GB MO や DVD-RAM は使えません。また、そ
れ以外でも色々細かな問題が報告されています。
これらの点をふまえ、3.3R 以降、od ドライバが秋山さんによって公開されまし
た。これは現状では FreeBSD の標準ではなく、別途パッケージからインストー
ルする必要があります。まずは以下の URL をご覧ください。
マスターサイト
動作実績については以下の URL を参照してください。
また、PAO3 CVS リポジトリに上記パッケージはマージ済みで、3.3R 用の
PAO3-19991220 からは od ドライバを含みます。
それ以前の古いリリースについての事情は以下のようになっています。
PC/AT互換機版の場合
・2.1.0-RELEASE 以前ではサポートされていません。この際ですから 3.4R 以降
に移行することをお勧めします。
・2.1.5-RELEASE & 2.1.6-RELEASE の場合事前にカーネルの再構築が必要です。
CONFIG ファイルに "device od0" を追加すると 512 bytes/sector のタイプ
(128MB, 230MB, 540MB) が使えます。
・2.2.x-RELEASE 系は 標準で含まれており、512 bytes/sector のタイプが使え
ます。さらに 2048 bytes/sector タイプのものが使いたければ、
をインストールしてください。これは 2.2.8R にも対応しています。
PC-9801/PC-9821用の場合
2.1.x 系では正式にサポートされていません。2.2.x 系以降では PC/AT 互換
機用と同一です。
---
[管理番号 68] (最終更新 1999/02/17 23:58:45)
Q. MO や PD などの光ディスクメディアに FreeBSD をインストールし、そこ
からブートさせることは可能ですか?
A. できます。2.2.5-RELEASE からは od-driver パッケージを利用してください。
これは、
から入手可能です。
2.2.1/2.2.2-RELEASE 用のパッチは
[FreeBSD-users-jp 14664] [FreeBSD-users-jp 14708]
として投稿されています。14664 は FreeBSD(98)-2.2.1 用のもので、
14708 は FreeBSD 2.2.1-RELEASE 用の 14664 への追加ファイルです。
したがって NEC PC-9801/9821 の場合は 14664 のみを、AT 互換機の
場合は 14664, 14708 を入手して下さい。14708 は FreeBSD 2.2.1-RELEASE 用
となっていますが、2.2.2-RELEASE でも利用可能です。
ちなみに、ブートさせたい MO や PD を BIOS 的に認識させることが必要です。
---
[管理番号 317] (最終更新 1999/02/17 23:58:45)
Q. MO を繋いてるんですが起動時に
(ahc0:4:0): "FUJITSU M2512A 1502" type 0 removable SCSI 1
sd2(ahc0:4:0): Direct-Access
sd2(ahc0:4:0): ILLEGAL REQUEST asc:24,0 Invalid field in CDB sks:c0,4
sd2 could not mode sense (4). Using ficticious geometry
217MB (446325 512 byte sectors)
と叱られてしまいます。どうも FreeBSD の方でハードディスクに解釈して
しまってるようです。何がおかしいんでしょう。
A. おそらく MO のデバイスタイプモードが ハードディスクになってるんでしょ
う。MO のディップスィッチを [ハードディスク]->[MOドライブ]に切り換えて
ください。
---
[管理番号 545] (最終更新 2000/04/19 21:35:01)
Q. kernel に device od0 を加えているのにも拘らず、MO を /dev/od0 でマ
ウントできません。
A. まず、あなたが使用している FreeBSD のバージョンが 3.0R 以上なら、
[管理番号 22] を見てください。
MO がハードディスクモードになっている可能性があります。
dmesg の出力を見てください。
(ahc0:4:0): "FUJITSU M2512A 1502" type 0 removable SCSI 1
このうち、type のあとの数字に注目します。
type 0 の場合は、ハードディスク互換モードになっています。このモードの
場合、MOは固定されたディスクとして扱われるため、電源を切らないとメディ
アの抜き挿しができないなど、いろいろと不便です。ディップスイッチなど
で、MOモードにしましょう。
type 7 の場合はMOモードとして正常に認識されていますので、別の原因があ
るかもしれません。
---
[管理番号 564] (最終更新 1999/02/17 23:58:45)
Q. スーパーフロッピー形式でフォーマットしたMOをマウントすると、
od0(amd0:0:0): ILLEGAL REQUEST asc:21,0 Logical block address out of range
というメッセージがコンソールに出てきます。
A. odドライバの作者である秋山氏によれば、MBRの内容が不正なため、各スラ
イス上のディスク・ラベルを読み込もうとしてエラーとなるそうですが、使用
する上で問題になることはないらしいです。
この問題を解決するには mei を使ってフォーマットします。
mei は ports/sysutils/mei/ で ports 形式になっているので、それを利用す
るのが便利です。
---
[管理番号 566] (最終更新 1999/02/17 23:58:45)
Q. いままで IDE ばかり使っていたので、SCSI 接続された MO を認識する
kernel の作り方がわかりません。
A. まず、購入した SCSI カード は FreeBSD 上ではどのようなデバイスとし
て認識されるのか、LINTや解説本などで調べます。
以下は Tekram の DC-390として話を進めます。このカードは amd ドライバと
して認識される、PCIバスのカードです。このカードでMOを使う場合は
controller amd0 #Tekram DC-390
controller scbus0
device od0 #SCSI optical disk
という内容を追加したカーネルを作成します。DC-390以外の場合は、LINT を
見ながら
controller amd0 #Tekram DC-390
の行を適切なものに変更します。また、MO本体のディップスイッチを確認して、
動作モードが「MOモード」になっていることを確認しておきます。もし、
「HDD互換モード」の場合は変更しておきましょう。
新しい kernel でブートします。成功している場合は、
amd0 rev 16 int a irq 9 on pci0:18
amd0 waiting for scsi devices to settle
(amd0:0:0): "FUJITSU M2513A 1500" type 7 removable SCSI 2
od0(amd0:0:0): Optical od not present
というメッセージが出てきます。もし、type 7以外の数字だったり、
uk0(amd0:0:0): Optical od not present
や
sd0(amd0:0:0): Optical od not present
の場合、MOの設定がおかしい場合があります。説明書やQandAの他の項目を参
考にして再設定します。
ここまでうまく行けば、あとは、例えばスーパーフロッピー形式(Windows95な
どでフォーマットしたMO)であれば、
# mount_msdos /dev/od0 /mnt
などで /mnt 以下にマウントできます。
---
[管理番号 575] (最終更新 1999/02/17 23:58:45)
Q. リムーバブルディスクをufsフォーマットしたいのですが?
A. まず,あなたがフォーマットしようとしているメディアのドライブが
何と認識されているか確認します.
起動時のメッセージ(dmsgコマンドで表示されます)や/var/log/messages
で確認できます. ここではsd2と認識されていると仮定します.
次に,/etc/disktab をみて,フォーマットしようとしているメディアが
リストアップされているか調べます.もしリストアップされていないとき
には他の行を参考にして書き加えます.
例えば,100MBのzipディスクであれば以下のようになります.
#--------------------------------------------------------
zip100|zip 100:\
:ty=removable:se#512:nc#96:nt#64:ns#32:\
:pa#196608:oa#0:ba#4096:fa#512:\
:pb#196608:ob#0:bb#4096:fb#512:\
:pc#196608:oc#0:bc#4096:fc#512:
#--------------------------------------------------------
詳しくはdisktabのマニュアルを見て下さい.
/etc/disktab を確認したら,以下のコマンドを root になって実行します.
(例. sd2と認識されているzipドライブの場合)
# dd if=/dev/zero of=/dev/rsd2 count=2
# disklabel -Brw sd2 zip100
# newfs -t 0 -u 0 /dev/rsd2a
これでフォーマットは終了です.
また,マウントするときは
# mount /dev/sd2a /zip
とすれば/zip というディレクトリにマウントできます.
(あらかじめ/zip というディレクトリを作成しておいてください)
も参照してみてください.
---
[管理番号 680] (最終更新 1999/07/02 16:25:01)
Q. od ドライバを使っていますが、買ったばかりのリムーバブルディスク
(MO,PD,DVD-RAM etc.) を ufs でフォーマットするために disklabel しよう
とすると、
disklabel: ioctl DIOCSDINFO: No space left on device
というメッセージが出てできません。
A. A1. この現象は、CURRENT と 2.2 系で同時期に行われた、ディスクラベル の書き
込み時のチェック強化によって発生しているものだと思われます。2.2.2R 以前の
古いdisktab エントリを使っていると生じます。回避策としては、使っているドラ
イブ(MO,PD,DVD-RAM etc.)用の disktab エントリに新たに su パラメータを追加
するか、最新の od-driver パッケージ(現在のところ 2.2.7R 用まで用意されてい
ます)
に含まれている新しい disktab エントリに置き換えてください
A2. disktab エントリに su パラメータがあっても上記のことが起こる場合はすで
にディスクメディアが MSDOS/WIN95 などでフォーマットされており、スライス化
されているために disklabel が空き領域をみつけられなくてエラーになっている
と思われます。fdisk コマンドでスライスの情報を消すか、以下のように
dd if=/dev/zero of=/dev/od0 bs=2048 count=4
dd コマンドでディスクの先頭部分に 0x0 を書き込めば disklabel できます。
A3.また別の方法として、以下のコマンドでパラメータを自動設定して書き込むこ
とも可能です。
disklabel -r -w -B od0 auto
この場合は、disktab の修正は必要ありません。ただし、最小限のパーティション
設定になっているので必要ならあとでディスクラベルを編集しなければなりません。
---
[管理番号 697] (最終更新 2003/10/16 23:20:35)
Q. ZIP ドライブは使えませんか?
A. 20020215 現在、ZIP ドライブのインタフェイスには、SCSI、IDE/ATAPI/PCMCIA、
パラレル、USB、FireWire などのさまざまな種類があり、メディアには 100MB
のものと 250MB のものがあります。インタフェイスとメディアの組み合わせで、
実際のドライブには、いくつかのバリエーションが存在します。
ZIP ドライブに関してはチュートリアルがありますので、それを読んで下さい。
1. SCSI につなげる ZIP ドライブは、da デバイスとして認識されます。
2. ATAPI につなげる ZIP ドライブは wfd ドライバーで使えます。
3. パラレルポートにつなげる ZIP ドライブは、FreeBSD 3.0-RELEASE 以
降、vpo ドライバによりサポートされました。
4. USB につなげる ZIP ドライブも、動作報告があります。
PCMCIA と USB の両方のインタフェイスを持つドライブもありますが、
PCMCIA 経由では認識されず、USB として使用できます。
---
[管理番号 1552] (最終更新 2000/03/22 02:27:29)
Q. FreeBSD(98) で ZIPドライブを利用しています。ドライブは認識されています
が、FAT (msdos 形式) の media を msdosfs で mount しようとしてもうまく
行きません。
A. kernerl configuration file で、
options COMPAT_ATDISK
の行を有効にしてください。
このオプションは領域 (スライス) の分割が PC/AT 互換機タイプ
(512bytes/sector) のディスクを利用するのに必要です。Microsoft Windows
で利用している ZIP media のフォーマット形式もこれに当てはまります。
(FreeBSD(98) 3.3R-Rev? (Revision 不明) にて確認)
---
[管理番号 1553] (最終更新 2000/12/07 02:35:39)
Q. AOpen の DVD-RAM DVD-520S を使用したいのですが、どのようにすれば良いで
しょうか?
A. 以下の URL から各リリース用の OD ドライバをインストールします。
---
[管理番号 1845] (最終更新 2002/04/11 03:59:26)
Q. FreeBSD で 640MB の MO に UFS (FFS) を作成して使いたい。
A. SCSI 接続の MO ドライブならば、4.0-RELEASE 以降は da(4) ドライバで対応してお
り、基本的には標準のシステムで利用可能です。(*1)
ATAPI の MO は 4.4-RELEASE の時点ではそのままでは使えませんが、使えるように
する方法が [FreeBSD-users-jp 65621] で報告されています。
以下では da0 が MO ドライブであるとして説明します。
基本的には、他のメディア同様 disklabel を作成して newfs すれば使えます。
しかし 640MB の MO はセクタサイズが 512 バイトでなく2048 バイトなので、そ
ういう指定が必要な場合があります。
disklabel の前に fdisk で slice を作成することももちろん可能ですが、ここで
は割愛します。
(a) disklabel の書き込み (*2)
[管理番号 680] の A2、A3 を参考にします。
disklabel が
root# disklabel -r -w da0 auto
disklabel: /dev/da0c: Undefined error: 0
というエラーを出力して終了してしまう場合、A2 にしたがって slice の情報を消
す必要がありますが、dd の引数に bs=2048 が無いとエラーになって書き込みでき
ないことに注意してください。(*3)
エラーになる場合:
root# dd if=/dev/zero of=/dev/da0 count=4
dd: /dev/da0: Invalid argument
1+0 records in
0+0 records out
0 bytes transferred in 0.000411 secs (0 bytes/sec)
うまく行く場合:
root# dd if=/dev/zero of=/dev/da0 bs=2048 count=4
4+0 records in
4+0 records out
8192 bytes transferred in 1.138270 secs (7197 bytes/sec)
また A3 で「最小限のパーティション設定」というのは, c だけが存在するという
意味です。a パーティションが必要ならば、disklabel -e で編集するか、
/etc/disktab に 640MB MO 用の項目を用意しておいて、auto の代わりにそれを指
定しなければなりません。ここでは od-driver のパッチキットに含まれているも
のを使いました。([管理番号 22] 参照)
例えば、
root# disklabel -r -w da0 auto
user% disklabel -r da0 | tail -2
# size offset fstype [fsize bsize bps/cpg]
c: 310352 0 unused 0 0 # (Cyl. 0 - 151*)
これに対して,
root# disklabel -r -w da0 mo640
user% disklabel -r da0 | tail -3
# size offset fstype [fsize bsize bps/cpg]
a: 310352 0 4.2BSD 2048 8192 0 # (Cyl. 0 - 151*)
c: 310352 0 unused 0 0 # (Cyl. 0 - 151*)
の様になります。
(b) ファイルシステムの構築 (参考 [管理番号 575])
root# newfs da0a (*4)
Warning: Block size restricts cylinders per group to 10.
Warning: 3776 sector(s) in last cylinder unallocated
/dev/da0a: 1241408 sectors in 76 cylinders of 1 tracks, 16384 sectors
606.2MB in 8 cyl groups (10 c/g, 80.00MB/g, 9600 i/g)
super-block backups (for fsck -b #) at:
32, 163872, 327712, 491552, 655392, 819232, 983072, 1146912
Warning が二つ出ました。
一つ目は、すぐ上の disklabel -r の結果において a パーティションの bps/cpg が
0 になっているためです。newfs 後にもう一度 disklabel -r すると、ここが 10 に
なっています。
二つ目は、セクタをグループ化したときに端数が出てしまったという意味です。
この 8 MB 弱は利用できないことになります。まあ 8/640 なので良しとしましょう。
これで 640MB MO のメディアの準備ができましたので、mount して利用できます。
(*1) MO を利用するのに od-driver が推奨されることがあります。これは、いくつ
かのコマンドやカーネルに対するパッチですが。4.0-RELEASE 以降は MO を利用
するのに必須のものではなくなりました。
現在 MO を利用する際に od-driver を用いる利点は
- da(4) の代わりに od(4) でアクセスできるので、ハードディスクと間違わない
- removable メディアに配慮しているので、ライトプロテクトした MO をうっかり
read&write で mount してもシステムがハングアップしない
などです。
(*2) /etc/disktab に 640MB MO 用の項目があれば、[FreeBSD-users-jp 53060] で
報告されている通り、disklabel を省いて newfs のみで disklabel も同時に書
き込むことも出来ます。
root# newfs da0c mo640
Warning: Block size restricts cylinders per group to 10.
Warning: 3776 sector(s) in last cylinder unallocated
/dev/da0c: 1241408 sectors in 76 cylinders of 1 tracks, 16384 sectors
606.2MB in 8 cyl groups (10 c/g, 80.00MB/g, 9600 i/g)
super-block backups (for fsck -b #) at:
32, 163872, 327712, 491552, 655392, 819232, 983072, 1146912
これで da0c を mount して使用することが出来ます。
パーティション c を disk 全体を表すものとして fstype を unused のままにす
る慣習に従い、4.2BSD となっていると disklabel が下記の warning を出します
が、使用する上で支障はありません。
Warning, partition c is not marked as unused!
Warning, An incorrect partition c may cause problems for standard system utilities
また、disklabel が正しく書き込まれない場合があります。
user% disklabel -r da0 | tail -3
disklabel: bad pack magic number (label is damaged, or pack is unlabeled)
またこの方法では、disktype に auto を指定することは出来ません。
root# newfs da0c auto
newfs: auto: unknown disk type
となります。
(*3) 230MB のメディアは bs を指定しなくても書き込めます。
(*4) ここでは a パーティションにを newfs しました。当然ですが既に作成されて
いるパーティションしか newfs できません。/etc/disktab の 640MB MO のエント
リを使わずに auto で disklabel した場合には、c パーティションが存在するの
みですから、`newfs da0c' としなければいけません。