[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:14053] Re: ext2 ファイルシステムのDVD-RAM



山口@金沢市(元富山大学) です。

<wxy9edvvau.wl@turb>の記事において
arai@ocean.hiroshima-u.ac.jpさんは書きました。

私は、

  DVD-RAM: MATSHITA PD-2 LF-D100(LF-D103)
   kernel: 2.4.18

で、devfs で使ってます。DVD-RAM は PD/2.6GB DVD-RAM を使える
ものです(4.7GB/面 のディスクは使えません)。

こんな感じで認識されてます。

-----
# cat /proc/scsi/scsi 
Attached devices: 
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: MATSHITA Model: PD-2 LF-D100     Rev: A120
  Type:   CD-ROM                           ANSI SCSI revision: 02
-----

ちょうど 2.6GB/面 メディアの片面が余っていたので試してみました。

>(1) fdisk で primary partition を1個作成後の状態
>
>Disk /dev/scd1: 1 heads, 2236704 sectors, 1 cylinders
>Units = cylinders of 2236704 * 2048 bytes
>
>     Device Boot    Start       End    Blocks   Id  System
>/dev/scd1p1             1         1   4473406   83  Linux
>Partition 1 has different physical/logical endings:
>     phys=(0, 0, 32) logical=(0, 0, 2236704)
>Partition 1 does not end on cylinder boundary:
>     phys=(0, 0, 32) should be (0, 0, 2236704)
>
>warning らしきものが出ているのが気になります。

私のところと結果が違いますね...

-----
# fdisk /dev/scsi/host0/bus0/target6/lun0/cd   
注意: セクタサイズが 2048 です (512 ではなく)
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。

コマンド (m でヘルプ): p

ディスク /dev/scsi/host0/bus0/target6/lun0/cd: ヘッド 255, セクタ 63, シリンダ 75
ユニット = シリンダ数 of 16065 * 2048 バイト

                             デバイス ブート   始点      終点  ブロック   ID  システム

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-75, 初期値 1): 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-75, 初期値 75): 75

コマンド (m でヘルプ): p

ディスク /dev/scsi/host0/bus0/target6/lun0/cd: ヘッド 255, セクタ 63, シリンダ 75
ユニット = シリンダ数 of 16065 * 2048 バイト

                             デバイス ブート   始点      終点  ブロック   ID  システム
/dev/scsi/host0/bus0/target6/lun0/cd1             1        75   2409624   83  Linux

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。

警告: 領域テーブルの再読込みがエラー 22 で失敗しました: 無効な引数です。
カーネルはまだ古いテーブルを使っています。
新しいテーブルは次回リブート時に使えるようになるでしょう。
ディスクを同期させます。
# fdisk /dev/scsi/host0/bus0/target6/lun0/cd -l
注意: セクタサイズが 2048 です (512 ではなく)

ディスク /dev/scsi/host0/bus0/target6/lun0/cd: ヘッド 255, セクタ 63, シリンダ 75
ユニット = シリンダ数 of 16065 * 2048 バイト

                             デバイス ブート   始点      終点  ブロック   ID  システム
/dev/scsi/host0/bus0/target6/lun0/cd1             1        75   2409624   83  Linux
-----

領域テーブルの再読み込みがエラーになってますが、次の
fdisk でちゃんと見えているようなので大丈夫なのでしょう。

それよりも気になるのは fdisk の出力が結構違うことです。
nls の部分を差し引いても、セクタサイズについての注意の
有無など、違いがあります。

fdisk のバージョン(fdisk は util-linux に入っています)は
どうなっていますでしょうか? 私のほうは、

-----
# fdisk -V
fdisk v2.11r
-----

となっています。

あと、これは私の個人的な趣味の部分もあるのですが、DVD-RAM
などのリムーバブルディスクは、

  fdisk せずに Super Floppy 形式で使う

のがいいと思います。
# Super Floppy 形式とは要するにフロッピーで容量が大きい
# ディスクとして扱う(リムーバブル HDD ではなく)形式です
## 他の FAT32 や UDF の DVD-RAM はたいてい SF 形式で
## 作られているのでこれらのディスクを使いたい場合便利という
## ことと、fstab などでパーティション番号を複数設定しなくても
## いいので楽ってのがあります。
## さらに、扱いは所詮フロッピーですのでディスク取り替えに
## よって不具合が発生する確率も低いと考えられます

>(2) mkfs コマンドで ext2 ファイルシステムの作成
>    mkfs -t ext2 /dev/scd1
>ここでは特にwarning等はでなかった

ここでは、さっき領域テーブルの再読み込みに失敗していたので
カーネルにパーティション情報が反映されず、パーティションに
対応するデバイスができませんでした。なのでここでリブート
しました。

が、リブートしても状況は変わらず、パーティションに対応する
デバイスができず、mknod で手動でデバイスファイルを作っても
反応がありません。

推測ですが、Linux では DVD-RAM のデバイス自体は CD-ROM と
して見えている(CD-ROM ドライバで動いている)ので、パーティ
ションが使えないのではないかと思います。

このままにしておいてもしょうがないので、ディスク全体に
対してフォーマットをかけました(この時点で SF 形式になります)。

-----
# mke2fs /dev/scsi/host0/bus0/target6/lun0/cd  
mke2fs 1.27 (8-Mar-2002)
/dev/scsi/host0/bus0/target6/lun0/cd is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
305216 inodes, 609480 blocks
30474 blocks (5.00%) reserved for the super user
First data block=0
19 block groups
32768 blocks per group, 32768 fragments per group
16064 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: 

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
-----

と、普通に終わります。

>(3) マウント
>    mount -t ext2 /dev/scd1 /mnt
>df コマンドによる表示は、
>    Filesystem           1k-blocks      Used Available Use% Mounted on
>    /dev/scd1              4403064        20   4179376   0% /mnt
>となった。

-----
# mount /dev/scsi/host0/bus0/target6/lun0/cd /mnt/temp
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/scsi/host0/bus0/target6/lun0/cd
                       2399568        20   2277652   1% /mnt/temp
-----

と、こちらも問題なし。

>PD ドライブも使っているのですが、PDでは
>    PD     が LUN 00 で、デバイス名は /dev/sda
>    CD-ROM が LUN 01 で、デバイス名は /dev/scd0
>となり、別々のデバイス名で使えるのですが、
>DVD-RAM ドライブでは、CD-ROMもDVD-RAMも同じデバイス名 /dev/scd1
>となってしまいます。

PD のみ(DVD-RAM が使えないという意味で)のドライブでは複数の
LUN を見てくれるんですが、DVD-RAM ドライブは CD-ROM として
しか見えません(PD を入れたときでも)。
# 「書き込みのできる容量の大きい CD-ROM」として見えます
## DVD-RAM ドライブに LUN 設定ってありましたっけ?
## なければしょうがないけどあればドライバ次第で挙動は変えられそう

>以上で、何か問題はないでしょうか?

fdisk を使ってもいいかどうかという問題はありますが、手順は
それでいいと思いますし、使えているなら大丈夫でしょう。
-- 
山口 真悟 (YAMAGUCHI Shingo)
shingo-y@spacelan.ne.jp
shingo@kip.iis.toyama-u.ac.jp

Follow-Ups
[plamo:14059] Re: ext2 ファイルシステムのDVD-RAM, Masazumi Arai
References
[plamo:14045] ext2ファイルシステムのDVD-RAM, Masazumi Arai

[検索ページ] [メール一覧]
Plamo ML 公開システム