• ベストアンサー
  • すぐに回答を!

デバイスファイルの考え方

UNIX系OSに初めて仕事に入ったのですが 上題の考えがうまく理解できません。 その1: 例えば、/dev/dsk/c0t0d0s0 と /dev/rdsk/c0t3d0s5 と2件表記 された場合はディスクが2本ある・・という解釈になるのでしょうか?。 あと「/var」などに領域を割り当てする場合、「/dev/dsk/c0t0d0s0」など 物理的なパスを指定するのでしょうか?。 その2: 「スライシング(スライス・ナンバー)」とはどういった意味なの でしょうか?。「パーティション」との違いが良くわかりません。。 すみませんが一部でも結構ですので ご教授願います。

noname#17136

共感・応援の気持ちを伝えよう!

  • 回答数8
  • 閲覧数1831
  • ありがとう数15

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.8

ちょっと誤解があるようなので. キャラクタデバイスは別名RAWデバイス(RAW=ナマ)ともいいます. デバイスに直接アクセスできるのがRAWデバイスファイルで,ブロックI/Oバッファキャッシュを経由するのがブロックデバイスファイルです. バッファキャッシュを経由しない分,RAW(キャラクタ)デバイスの方が高速にアクセスできます(出来る可能性があります).そのかわり,デバイスの特性に合致したアクセス形態しか許されません.たとえば,(たいていの)HDDは512バイト,CD-ROMは2048バイト,といった単位でその倍数の位置からのアクセスしかできません. ブロックデバイスファイル経由でアクセスした場合,デバイスの物理的なブロックサイズをバッファキャッシュが吸収してくれます.ブロックサイズ512バイトのHDDでも,512バイトではなく好きな量の読み書きが可能です.たとえば,1バイトだけ書き換えることも可能です.この場合,バッファキャッシュがディスクから1ブロックを読み出し,キャッシュ上で1バイトを書換え,ブロックを書き戻す操作をしてくれます. ファイルシステムとして読み書きする際は,ディスクのあちらこちらをアクセスするということから,キャッシュが有効に働くのでブロックデバイスを用います.というか,ファイルシステムのためにバッファキャッシュが開発されたと言って良いでしょう. ディスクデバイスをRAWデバイスファイル経由でアクセスするのは限られた場合だけです. ・disklabelやfdiskやfsckなど,ディスク管理 ・バッファキャッシュに邪魔されたくない操作 ・ボリューム単位のバックアップでディスクを頭から順に読み書きする ブロックデバイスファイルは,HDDやCDROMなど,ランダムアクセス可能な記録メディアに対してだけ提供されます. なお,多くのUNIXでは/devにデバイスファイルがありますが,Solarisでは/devices/の下のデバイスファイルへのシンボリックリンクが/devにありますね.

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • CDROMのマウントについて

    初めて投稿させて頂きます。初心者です。 Ultra機にSolaris10SPARC版のコアシステムサポートを(分けありで)インストールしたのですが、squidを入れようと思ってCDROMにsquid-2.6.STABLE2.tarを入れて、マシンにCDROMを入れたのですがマウントしません。 下記が起動時のファイルシステムです。 /dev/rdsk/c0t0d0s1: is logging. /dev/rdsk/c0t0d0s4: is logging. /dev/rdsk/c0t0d0s5: is logging. 下記が現在の/etc/vfstabの中です。 #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /usr ufs 1 no - /dev/dsk/c0t0d0s2 /dev/rdsk/c0t0d0s2 /var ufs 1 no - /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /data ufs 2 yes - /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /opt ufs 2 yes - /dev/dsk/c0t0d0s1 /dev/rdsk/c0t0d0s1 /swap ufs 2 yes - /devices - /devices devfs - no - ctfs - /system/contract ctfs - no - objfs - /system/object objfs - no - swap - /tmp tmpfs - yes - インストール時のファイルシステムの指定に問題があるのでしょうか? どなたか解決策をご教示下さい。 宜しくお願い致します。

  • Solaris(SPARC)のファイルシステムについて

    dfコマンドでディスクスライスを参照した場合、 ファイルシステムで"c0t0d0s0"って表示されますが、 『c,t,d,s』って、それぞれどんな意味なんですか? "s"はスライスのような気はするのですが…。 #df -k ファイルシステム kbytes 使用済み 使用可能 capacity マウント先 /proc 0 0 0 0% /proc /dev/dsk/c0t0d0s0 1015909 491317 463638 52% / /dev/dsk/c0t0d0s1 1015909 798691 156264 84% /usr fd 0 0 0 0% /dev/fd /dev/dsk/c0t0d0s3 1015909 529819 425136 56% /var /dev/dsk/c0t0d0s4 1015909 904926 50029 95% /opt swap 5037840 1998296 3039544 40% /tmp

  • DISK2台使用してsolaris10にてミラーリング設定

    ・OS:Solaris10(SPARC版):初心者です。 ・HDD2台使用しています。 1台目は通常OSインストールし、2台目にてミラーリング設定。 教えて頂きたい事はミラーリング設定のやり方をご教授頂けたら幸いです。 自分なりに最初は色々とインターネットで調べてやってみましたが metadb: Jigen1108: c0t0d0s7: スワップデバイスである c0t0d0s1 とオーバーラップしますのメッセージが出てうまくいきませんでした。 (コマンド:metadb -a -f -c2 c0t0d0s7 c0t1d0s7) ・1台目 0 root wm 12549 - 24595 23.44GB 1 swap wu 0 - 501 1000.08MB 2 backup wm 0 - 38306 74.53GB 3 usr wm 24596 - 38306 26.67GB 4 var wm 854 - 6023 10.06GB 5 home wm 6024 - 12548 12.69GB 6 unassigned wm 0 0 7 unassigned wu 100 - 199 199.22MB ・2台目 Part Tag Flag Cylinders Size 0 unassigned wm 12549 - 24595 23.44GB 1 unassigned wu 0 - 501 1000.08MB 2 backup wu 0 - 38306 74.53GB 3 unassigned wm 24596 - 38306 26.67GB 4 unassigned wm 854 - 6023 10.06GB 5 unassigned wm 6024 - 12548 12.69GB 6 unassigned wm 0 0 7 unassigned wu 100 - 199 199.22MB ・vfstab /dev/dsk/c0t0d0s1 - - swap - no - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /usr ufs 1 no - /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /var ufs 1 no - /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /export/home ufs 2 yes 他に足りない情報があれば記載いたしますので ミラーリングについてご教授お願いします。

その他の回答 (7)

  • 回答No.7

デバイスファイルってのは質問どおり2種類あります。 でも両方とも同じディスクを表しているんです。 /dev/dskの下に配置される論理パスは通常はブロックデバイスって言います。 一方の/dev/rdskの下に配置される論理パスはキャラクタデバイスって言います。 この2つ共に同じディスクを元に作成される論理パスなんですが、OSが使う用途によって分けているものです。 具体的に言うとブロックデバイスってものは処理に必要なデータをブロックという単位で転送します。 1ブロックは512バイトなんですが簡単に言えばこの種類のデバイスを指定した場合はOSは512バイトずつ読み書きするってことです。 通常ディスクへのアクセスはこちらが使用されます。 じゃあ一方のキャラクタデバイスはって言うと、こっちは処理に必要なデータを1キャラクタ(1バイト)ずつ転送します。 細かな処理はできますがブロックデバイス程のスピードではアクセスできません。 例をあげて言うならこんな感じでしょうか? プールに水が入っていたとします。 ここから水をかき出すときにバケツを使うのか、それとも茶碗を使うのかって感じですかね。 バケツを使えば一度にたくさんの水を出せますけど細かな調整は難しいですよね 一方の茶碗を使えば出す量はバケツに及びませんけど細かな量調整ができますよね この場合プールってのがディスクでバケツを使うってのがブロックデバイス、茶碗を使うってのがキャラクタデバイスって事にあたります。 カーネルは使用する用途によってこの2つを使い分けているんです。 と言っても私たちユーザは直接カーネルに指示を出したりできませんからコマンドを使って指示を出しますよね つまりコマンドの引数指定で指示するときに使い分けているんです。 基本的にほとんどのコマンドでデバイスファイルを引数として指定する場合キャラクタデバイスです。 ブロックデバイスを指定するコマンドは少なくてmount、umount、dfぐらいです。 mountコマンドで例をあげるなら mount△[オプション]△「ブロックデバイスファイル名」△「マウントポイント」 これがmountコマンドの書式ですよね 一方キャラクタデバイスを使用するコマンドは newfs△[オプション]△「キャラクタデバイスファイル名」 こんなコマンドですよね。 こんな感じでコマンドによって勝手に使い分けしてますから使う側の私たちはそんなに気にしなくてもOKです。 これが1つ目の質問の回答です。 領域を割り当てるってのはおそらくマウントするってことだと思いますが、上に書いた通りブロックデバイスを指定します。 ちなみに/devの下にあるデバイスは全て論理パスです。 コマンドで/devices配下の物理パスを指定するものは無いと思いますよ。 2つ目の質問ですがスライスってのは論理ディスクWindowsで言ったらパーティションにあたるものです。 ただしIA-Solarisの場合はちょっと違いがあります。 IA-SolarisはWindowsなどの別OSとのデュアルブートを行うために1本のディスクの中にSolaris専用領域であるソラリスパーティションをまず作成します。 そしてそのソラリスパーティションの中をスライスで論理的に分けて使用しています。 ですから混乱しやすいですがWindowsで言うパーティションにあたるのは厳密に言えばソラリスパーティションのことです。 SPARCマシンの場合はそもそもWindowsとデュアルブートってのがありえませんからパーティションってのはスライスとほぼイコールだと思ってもらってかまわないと思います。 最後に論理パスの命名規則ですが、デバイスの名前ってcxtxdxsx(xは0から始まる数字)ですよね ここで”c”ってのはコントローラ# これはSCSIなどのコントローラのチャネルにつけられる番号です。 ですからデュアルチャネルのSCSIはコントローラ#を2つ持っていますよね ”t”ってのはターゲットID、わかりやすく言えばSCSI IDやファイバでのループIDなんかがこの番号です。 ”d”ってのはディスク#(LUN#)普通はLUN#っていうかな LUNってのはLogical Unit Numberの略です。 なんに使うのかっていうと、同じSCSIチャネルから接続されてかつ同じSCSI IDを持つディスクが複数ある状況が想像できるでしょうか? つまり1本目のディスクがc1t1で始まってます2本目のディスクもc1t1で始まっている。 この状況下以外では”d”に意味は無いですよね そもそもチャネルが違うなら”c”の番号が違うんですから”d”の番号を変える必要が無いです。 SCSI IDが違うならやっぱり”d”の番号を変える必要は無いですよね。 この状況がわからない場合はLUNの意味はわからないと思います。 結論から言えばRAID装置を使用した場合、この状況になります。 RAID装置ってのは中にたくさんのディスクを入れて複数のディスクを使って論理的な冗長化されたディスクを作る技術ですよね。 このとき作成される冗長化された論理的なディスクのことをLUNって言うんです。 ですが1台のRAID装置の中には複数のLUNが作成できます。 ここで”d”の数字が活躍します。 だからLUN#って言うんです。 ちなみにどう活躍するのかって言うと RAID装置のターゲットID(tの数字のことです。最近はファイバチャネルの場合が多いんであえてSCSI IDとは書きません。)ってどこでつけられると思いますか? 普通IDはディスクをコントロールする基盤でつけられます。(ファイバチャネルのファブリック接続の場合はちょっと違いますがここでは考えないでください) RAID装置の場合、RAID装置の筐体の入り口であるRAIDコントローラ部分でつけられるってことです。 つまり同じコントローラの下にあるLUNは全て同じターゲットIDになるってことです。 こういう状況では”c”の番号も同じ、”t”の番号も同じになってしまいます。 ここでディスクを区別するのにLUN#を使うんです。 これがLUN#の使い方です。 最後に”s”は言うまでも無くスライス#です。 こんな感じでしょうか?

共感・感謝の気持ちを伝えよう!

  • 回答No.6

UNIXでディスクパーティションは伝統的には,a,b,c,d,e,f,g,h(a=0,h=7)とアルファベットで表してました.Solarisも2.0の時代あたりまでは/dev/sd0a みたいなデバイス名でした. パーティションとは論理ディスクのこと,と思ってまぁ間違いないです. ディスクの領域を分割して,あたかも(小さい容量の)単独ディスクであるように扱えるようにしたもの. そのパーティションの識別に,番号を使う場合とアルファベットを使う場合がある.ただしアルファベットを使うのは人間が使う呼称であって,コンピュータの中身では aパーティション=パーティション番号0 です. おっと,「領域分割」といいましたが,正確にはディスクのうえの領域を決めたものです. あるパーティションがディスク全体に対応するとか,二つのパーティションがディスク上で重複した領域を占めることもあります.後者のような場合は,もちろん重複があるパーティションはその一方しかアクセスしてはなりません. そうそう,「物理的なパス」というのは意味不明です.UNIX系の世界ではそのような用語は使わないので,何を質問したいのかわかりませんでした.

共感・感謝の気持ちを伝えよう!

  • 回答No.5
  • Tacosan
  • ベストアンサー率23% (3656/15482)

#2 です. 「ターゲット」, 「LUN」, 「スライス」については私が聞かれていると思うので簡単に. まず「スライス」ですがこれは PC でいうところの「パーティション」. 残りの「ターゲット」, 「LUN」はどちらも SCSI の用語です. こっちの用語はうろ覚えであまり詳しくないんですけど.... データのやりとりをしたいときに, 普通は SCSI HBA (host bus adapter = コントローラ) から「データを持っているデバイス」に「データを送るからね~」とか「データを送ってくれ~」とか命令を送るわけですが, そのときに「コントローラ」を「イニシエータ」, 対象となるデバイスを「ターゲット」という... だったような. SCSI の規格上 1本のバス上に複数のデバイス (コントローラも含む) があるときには個々のデバイスが異なる ID を持たなければならないわけですが (この ID の個数は, 実はバス幅と等しいのでナローだと 0~7 の 8個, ワイドだと 0~15ないし31), 各デバイスがさらに複数の機能を持っていてもかまいません. その場合に, 「複数の機能」を区別するために「LUN」を使います. 1個しか機能がない場合には自動的に LUN=0 ですが, 複数ある場合には 1以上の値をとります. まあ 1以上の LUN を見ることはあまりない (単独のディスクであれば LUN=0 で固定) んですが, 一部の CD チェンジャーで使っています. あと, 複数のディスクからなる装置 (ディスクアレイ) でも使う例があったかな? ということで, SCSI では 1本のバス上で機能を特定するためには SCSI ID で指定される「ターゲット」とそのターゲットの持つ機能を区別する「LUN」の両方を使い, そのことから Solaris のデバイスファイルでも t?d? という形でターゲットと LUN を指定します (その前にコントローラを指定する c? もありますが). ディスクの場合には d0 が自動的に決まって, そのディスクのうち「どこのスライス=パーティション」をアクセスするか, を s? で指定するというしくみだったと思います. 結局, c0t3d0s0 だと「コントローラ 0 (c0)」(1番目の SCSI コントローラ) の「ターゲット3 (t3)」 (歴史的事情により SCSI ID の 0 と 3 がそれぞれターゲット3 と 0 になったような気がするので SCSI ID=0 のターゲット) の「LUN 0 (d0)」 (普通のディスクなら d0 で固定) にある「スライス=パーティション0 (s0)」という意味.

共感・感謝の気持ちを伝えよう!

  • 回答No.4

>この4つというのはディスクあたりに、Solarisがデフォルトで用意する >デバイス名なのでしょうか?。 ちゃと読んでくださいよ.デフォルトで用意するファイル名は56個くらい有ります.私は,こう書きましたが. > 1つの物理ディスクに対して,論理ディスクは1~8個作ることができます. > また,1つの論理ディスクに対して /dev/dskと/dev/rdskの二つのデバイスファイルが対応します.

共感・感謝の気持ちを伝えよう!

  • 回答No.3

> 例えば、/dev/dsk/c0t0d0s0 と /dev/rdsk/c0t3d0s5 と2件表記 された場合はディスクが2本ある・ この場合, /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /dev/dsk/c0t3d0s5 /dev/rdsk/c0t3d0s5 と4つのデバイスファイルが使用可能なはずです. solarisだと,ディスクがあろうが無かろうがディスクのデバイスファイルは56+56コ(Solaris9)ずつあらかじめ作られているかとおもいます. 1つの物理ディスクに対して,論理ディスクは1~8個作ることができます. また,1つの論理ディスクに対して /dev/dskと/dev/rdskの二つのデバイスファイルが対応します. dskのほうはカーネル内のバッファキャッシュを介してアクセスするもので,ファイルシステムを作る場合はこちらを使います.rdskの方はRAW diskという意味で,バッファを使わずに直接アクセスします.rdskは,パーティション定義とか,fsck(Windowsでいうscandiskのようなもの),あと一部のバックアップソフト,など,でのみ使用します. で /varを使う手順ですが ・Windows/DOSでいう領域確保の,に対応するのは,  formatコマンドの中のpartitionサブコマンドです. ・Windows/DOSでいうフォーマット(NTFSとかFAT32とかを指定して  初期化)はnewfsとかmkfsを使います. この段階で,Windows/DOSだとドライブレターが割り当てられて使用可能になりますが,UNIX系ではマウント操作が必要です. 手動でマウントコマンドを叩けばいいのですが,次回のブート時に自動的にマウントさせるためには/etc/fstab(UNIXオリジナル),/etc/vfstab(solaris)などに登録情報を書きます. fstabには先ほど説明したとおり,ブロックデバイスファイル名を書きます.というか,すでに/とかの登録情報がvfstabにあるので,それを真似すればいいです.とりあえずは.

共感・感謝の気持ちを伝えよう!

質問者からのお礼

みなさまありがとうございます。 お蔭様でだいぶきっかけがつかめてきました。 Unixは初めてですがこのデバイスの概念が 一番理解に苦労しています。。 >>この場合, >>/dev/dsk/c0t0d0s0 >>/dev/rdsk/c0t0d0s0 >>/dev/dsk/c0t3d0s5 >>/dev/rdsk/c0t3d0s5 >>と4つのデバイスファイルが使用可能なはずです. この4つというのはディスクあたりに、Solarisがデフォルトで用意する デバイス名なのでしょうか?。 例えばなんですが外付けHD(コントローラ1つ)で ディスクが2本ある場合は ディスク1本あたりに「dsk」「rdsk」のデバイス名が作成なのかな?と 思いまして・・。 >>c0t0d0s0 だと「コントローラ0 (c0) のターゲット0 (t0) >>にあるディスク0 (d0) の >>スライス0 (s0)」とかいう意味だったような記憶があります。 >>SCSI の場合には「ターゲット」が SCSI ID に対応し、 >>「ディスク」は LUN に対応します。 >>なので c?t?d? までが同じなら同じデバイス、 >>どれかでも違えば別のデバイス 頂いたご説明の中で下記の用語が 難しいのですが・・ ・ターゲット ・LUN(論理ユニット?) ・スライス 例えば「c0t0d0s0」のうち「t」と「d」の違いが難しいです。。 で「スライス」はその特定ディスクの「/var」とかを 割り当てることを言うのでしょうか?。 細かくてすみませんが補足を頂ければ 大変助かります。 よろしくお願いします。

  • 回答No.2
  • Tacosan
  • ベストアンサー率23% (3656/15482)

簡単な方からいくと, #1 で既に答えられてますがここでいう「スライス」は PC でいう「パーティション」と基本的に同じです. 1つのディスクをいくつかの領域に分けたもの. で1の方: 一般的な UNIX では, デバイスファイルに「ブロックデバイス」と「キャラクタデバイス」の 2種類があります. ブロックデバイスは「ブロック単位にアクセスするものでランダムアクセス可能 (基本的に OS はキャッシュしない)」, キャラクタデバイスは「キャラクタ (=バイト) 単位にアクセスするものでシーケンシャルアクセスのみ可能 (OS がキャッシュすることもある)」なものです. ファイルシステムとしてマウントする場合にはランダムアクセスしないといけないのでブロックデバイスのみとなります. またテープデバイスだとシーケンシャルアクセスされるので自動的にキャラクタデバイスとなります. これらのデバイスファイルがどこにあるかというのは OS によりますが, Solaris の場合は /dev/dsk 以下がブロックデバイス, /dev/rdsk 以下がキャラクタデバイスです. で c0t0d0s0 だと「コントローラ0 (c0) のターゲット0 (t0) にあるディスク0 (d0) のスライス0 (s0)」とかいう意味だったような記憶があります. SCSI の場合には「ターゲット」が SCSI ID に対応 (ただし歴史的事情でちょっと順番が違ったかもしれない) し, 「ディスク」は LUN に対応します. なので c?t?d? までが同じなら同じデバイス, どれかでも違えば別のデバイスとなります. 今の場合 /dev/dsk/c0t0d0s0 と /dev/rdsk/c0t3d0s5 とでは同じコントローラですが異なるターゲットなので別のディスク (デバイス) となります. /dev/dsk/c0t0d0s0 と /dev/rdsk/c0t0d0s0 だと全く同じもの (同じデバイスの同じスライス) ですがブロックデバイスとキャラクタデバイスという違いがありますし /dev/dsk/c0t0d0s0 と /dev/dsk/c0t0d0s3 だと同じディスクの異なるスライスということになります.

共感・感謝の気持ちを伝えよう!

  • 回答No.1

区画/スライス/パーティション/ミニディスク,などOSによって用語が違ってきます.どれも,物理ボリュームを分割して論理ボリュームを作った際の一区画を差す名前です. ただ,PCで動くOSでは,DOSパーティション(BIOSパーティション)を,さらにそのOSの持つ区画機能で分割する場合があります.このような場合では,こんな言葉の使い分けをすることもあります. パーティション →ディスクをBIOSレベルで分けた区画 スライス→ディスクのうちあるOSに割り当てられた区画を,さらにそのOSの持つディスク分割機能で分割した物 基本パーティションやら拡張パーティションやら,PCの世界の概念の方がよっぽど複雑なんですが...

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • HP-UXにおけるDVDのmountについて

    OS:HP-UX 11i v3 Oracle11g for HP-UX Itaniumをインストールしようとしています。 WebよりダウンロードしたzipファイルをDVDに焼き、 そのDVDをHP-UXでmountしようとしているのですが、うまくできません。 以下、下記マニュアルより抜粋。 「Oracle Databaseクイック・インストレーション・ガイド 11gリリース1(11.1) for HP-UX Itanium」 http://otndnld.oracle.co.jp/document/products/oracle11g/111/hpux/E05990-01/toc.htm +++++++++++++++++++++++++++++++++++++++ 9 製品ディスクのマウント 3. 適切なディスクをディスク・ドライブに挿入し、次のようなコマンドを入力してマウントします。 # /usr/sbin/mount -F cdfs -o rr /dev/dsk/cxtydz /SD_DVD +++++++++++++++++++++++++++++++++++++++ 以下、実行コマンド。 *************************************** # ioscan -fnC disk Class I H/W Path Driver S/W State H/W Type Description =============================================================================== disk 2 0/1/1/0.0.0.0.0 sdisk CLAIMED DEVICE HP IR Volume /dev/dsk/c0t0d0 /dev/dsk/c0t0d0s2 /dev/rdsk/c0t0d0 /dev/rdsk/c0t0d0s2 /dev/dsk/c0t0d0s1 /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s1 /dev/rdsk/c0t0d0s3 # mkdir /SD_CDROM # /usr/sbin/mount -F cdfs -o rr /dev/dsk/c0t0d0 /SD_CDROM /dev/dsk/c0t0d0: unrecognized file system *************************************** お気づきの点がありましたらどうぞ宜しくお願い致します。

  • dfコマンドの出力結果について

    お世話になります。 仕事でsolarisサーバを扱うことになったのですが、 まったく知識がなく聞ける相手もいないため、質問させていただきます。 dfコマンドのヘルプを見ると、以下のような例が出ていました。     /         (/dev/dsk/c0t0d0s0 ): 287530 blocks  92028 files     /system/contract  (ctfs       ):    0 blocks 2147483572 files     /system/object   (objfs       ):    0 blocks 2147483511 files     /usr        (/dev/dsk/c0t0d0s6 ): 1020214 blocks  268550 files     /proc       (/proc       ):    0 blocks   878 files     /dev/fd      (fd        ):    0 blocks    0 files     /etc/mnttab    (mnttab      ):    0 blocks    0 files     /var/run      (swap       ): 396016 blocks   9375 files     /tmp        (swap       ): 396016 blocks   9375 files     /opt        (/dev/dsk/c0t0d0s5 ): 381552 blocks  96649 files     /export/home    (/dev/dsk/c0t0d0s7 ): 434364 blocks  108220 files この情報の見方について教えていただきたいのですが、、、 ・「 /         (/dev/dsk/c0t0d0s0 )」は、  ディスク:c0t0d0 のスライス:s0が、/にマウントされている。 ・「/usr        (/dev/dsk/c0t0d0s6 )」は、  ディスク:c0t0d0 のスライス:s6が、/usrにマウントされている。 ・c0t0d0s0とc0t0d0s6は、同じディスクに存在する別のスライス。 という認識でよいでしょうか? ・「/system/contract  (ctfs       )」は、  /system/contractにマウントされているctfsというのは何でしょうか?  マニュアルには「デバイスまたはファイルシステム」と書かれていますが、  ファイルシステムとするとctfsはどこのディスクに存在するのでしょうか。  ・dfで表示されないスライスの情報はどうやって調べるのでしょうか?  format→partition→printではたくさんのスライスが表示されますが、  dfコマンドの出力結果にはすべてが出てきません。  スライスがどのように使用されているかを調べる方法はありますでしょうか? 知識がないためわけのわからないことを聞いているのかもしれませんが、 なにかヒントでもいただけると幸いです。 よろしくお願いいたします。

  • fsck での修復について

    DELL optiplex GX1 Solaris 8 上記環境なのですが電源を入れるとHost nameを表示した(白画面・黒文字)あとに The /var file system (/dev/rdsk/c0d0s4) is begin checked. /dev/rdsk/c0d0s4: UNREF DIR I=176162 OWNER=root MODE=40775 /dev/rdsk/c0d0s4: SIZE=512 MTIME=Sep 7 21:58 2003 (RECONNECTED) /dev/rdsk/c0d0s4: DIR I=27575 CONNECTED. RARENT WAS I=3 /dev/rdsk/c0d0s4: UNREF DIR I=27575 OWNER=root MODE=40775 /dev/rdsk/c0d0s4: SIZE=512 MTIME=Sep 7 21:58 2003 (RECONNECTED) /dev/rdsk/c0d0s4: DIR I=27575 CONNECTED. RARENT WAS I=104578 /dev/rdsk/c0d0s4: LINK COUNT lost+found I=3 OWNER=root MODE=40700 /dev/rdsk/c0d0s4: SIZE=8192 MTIME=Sep 5 02:25 2003 COUNT 6 SHOULD BE 7 /dev/rdsk/c0d0s4: LINK COUNT INCREASING /dev/rdsk/c0d0s4: UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY WARNING - Unable to repair the /var filesystem. RUN fsck manually (fsck -F ufs /dev/rdsk/c0d0s4) EXIT the shell when done to continue the boot process と表示されてしまいます。シングルユーザモードでの起動は可能なので mountコマンドで/dev/dsk/c0d0s4をマウントさせようすると #mount -F ufs /dev/dsk/c0d0s4 mount: the state of /dev/dsk/c0d0s4 is not okay and it was attempted to be monted read/write mount: Please run fsck adn try again となります。 この場合修復は無理でしょうか?fsckコマンド等で修復できるようであれば修復方法を教えてください。 よろしくお願いします。

  • tarでディスクからディスクへコピー可能?

    tarでrawディスクからrawディスクへアーカイブすることはできるでしょうか? 下記のようなイメージです。 tar cvf /dev/rdsk/c0t0d0 /dev/rdsk/c0t1d0 ddコマンドではなく、tarで実行する方法を探してます。

  • fssnapについて

    fssnapでファイルのバックアップをとろうと思っていますが、下記のようなエラーメッセージが出てしまいます。 fssnap: ioctl: error 22: Invalid argument /や/varで発生しており、/homeのバックアップをとるときは特に問題ありません。 /etc/vfstabは下記の通りです。 /dev/md/dsk/d4 - - swap - no - /dev/md/dsk/d1 /dev/md/rdsk/d1 / ufs 1 no - - /dev/md/dsk/d2 /dev/md/rdsk/d2 /var ufs 1 no - /dev/md/dsk/d3 /dev/md/rdsk/d3 /home ufs 2 yes - /devices - /devices devfs - no - swap - /tmp tmpfs - yes - もしわかるかたがいらっしゃいましたら、ご回答宜しくお願いいたします。

  • Solaris8で"newfs"エラー

    Solaris8 for SUN SPARCで、外付のDISKを追加して、 "newfs /dev/rdsk/c1t0d0s0"を行うと "/dev/rdsk/c1t0d0s0: Device busy"と 表示されます。なぜファイルシステムが作成されないのでしょう? もちろんformat,スライス分割は完了しているのですが、 教えてください。

  • Diskをマウントできません。

    Solaris初心者なのですが、もしわかる方がいらっしゃったらご教示いただけますでしょうか。 下記のような設定で、Diskのマウントを考えてますが、うまくいきません。 <Disk情報> c0t0d0:Solaris8インストール済みディスク c0t1d0:空ディスク(スライス0をマウントしたい)     フォーマット済み     newfs済み     パーティション作成済み(format -> 1 -> partition -> modify) <パーティション情報> Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 6533 9.00GB (6534/0/0) 18876726 1 swap wu 6534 - 7985 2.00GB (1452/0/0) 4194828 2 backup wm 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 7986 - 15971 11.00GB (7986/0/0) 23071554 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wm 15972 - 24619 11.91GB (8648/0/0) 24984072 <マウントコマンド> #mount /dev/dsk/c0t1d0s0 /mnt mount: /dev/dsk/c0t1d0s0 is not this fstype.という応答があります。 以上、宜しくお願いいたします。

  • エラー「cpp0: /var/tmp/cczy3NgV.ii: デバイス上の空き領域が足りません。」

    Solaris2.6の環境です。 C++プログラム初学者です。 % uname -a SunOS ultra 5.6 Generic_105181-23 sun4m sparc SUNW,SPARCstation-5 C++プログラムの学習中にC++のリストをmake使用とすると % cd ~/test % make g++ -c -o timer.o timer.cc cpp0: /var/tmp/cczy3NgV.ii: デバイス上の空き領域が足りません。 make: *** [timer.o] Error 1 というエラーが出てしまい、困っています。 % ls -l /var/tmp 合計 2086 -rw------- 1 matsui master 0 3月 13日 21:19 Ex0000001239 -rw------- 1 root root 821304 3月 14日 22:20 wsconAAA7eaqNa:0.0 -rw------- 1 root root 35659 2月 8日 19:05 wsconAAAP0aaNa:0.0 -rw------- 1 matsui master 0 1月 27日 17:44 wsconAAAXlaitb:0.0 -rw------- 1 root root 187687 2月 7日 19:31 wsconAAAxBaWxc:0.0 % df -k Filesystem Kバイト used avail capacity Mounted on /dev/dsk/c0t3d0s0 57567 21273 30538 42% / /dev/dsk/c0t3d0s6 694454 497069 141829 78% /usr /proc 0 0 0 0% /proc fd 0 0 0 0% /dev/fd /dev/dsk/c0t3d0s1 47975 44685 0 100% /var /dev/dsk/c0t3d0s7 38383 14633 19912 43% /workl swap 137384 16 137368 1% /tmp lucas:/usr/local 1687016 824880 811528 51% /usr/local lucas:/home 14110472 3550904 10418464 26% /home lucas:/workn 57384 31880 19768 62% /workn となっているのですがこれはどうすれば解決できるのでしょうか?

  • /home/export の容量が100%で、 ダウンする

    管理者が入院で不在となってしまい、代役をしていたのですが、Solaris(unix)は 特にメンテナンス不要と聞いて、実際、この半年、手をかけたことが無いのですが、 一昨日よりサーバーがダウン(ダンマリ停止)することが発生しています。 少ない知恵で調べたのですがどうやら「/expor/home」の空き不足のようです。 しかし不要なファイルを削除し、空きを確保しているのですが改善されません。 下記のような環境ですが、どんなことでも結構ですので知恵を貸して下さい。 OS:Solaris (Unix) 5.5.1 #root>df -k Filesystem kbytes used avail capacity Mounted on /dev/dsk/c0d0s0 62623 29112 27251 52% / /dev/dsk/c0d0s6 480815 238241 194494 56% /usr /proc 0 0 0 0% /proc fd 0 0 0 0% /dev/fd /dev/dsk/c0d0s4 192423 97993 75190 57% /var /dev/dsk/c0d0s7 461111 422939 0 100% /export/home /dev/dsk/c0d0s5 384847 199214 147153 58% /opt /dev/dsk/c0d0s3 288391 237727 21834 92% /usr/openwin swap 102460 12 102448 1% /tmp

  • solaris DDS3 バックアップ リストア 方法について

    急に公開Webサーバをさわるのは危険だということで、別のサーバ(メールサーバ)でバックアップ リストアの訓練をして、監査に訴えると上司にいわれました。手順書をつくりなさいとのことで下記に作成しました。 これでいいのか?悩んでいます。ご指摘いただけましたら幸いでございます。 よろしくお願いいたします。 システム稼動のままで、バックアップします。 V210 でバックアップをとる     ↓ Netra t1 でリストアする Tape DDS3 容量 13G ■サーバ リストア作業手順 [作業に当たって用意するもの] ・Backup Tape (DDS3) [バックアップ作業 実施手順] --<Tape 種類>---------------- DAT(90m) /dev/rmt/0 2GB /dev/rmt/0c 5GB(圧縮) DAT(125m) /dev/rmt/0 12GB /dev/rmt/0c 24GB(圧縮) ------------------------------ まず、Tape を装着する。 / 以下、フルバックアップの場合 (今回はマルチユーザで、バックアップする!) Ok init 3 ←※ok prompt から (ファイルシステム デバイス名 確認) #devnm /    ←※ファイルシステム rawデバイス名 確認 /dev/rdsk/c0t0d0s0     ←※fs のrawデバイス名が表示される (テープ装置の種類の確認) #mt-f /dev/rmt/0 status  ←※今回は4mm DDS3 (フルバックアップ) # ufsdump 0ucf /dev/rmt/0ln /dev/rdsk/c0t0d0s0 ====================================================== まず、Tape を装着する。 (Tape を巻き戻す) #mt ?f /dev/rdsk/c0t0d0s0 rewind  ←※Tape のはじめから、リストアする場合 (ファイルシステムの完全なリストア) # umount /home # newfs /dev/rdsk/c0t0d0s0 # mount /dev/rdsk/c0t0d0s0 /mnt # cd /mnt                      ←※マウントポイントへ移動 # ufsrestore rvf /dev/rmt/0 ←※ リカーシブモードのリストア ---------------------------------------------------------------------  注)Tapeが複数のテープにまたがっている時は、     Mount volum 2 then enter volume name(default: /dev/rmt/0) このときは、ボリューム番号2のテープを入れ替えたあとで、「Retern」を入力。 --------------------------------------------------------------------- (★バックアップデータは、/export/home ファイルシステムに復元される!) #cd /export/home #rm /export/home/restoresymtable ←※リストア用の一時ファイルの削除 # cd / # umount /mnt          ←※必ずアンマウントをすること! # fsck /dev/rdsk/c0t0d0s0 # mount /dev/rdsk/c0t0d0s0