Linuxのinodeとは何のことでしょうか?

ファイルとブロックを結びつける媒介という捉え方でよろしいでしょうか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

inodeは、ファイルやディレクトリに対し必ず1個存在するファイルの実体に関する情報を管理するためのもの(構造体)になります。


inodeには、実際にデータが書き込まれいるディスク上のブロックの情報をはじめ、ファイルのオーナーやグループ、パーミッション、サイズ、最終更新日時などが格納されています。

ただし、ファイル名やディレクトリ名に関する情報はinodeには格納されていません。
これら、ファイル名やディレクトリ名は、ディレクトリエントリという所に格納され、ここにファイルの実体への情報、つまり該当するinodeがどれかという情報も格納されています。

これらの構成はUNIX系OSであれば、基本的に違いはありません(inode内に格納されている情報にファイルシステムによる違いは存在しますが)。

この回答への補足

早速のお返事ありがとうございます。

>inodeには、実際にデータが書き込まれいるディスク上のブロックの情報をはじめ、ファイルのオーナーやグループ、パーミッション、サイズ、最終更新日時などが格納されています。

inodeはこのような情報が格納されたファイルの一つであるということでしょうか?

よろしくお願いします。

補足日時:2005/04/05 11:02
    • good
    • 0

>inodeはこのような情報が格納されたファイルの一つであるということでしょうか?



いえ、ファイルではありません。
ファイルシステムには、ファイルシステムを管理するために使用する領域があり、inodeはその領域内に存在します。

参考URL:http://japan.linux.com/kernel/internal22/node101 …
    • good
    • 0
この回答へのお礼

なるほど。
ファイルだと勘違いしていました。

参考サイトまで教えていただきありがとうございます!

お礼日時:2005/04/05 18:06

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QLinux上で使用しているあるフォルダ以下全体をZIPで圧縮してバック

Linux上で使用しているあるフォルダ以下全体をZIPで圧縮してバックアップしたいです.
そのフォルダはいくつものフォルダとファイルが階層になってたりします.
ただ,その指定フォルダ以下に含まれる一部のファイルはそのZIPに含めたくありません.
たとえば,「.o」と「.csv」という拡張子のファイルを含めたくないです.
これを正規表現とかスクリプトとかを使って実現できたら,やり方を教えてもらえないでしょうか.

Aベストアンサー

ターミナルから、「man zip」とコマンドを打ちましょう。
そうすると、使い方が表示されます。
その中で
 zip -r foo foo -x@exclude.lst
とあります。
exclude.lstというファイルに一致するものを除外してくれます。

Qlinux環境のinode数の変更方法について

現在、Centos4で稼働しているメールサーバーがいるのですが、最近inodeを使い切るような事態が発生しました。
そのため、サーバーもずいぶん古いので、これを機に新規にメールサーバーをクラウド(AWS想定)に作成することになりました。

調べてみると、inodeの上限変更コマンドは見つかったのですが、
このコマンドでファイルシステムを作成後、どのような手順でシステム領域などを移動させればよいのでしょうか。

AWS上なので、インスタンスを立てて新規EBSボリュームを1つ追加。
このEBSボリュームをinode上限変更してファイルシステム作成。
というところまではいいと思うのですが、そこからどうやってシステム領域などを移動させるのかがわからないのです。

もし参考になる情報などありましたら、ご教授いただけないでしょうか。

※inode上限変更コマンド
※https://viblo.asia/eiji346/posts/jlA7GKmWRKZQ
※$ mke2fs -i Byte -t filesystem

Aベストアンサー

コマンドの詳細はmanで引けばよいです。
変更方法に関する説明は以下のような解説記事が参考になるでしょう。

http://www.itmedia.co.jp/enterprise/articles/0808/12/news036.html

また、「Linux inode数 変更」といったキーワードでいろいろ見つかるはずです。
Linux、Unixの設定解説本もいろいろあります。O'ReillyのUnixシステム管理系の本なんかは必須かもしれません。

QLinux (SUSE)で、Win圧縮フォルダで作ったZIPを解凍するには

Windowsエクスプローラーで作れるZIPファイルを、Linux (SLES 10)で確実に解凍する方法はありますでしょうか?
小さいものはうまくできても、大きいものはエラー終了するという、不思議な現象に遭遇しています。

遠隔地に数十GBもあるテキストファイルを送る必要があり、Windows 2003 Serverで、
エクスプローラーの右クリックで出てくる「送る」→「圧縮(ZIP形式)フォルダ」でZIPファイル化し、SCPでネットワーク転送しました。

転送先でファイルを開こうとすると、小さい(数MB~数百MB)ファイルはなんら問題なく解凍できたのですが、
大きいファイル(GBレベル)は、ものによっては
need PK compat. v4.5 (can do v2.1)
や、
start of central directory not found; zipfile corrupt.
というメッセージとともに異常終了してしまいます。

Aベストアンサー

とりあえず、アドバイスです。
私も、AIXを使用しているときにzipファイルの解凍に苦労しました。
その時思いついたのは、PerlとArchive::Zipモジュールを用いることです。
Linuxでも同様の事ができるのではないでしょうか。
上記をキーワードにググれば参考のスクリプトはありますよ。

QLinuxから別PCのLinux上のファイル参照

LinuxマシンからWindowsマシンのファイルを参照する時は、
smbmountというコマンドを使っているのですが、
Linuxマシンから別のLinuxマシンのファイルを参照する時に使えるようなコマンドはあるのでしょうか?

Aベストアンサー

smbclient //NetBIOS名/共有名 -U ユーザ名
具体的にはhostname コマンドでの表示がtktk1228.net.com
smb.confでtmpディレクトリを設定し、user01がsmbpasswdで登録してあれば以下のようにアクセスします
smbclient //tktk1228/tmp -U user01

Qlinuxなどの圧縮、解凍は何故一瞬なんですか?

Linux系OSのファイル圧縮、解凍のコマンドの
"zip"コマンドや、"unzip"コマンドは何故一瞬で圧縮&解凍が完了するのでしょうか?
同じLinuxでGUI(対象ファイルを右クリックから)から操作した場合やWindowsで同じ容量のファイルをフリーのツールで圧縮&解凍した場合と比べると
上記のコマンドを使った方が何倍も早く圧縮&解凍が完了しているようです。

GUIからの操作やWindowsのツールとLinuxのコマンドでの圧縮&解凍アルゴリズムで大きな違いがあるのでしょうか?
どなたか詳しい方がいらっしゃいましたらご解答お願いいたします。

Aベストアンサー

圧縮&解凍のアルゴリズム自体は同じです。

ディスクアクセスがどうこうということもあるかとは思いますが、
それよりもGUIでの操作だと、圧縮解凍と作業は直接関係ない、進行状況を視覚的に表すダイアログやウインドの描画処理が加わります。
ウインド描画したり、プログレスバー(進行状況表す棒グラフのようなの)とか表示するのにパワーを消費するので、その分だけ遅くなります。

CUIなら、ターミナル上に文字表示するだけの非常に単調な作業です。
複雑な画面描画が不要なCUIだけなら十年以上前の非力なマシンでも十分実用的な速度で扱えます。

実はCUIでのunzipコマンドでも、オプションで途中経過を表示/非表示にするとその分だけ処理速度変わります。
コンマ何秒の気付かないレベルですが。

Terminal上で
unzip hoge.zip(進行状況を表示する)
unzip -q hoge.zip(進行状況を表示しない)
をtimeコマンド使って実行時間比べると約2倍の差がありました。
ただテキスト表示するかしないかの違いで。

QLinuxの「セクタ」と「データブロック」の違い

Linuxの本を読んでいたら、
データを保存する領域として「セクタ」と「データブロック」という
二つの単語が出て来ました。

本を読む限り、微妙に意味合いが違っているようなのですが
どのように違うのか明確に分かりませんでした。

どなたか分かる方教えて下さい。

Aベストアンサー

セクタはハードウェア的な最小単位というのは正しいですが、これもHDDでは標準で512バイトというだけで実際には可変です。

※物理フォーマット時に設定(変更)する事ができます。


ブロックサイズは入出力時に一度に扱う単位で管理単位とは違います。

例えばe2fsの場合、mke2fsコマンドで調整できる値としてフラグメントサイズとブロックサイズがあって管理の最小単位はフラグメントサイズで入出力の最小単位はブロックサイズとなります。

例えばフラグメントサイズが1024バイトでブロックサイズが4096バイトの場合に4100バイトのファイルと3000バイトのファイルを書き込む時、4100バイトのファイルは4096+4なので4096バイトのブロックと1024バイトのフラグメント1つ、3000バイトのファイルは2048+952なので1024バイトのフラグメント3つとして扱われ、4つまでのフラグメントは1ブロックとして一度の入出力で読み書きされる場合があります。

※入出力はブロックサイズで行われますが、管理はフラグメントサイズで行われるので速度は4096ブロックの速度で、利用効率は1024バイト/ブロック時の利用効率で使えます。(カーネル内で組立て・分解されるのでその処理に若干の負荷は余分に掛りますが)

前の例では単純にブロックサイズで管理した場合、4100バイトのファイルが2ブロックを消費し、3000バイトのファイルが1ブロックを消費するので合計3ブロックを占めますが、ブロックとフラグメントの2層で管理する事により、1ブロック+1/4ブロックと3/4ブロックで合計2ブロックに占有ブロックを減らせる事になります。効率のみでなく速度も入出力の回数が減らせて向上します。


http://ja.wikipedia.org/wiki/Unix_File_System

上記ページで『ファイルの最後の部分はブロックサイズ未満になるので、それをブロックを分割したサブブロックに格納することで領域を有効活用できるようにする。これをブロックのサブアロケーション、テールマージ、テールパッキングなどとも呼ぶ』と説明されています。また、『Linux の ext2 ファイルシステムは UFS の影響を受けている』とも。

セクタはハードウェア的な最小単位というのは正しいですが、これもHDDでは標準で512バイトというだけで実際には可変です。

※物理フォーマット時に設定(変更)する事ができます。


ブロックサイズは入出力時に一度に扱う単位で管理単位とは違います。

例えばe2fsの場合、mke2fsコマンドで調整できる値としてフラグメントサイズとブロックサイズがあって管理の最小単位はフラグメントサイズで入出力の最小単位はブロックサイズとなります。

例えばフラグメントサイズが1024バイトでブロックサイズが4096バイトの...続きを読む

Q圧縮(zip形式)フォルダ作成

デスクトップ上の何もない所で、右クリックをしてメニューを出して、
新規作成から、圧縮(zip形式)フォルダを選択しようとしましたが、何故か?圧縮(zip形式)フォルダというメニューが表示されません。

圧縮解凍ソフト「Lhaplus」をインストールしたら、この圧縮(zip形式)フォルダというメニューが表示されなくなりました。

「Lhaplus」をアンインストールすると、圧縮(zip形式)フォルダは表示されます。

「Lhaplus」をインストールした後に、圧縮(zip形式)フォルダを新規で作る方法、右クリックで圧縮(zip形式)フォルダをメニューに表す方法ってあるんでしょうか?

ちなみに、「Lhaplus」のかわりに「+Lhaca」という圧縮解凍ソフトをインストールすると、右クリックで新規に、
圧縮(zip形式)フォルダは現れます。

「Lhaplus」をインストールしても、右クリックで新規に、
圧縮(zip形式)フォルダを出す方法があれば教えてください。

お願いします。





Lhaplus

Aベストアンサー

やっぱり「Lhaplus」がいいですか?

関連付けの設定は、(インストール時にデフォルトのままなら)デスクトップ上に「Lhaplus」のショートカットアイコンがあると思います。
# 無い場合は「スタート」>「プログラム」から。

そのショートカットを右クリック→管理者として実行
とすると、「Lhaplus」の設定ウィンドウが表示されます。
(インストールが済んだときに一度出てくる画面です。)
簡易設定画面だと、「一般設定」タブの右下の方の欄に、「-関連付け(解凍)-」というのがあります。
(詳細設定だと、「関連付け/シェル」タブ)
その中のzipのチェックを外して「適用」してください。
たぶんそれだけで「圧縮(zip 形式)フォルダ」は復活します。

「管理者として実行」をしないと、関連付けの変更が有効になりません。(ユーザーアカウント制御を無効にしている場合は「管理者として実行」しなくてもいいかも。)

#1に書いてある「Lhaplusで用意されている圧縮フォルダと同等の機能を有効」というのが、どこで設定するのかは判りませんでした。

やっぱり「Lhaplus」がいいですか?

関連付けの設定は、(インストール時にデフォルトのままなら)デスクトップ上に「Lhaplus」のショートカットアイコンがあると思います。
# 無い場合は「スタート」>「プログラム」から。

そのショートカットを右クリック→管理者として実行
とすると、「Lhaplus」の設定ウィンドウが表示されます。
(インストールが済んだときに一度出てくる画面です。)
簡易設定画面だと、「一般設定」タブの右下の方の欄に、「-関連付け(解凍)-」というのがあります。
(詳細...続きを読む

QLinuxでディレクトリ内の最新ファイルとファイル数を取得したいです。

ディレクトリ内にファイルが多すぎて
lsしても画面が流れてしまい困っています。

・ディレクトリのファイル数を取得したい
・ディレクトリ内の最新ファイルの日付を取得したい
のですがどうしたら良いでしょうか?

Aベストアンサー

> lsしても画面が流れてしまい困っています。
ls -ltr | more /// スペースキーで画面スクロール。
ls -ltr | tee a.txt /// a.txt にファイル名が出力されます。(リダイレクト">"よりはいいですよ。)

>・ディレクトリのファイル数を取得したい
ls -ltr | wc -l

>・ディレクトリ内の最新ファイルの日付を取得したい
ls -ltr | tail -1

QZIP圧縮の短所はありますでしょうか?

圧縮ファイルについて質問です。
LZHとZIPでの圧縮を使用しています。
今まで、LZHしかしらないで、使っていたのですが、ZIPで圧縮すると、圧縮してもファイルの内容がみれるので、こちらのほうが便利だなぁと思っています。
win98でも2Kおよびxpでも大丈夫でした。また、EXCELファイルを圧縮したのですが、LZHとZIPでほとんど圧縮後のファイルサイズがかわりませんでした。

1)今のところ、ZIPの短所がみあたらないのですが、なにか、短所のようなものはあるのでしょうか?
2)ZIPとLZHはどのような原理の違いがあるのでしょうか?

以上、よろしくお願いします。

Aベストアンサー

1短所と長所
古い規格であるため、圧縮率、解凍速度、圧縮の信頼性、暗号化全てにおいてそのトップを行くソフトよりは劣ります。
・圧縮率だけを考えるなら
http://ringonoki.net/sub/assyuku.html
7-zip、rar、gcaになりますし。
・解凍速度だけで見るなら
おそらくyz1
・安全性や暗号化の信頼度から見れば
rar
※圧縮速度に関してはzipがトップかもしれません。

長所は古い規格であるため、補助ツールなどが豊富。WindowsXPでは標準で解凍できるので先にあげた短所を上回る利便性があると思います。

2原理の違い
プログラム的な構造や原理の違いを知りたいということであれば
http://www.madobe.net/archiver/index.html
ここのサイトのリンク先を一通り読んでみましょう。論文やソースがあちこちにあります。
原理を知らなくてもその違いだけでよいということであれば。
・lzhは国産、zipより後に作られたので多少圧縮率が高い。日本人が作った対応ツールが豊富。
・zipは米国産。アメリカでは主流。当然補助ツールなどもアメリカ産が多い。
というぐらいの違いしかありません。

1短所と長所
古い規格であるため、圧縮率、解凍速度、圧縮の信頼性、暗号化全てにおいてそのトップを行くソフトよりは劣ります。
・圧縮率だけを考えるなら
http://ringonoki.net/sub/assyuku.html
7-zip、rar、gcaになりますし。
・解凍速度だけで見るなら
おそらくyz1
・安全性や暗号化の信頼度から見れば
rar
※圧縮速度に関してはzipがトップかもしれません。

長所は古い規格であるため、補助ツールなどが豊富。WindowsXPでは標準で解凍できるので先にあげた短所を上回る利便性があると思います。
...続きを読む

QLinuxのファイルハンドルとファイルディスクリプタの違い

こんにちわ。
Linuxのファイルハンドルおよびファイルディスクリプタについて質問があります。
/proc/sys/fs/file-nrにはファイルハンドルに関する3つの値があるかと思います
が、それとは別にulimit -aを実行したときに表示されるopen filesの値があるか
と思います。

後者のulimitで表示されるopen filesの値はファイルディスクリプタの最大値だと
理解しておりますが、これと上記/proc/sys/fs/file-nr、/proc/sys/fs/file-max
で表示されるファイルハンドルの最大数との関連性がわからなくなって来ました。
ファイルハンドルはファイルを開く際にメモリ上に確保されるエリア、
ファイルディスクリプタはオープンしたファイルに割り当てられた
識別子という理解は間違ってるのでしょうか?
そもそもulimitはユーザの制限なので/proc/sys/fs/file-maxで設定
されている以上の値(ファイル管理テーブルの最大エントリ数)をopen filesには指定
できないという理解でいいでしょうか?

こんにちわ。
Linuxのファイルハンドルおよびファイルディスクリプタについて質問があります。
/proc/sys/fs/file-nrにはファイルハンドルに関する3つの値があるかと思います
が、それとは別にulimit -aを実行したときに表示されるopen filesの値があるか
と思います。

後者のulimitで表示されるopen filesの値はファイルディスクリプタの最大値だと
理解しておりますが、これと上記/proc/sys/fs/file-nr、/proc/sys/fs/file-max
で表示されるファイルハンドルの最大数との関連性がわからなくなって来ま...続きを読む

Aベストアンサー

>ファイルハンドルはファイルを開く際にメモリ上に確保されるエリア、
>ファイルディスクリプタはオープンしたファイルに割り当てられた識別子という理解は間違ってるのでしょうか?
厳密な定義は知りませんが上記の理解であっていると思います。
ただし、ファイルハンドルと言う言葉はファイルをオープンするとOS内に確保されるエリアという意味以外に、オープンされたファイルを言語で扱う場合のオブジェクトという意味で使われることも多いです。

/proc/sys/fs/file-{max,nr} での数値はOS全体のもの。
ulimitで制限するのはそのシェルから起動する1つのプロセスでの上限です。
ulimitの上限で先に効いてくるのはシステム全体の値file-maxよりも、selectシステムコールで使うファイルディスクリプタビット列の長さ__FD_SETSIZE(普通は1024)でしょう。


人気Q&Aランキング

おすすめ情報