1.ハードディスクの物理的な構造
ハードディスクが物理的に分割されています。
- ディスク
- トラック
- セクター
- マニピュレータ
- 磁気ヘッド
- スピンドル
トラック:
ヘッド位置に固定されている場合、ハードディスク回転は、ヘッドがディスク表面上の円形の経路を描くときに、円形の経路は、トラックと呼ばれています。多くのトラックに分割することができ、円、のディスク中心で、肉眼でこれらのトラックは見ることができない、彼らが磁化領域の磁化のいくつかの特別な方法でのみ、ディスク上にあるため、ハードディスク上の情報に沿っていますそのようなトラックのストレージは、番号「0」外側から内側へ順にディスク上のトラック。
シリンダー:
ハードディスクので、最初の画像のように、異なるディスクシリンダ(気筒)の形成に数、同一トラックによって構成することができます。
ヘッド:
つまり、各ディスクは、磁気ヘッドを有し、次いで2Nディスク(表面2を有するディスク)、さらに2Nの数を有するヘッドがあり、ハードディスクのプラッタNが存在すると仮定する。
セクター:
早期開始トラックに半径方向外向きにディスクの中央にハードディスクが弧のアリコートに分割され、これらのセクターの弧は、ハードディスクです。各セクタは、一般的に、我々はもっと混乱しなければなりませんサイズ512バイトを、定義され、内輪の外周には、各セクタが512バイトである可能性がどのように?答えは内輪よりもいくつかの初期のハード外側の下のストレージ密度を記憶している、大幅に比べて長いです我々が知っていれば数(トラック数)はシリンダ、ヘッド、ヘッド、セクタのセクタの数、我々は、実質的にディスクサイズ=シリンダを算出することができるハードディスクの容量をシリンダので、それは、依然として非常に長い外ストレージ512バイトであります*ヘッドは、セクタは512バイト* *。しかしながら、初期のハード外側低密度に、ディスク使用率が得られることは高くないが、ハードディスクは、内部及び記憶密度ディスクモードの外に同じで使用され、各トラックは円弧セグメント512バイトのサイズに分割され、またそう内側および外側トラックを引き起こしセクタの数は、セクタの数は、内輪、外輪セクタの数よりも大きくなるように、異なるであろう。
ディスクアドレッシング:
ハードディスクのアクセス、データの読み取り、最初のステップ、すなわち、データが存在する場所の物理アドレスを見つけて、取り組んでいる、それに対処する方法を、次に、対応するシリンダ、ヘッド、ハードディスク上の対応するセクターを見つける必要がありますか?CHSとLBA:二つの方法があります
2.パーティション
ハードディスクの一般的な使用は、ハードドライブ上の最初のパーティションは、その後、あなたは、通常の使用する前にファイルシステムフォーマット(NTFS、FAT、EXT2 / EXT3 / ext4の)パーティションを使用してパーティションをフォーマットします。
これは、円筒状パーティションの最小単位であるパーティション番号がシリンダ番号の末尾にシリンダ開始、すなわち、。
示すように、シリンダ1は、領域200に分けることができ、201 500をシリンダにゾーンに細分化され、1000から501は、領域に細分化などされています。0ない内部の任意のパーティションのシリンダ内の、なぜですか?
内側セクタが順次番号付けされると外周(シリンダ0)からハードディスクの前に言えば、各セクタは全く異なって表示されないが、ここではシリンダの最初のセクタ0のハードディスク(論理セクタ0、CHSを表す0/0/1)、最も重要であるべきであるハードディスクの最初のセクタはハードディスク全体に重要な情報が記録されているので、最初のセクタ(512バイト)は2つの主要部分に記録されます。
(1)MBR(マスターブートレコード ): ここでは、マスターブートプログラムとマスターブートプログラムは、オペレーティングシステムのブートプログラムがあるが、これは446バイトの一部でしかありません
DPT(ディスクパーティションテーブル(2) ):ここでもハードディスクのパーティションテーブル、パーティションテーブルが記録のハードディスクを分割するために使用され、例えば、cは1〜200円筒形ディスクであり、Dは、パーティションテーブル、500はシリンダにディスク201であります唯一の64バイトの合計は、それを見ることができ、パーティションは実際には非常に簡単です、再ゾーニングの表情内でこのテーブル内のレコードを変更することですが、唯一の64バイト、およびパーティションテーブルまで、16バイトを占有し、レコード以来複数のパーティションを分離するために継続するためには、4つのパーティション情報のみを記録し、拡張パーティションの概念を導入し、それは、これらの4つのパーティションで拡張パーティション情報レコードを記録するために使用して、拡張することができますで、と言うことですパーティションは、パーティションレコードの論理パーティションがリンクされたリストは、多くのパーティションとして分割することができるなど、拡張パーティションの最初のセクタに記録され、論理的に分割パーティションを続けました。ノートは、しかし、パーティションテーブルは、1〜4のプライマリパーティションを有することができるが、唯一の拡張パーティションを持つことができます。
一例として、プライマリパーティションP1とすることができる:〜200 1、拡張パーティションP2:〜1400 201、拡張パーティションの先頭を論理区画から分配拡張パーティションの最初のセクタを記録するために使用することができます。
3. Linuxのiノード/ブロック/スーパーブロックを理解します
必要なディスクパーティション形式(フォーマット)の完了後、オペレーティングシステムの後に、このファイルシステムを使用できるようにします。なぜ「フォーマット」の必要性を意味しますか?
各セットのオペレーティングシステムファイル属性/アクセス権が同じではないので、これは、ファイルシステム(あなたが「ファイルシステムフォーマットを利用するために、オペレーティング・システムになるためにパーティションをフォーマットする必要があり、これらのファイルに必要なデータを格納するために、ので、です)。 " ファイルシステムを使用することができ、それぞれのオペレーティングシステムが同じではありません。
従来のディスクやファイルシステムアプリケーション、それが唯一のパーティションはファイルシステムとしてフォーマットすることが可能である、ファイルシステムがパーティションであると言うことができます。しかし、ソフトウェアは、多くの場合、LVMディスクアレイ(ソフトウェアRAID)を聞く新技術の使用によるなど、これらの技術は、パーティションのファイルシステム(例えば、LVM)の複数としてフォーマットすることができる、複数のパーティションは、ファイル・システム・合成することができます(LVM、RAID)!だから、現在のフォーマットはもはやパーティション用にフォーマットされていると言われたとき、通常はデータではなく、パーティションのファイルシステムとしてマウントすることが可能と呼ばれていません。
ファイルシステムは通常、データの両方の部分が異なるブロックに格納されているであろう実際のデータブロックのデータブロックに配置されるように、属性オーソリティは、iノード内に配置しました。さらに、スーパーブロック(スーパーブロック)があり、ファイルシステム全体のための全情報を記録し、残りの量のiノードの総使用量のブロックを含んでいます。
各iノードおよびブロックは、以下のように簡単に説明することができ、これらの3つのデータの重要性については、番号を有します。
- スーパー:一般的な情報は、iノード/ブロックの合計量、残量の量、およびファイルシステム関連情報のフォーマットを含む、このファイルシステムを記録します。
- iノード:このファイルの記録データブロック番号が配置されている間、ファイルの録音ファイル属性は、1つのinodeを占めています。
- ブロック:ファイルが大きすぎる場合は、ログファイルの実際の内容は、それがブロック以上かかるだろう
各iノードおよびブロック番号を有し、各ファイルは、inodeを占有するように、ファイルデータのinodeに配置されたブロック番号があります。我々は、ファイルのinodeを見つけることができれば、その後は、データファイルのブロック番号が配置されて知っているよそのため、当然のことながら、ファイルの実際のデータを読み取ることができます。この方法は、ディスクは、短い時間ですべてのデータを読み出し読み、パフォーマンスが優れている書くことができますので、これは、より効率的なアプローチです。
inodeファイルのデータが記録されている間、データファイルの属性とアクセス許可と仮定ファイルシステムのinodeブロックおよびブロックをフォーマットするために、上記のように、説明するためのinodeブロックおよびブロック図は、inode番号4内に配置されています実際の配置ポイント2,7,13,15 4つのブロック数は、オペレーティング・システムがそれに応じてディスクを読み取るために配置することができ、あなたは息を4つのブロックには、内容を読み出すことができます。この方法は、データアクセスと呼ばれるインデキシング・ファイル・システム(インデックス付け割り当て)
あなたがああ比較することができ、他の従来のファイルシステムが存在しないこと?はい、それは私たちの通常のフラッシュドライブ(フラッシュメモリ)、一般的にFATファイルシステムフォーマットを使用してフラッシュドライブです。この形式のFATファイルシステムのiノードが存在していなかったので、このブロックは、すべてのFATファイルが最初に読み出される方法はありません。各ブロック番号がブロックを記録する最初の間にある、彼はこの下のようなビットを読み取ります。
我々上記の図は、データファイルを順次> 15の1-> 7> 4-、4つのブロック番号を書かれていることを前提としていますが、ファイルシステムが一気に4つのブロック番号を知る方法はありません、彼がしなければなりませんでしたブロックの読み出しの後、どこ次のブロックを知っています。データのブロックはあまり散乱同じファイルに書き込まれている場合は、私たちが読んでディスクヘッドがディスク上のデータのすべてに出席するために好転しないので、ディスクを読み取るために、いくつかのラップをオンにするために、より完全になりますこのファイルの内容!
多くの場合、右、いわゆる「デフラグ」を聞きますか?その理由は、ブロックファイルがあまりにも離散書かれているデフラグする必要があり、そのファイルがパフォーマンスを読んで、この時間は不振になります。一緒に集計ファイルへの残骸をソートすることができます。この時間は、同じブロックに属し、このデータは、ああ、より簡単に読み込まれます!当然のことながら、FATファイルシステムは、それがExt2のディスク、それを改革するかどうか、についての定期的なデフラグが必要?
インデックスはExt2のファイルシステムであるため、基本的には、多くの場合、デフラグする必要はありません。長すぎるため、ファイル・システムは、多くの場合、/編集/削除ファイルを追加、またはデータファイルも個別の問題を引き起こす可能性がある場合でも、今回は慎重に改革する必要がある場合があります。
iノードコンテンツ財産権および関連するログファイルは、ブロックをブロックするために、ログ・ファイル内の実際の内容です。そして、ファイルシステムのiノードとは、inodeが固定され、ブロックの後に、それ以外の場合は変更されません、再フォーマットしない限り、当初は、計画されたブロック(またはファイル・システムのサイズを変更するにはresize2fsのや他の命令を使用します)。あなたが考えてみれば、私は数百GBまでのシステムファイル場合は、iノード番号とブロックが大きすぎるので、しかし、その後、すべてのiノードの、すべてのまとめをブロックし、管理することは容易ではない非常に愚かな決断だろう。ファイルシステムは、実質的に基(ブロック基)をブロックの複数にフォーマットされたときしたがって、ブロックの各グループは別々のinode /ブロック/スーパーシステムを有しています。
私たちは、軍隊のように感じ、さらには数に分けた大隊は、それぞれがさえ、自身の連絡システムを持っていますが、最終的には一般の大隊にも、最も正確な情報を上返します!このように、より良い友人のグループを管理するに!この下のような全体、ファイルシステムフォーマットビット:
この方法は、我々は異なるブートマネージャのものとすることができるので、全体的な計画、ファイルシステムのフロントブートセクタ(ブートセクタ)があるでは、あなたはブートセクタのブートマネージャをインストールすることができ、これは、非常に重要な設計ですむしろ、マルチブート環境を作ることができるだろう唯一のMBRディスクをカバーする全作品、より、個々のファイルシステムに最前線をインストールします。
6つの主要な説明における各ブロック群(ブロック群):
データブロック(リソースブロック)
ローカル・データ・ブロックは、ファイルデータの内容を配置するために使用され、ファイルシステムのブロックサイズが1K、2K、4Kだけで3種類のサポート。それにより、ブロックの大きさの違いが、iノードメモの記録を容易にするために、ブロックのサイズが固定され、各ブロックは、番号付けされたフォーマットするとき、最大ディスク容量と最大値をサポートすることができ、ファイルシステムの原因となります単一のファイルサイズは同じではありません。次のようにファイルシステムのブロックサイズの上限が生成されるので:
次のように基本的なブロックが制限されています。
- フォーマットにおけるブロックサイズと数は完全に変更することができません。
- 各ブロック内に配置することができ、ほとんどのデータファイルでは、
- ファイルは、ブロックのサイズよりも大きい場合、そのファイルは、ブロックの数よりも多くを占めます。
- ファイルはブロックよりも小さい場合、ブロックの残容量は、(ディスクスペースを無駄に)再び使用することができません
各ブロックは唯一のデータファイルだけを収容することができますので、前述した第四の点、ので、あなたのファイルは非常に小さいですが、あなたは4KフォーマットShiqueで最大のブロックを選択すると、いくつかの能力を持っている可能性がある場合ああ無駄!我々は下にあり
、それをスペースの無駄をカウントする簡単な例!
どのような状況を作り出すだろうか?
こうしたことのウェブサイトなどBBSデータ!彼らは時間、上に書かれている場合、各メッセージ、およびメッセージ内容の記録は、「タイトルなど、」それはそれは小さなたくさんのファイルを生成するかどうかを考えるプレーンテキストファイルを使用してBBS上記のデータであればということ?
大きなブロックは、ディスク容量の深刻な廃棄物を生み出す可能性があるのでまあ、我々は1Kブロック・サイズに設定するかどうかをすることができますか?ブロックが小さい場合は、大きなファイルをブロックのより多くを取るだろうが、また、より多くのブロックのinode番号を記録するために、この時間はおそらく読み取りと書き込みのパフォーマンスの低下ファイルシステムになりますので、これは、間違っています。
iノードとは何ですか
ハードディスクに保存されているファイル、「部門(セクター)」と呼ばれるストレージのハード最小単位。ストレージセクタあたり512バイト(対応0.5キロバイト)
オペレーティングシステムは、ハードディスクを読み取り、それは効率が低すぎるように、セクタの読み出しが、セクタの使い捨て連続読取複数のない、即ち、一回のリード「ブロック」(ブロック)。複数のセクタからなるこの「ブロック」は、ファイルアクセスの最小単位です。サイズ「チャンク」、最も一般的には、ブロックを形成するために、4キロバイト、すなわち8つの連続したセクタです。
ファイルのデータが「ブロック」に格納され、あなたにも、そのようなので、上のファイルの作成者、作成日、ファイルのファイルサイズ、およびとして、メタ情報ファイルを格納する場所を見つけなければならないことは明らかです。このメタ情報ファイル格納領域は、iノード、の中国語の翻訳と呼ばれている「iノード。」
各ファイルは、ファイルに関連付けられた情報の一部が含まれている対応するiノードを有します。
iノードの内容
inodeがメタ情報ファイルを含む、具体的には、以下があります。
- ファイルのバイト数
- ユーザーIDファイルの所有者
- グループIDドキュメント
- ファイルを読み取り、書き込み、および実行権限を
- タイムスタンプファイルが、3あります:ctimeをiノードは、時間変化を意味し、ファイルのmtimeはファイルの内容が変更に時間を指し、atimeを開いているファイルを参照します。
- ファイル名のinodeの数を指すリンクの数
- ファイル・データ・ブロックの位置
STATコマンドは、ファイルのiノード情報を表示するために使用することができます。
要するに、ファイル名に加えて、すべてのファイル情報は、iノード間があります。なぜいないファイル名については、以下に詳細にについて説明します。
iノードサイズ
iノードには、二つの領域にディスクスペースなので、ハードディスクのフォーマット、オペレーティングシステムに自動的にハードディスクを消費します。ファイルデータを格納するデータ領域と、他の領域は、iノード(inodeテーブル)であり、情報格納されたiノードが含まれています。
iノードサイズの各々 、典型的には128バイトまたは256バイト。フォーマット時に通常1キロバイト2キロバイトごと、所定のまたはiノードごとに設定するためのiノードの総数は、です。1ギガバイトのハードディスクを仮定すると、iノードの各々のサイズは128バイトであり、1キロバイト各iノード、ハードドライブ全体の12.8%を占め、128メガバイトに到達するiノードテーブルのサイズを設定します。
各ハードディスクのパーティションと、すでに使用中のiノード数の合計数を確認し、あなたはdfコマンドを使用することができます。
iノードサイズのそれぞれは、次のコマンドを使用することができます参照してください。
注意:
dumpe2fsは唯一のext2 / 3/4のファイルシステムをサポートしています
XFSはxfs_infoビューを使用する必要がある場合
iノード番号
各ファイルの異なるinode番号を識別するために使用されるiノード番号とオペレーティングシステムを持っています。
これは、再び繰り返す価値がある、内部のUnix / Linuxシステムでは、ファイルを識別するために、iノード番号を使用して、ファイル名を使用しません。システムの場合、ファイル名別の名前やニックネームを簡単に識別のためだけのiノード番号。
表面には、ファイル名を介してユーザがファイルを開きます。実際には、プロセスの内部システムは、3つのステップに分かれています。
- システムは、ファイル名に対応するiノード番号を検索します。
- iノード番号によって、iノード情報を取得します。
- データ・ブロック・ファイルを見つけるためのiノード情報を、よると、データを読み取ります
使用のls -iコマンドは、ファイル名に対応するiノード番号を見ることができます:
ディレクトリのファイル
UNIX / Linuxシステム、ディレクトリ(ディレクトリ)がファイルです。Open Directoryは、実際には、ファイルディレクトリを開きます。
ディレクトリのファイル構造は、それがのディレクトリエントリ(のdirent)の一連のリストであり、非常に簡単です。各ディレクトリエントリは、2つの部分から構成されます。ファイルは、ファイル名、ファイル名と対応のiノード番号が含まれています。
ディレクトリ内のすべてのファイルのコマンドリストLSのみのファイル名
LS -iコマンドリストディレクトリ全体のファイル、ファイル名とiノード番号:
あなたはファイルの詳細を表示したい場合は、iノード番号、iノードへのアクセスに基づいている必要があり、情報をお読みください。ls -lコマンドは、ファイルの内容を示しています。
これら上記の知識を理解し、我々は、ディレクトリへのアクセス権を理解することができます。(、である(ワット)カタログファイルのアクセス権(R)および書き込み権限を読むことがあり、別のユーザーがアクセスできるディレクトリファイル自体のディレクトリ上のどのファイル操作、tmpディレクトリのファイルの異なるユーザ(Dのtmpは見つけることができますたとえば、用)Dはディレクトリ、すなわち、ディレクトリを表す、ディレクトリファイルであるrwxr-xr-xとなって、第一のグループ、すなわちRWXの三文字三の第二セット、ファイルを読み出し、ユーザがファイルへの書き込みアクセスをしたことを示し文字、つまりRXは、3つの文字の第三のグループ、すなわちRXは、ユーザーのユーザーファイルの所有者以外のユーザーのグループを表し、ファイルは、ユーザーが他のユーザーのファイルに位置しているユーザーのグループに権限を読み書きしたことを示しますファイルの読み込みと書き込み権限を。唯一持っているユーザーのファイルのディレクトリ)の権限で動作させることができ、ユーザディレクトリのファイルアクセス操作の下で実行されるプロセスを。あなただけの読み取りアクセス権を持っているので、もし、ファイルのディレクトリとiノード番号でのみファイル名だけなので、ファイル名を取得することができ、追加的な情報を得ることができない、他の情報は、iノードノードに格納されているため、およびiノードを実行するために必要なディレクトリ情報内のファイルを読み込みます許可(x)です。
ハードリンク
ファイル名とinode番号が関係「一対一」であり、一般的に、各iノード番号は、ファイル名に対応します。ただし、UNIX / Linuxシステムでは、複数のファイル名が同じiノード番号を指すことができます。
このことは、あなたが同じコンテンツにアクセスするために別のファイル名を使用することができ、ファイル内容の変更は、すべてのファイル名には影響しますが、ファイル名を削除、別のファイル名にアクセスには影響しません。この状況は、「ハードリンク」(ハードリンク)と呼ばれています。
LNは、ハードリンクを作成するためのコマンド:
LNソース先のファイル
上記のコマンド実行後、ソース・ファイルの同じinode番号とターゲット・ファイル、同じiノードをポイント。「リンク数」inodeファイル名の記録ポイントの合計と呼ばれるリストのiノード情報は、それが1増加します。
逆に、ファイル名を削除するには、iノードノードマイナス1「リンク数」を作ることができます。この値は、ファイル名は、iノードを指していないことを示し、ゼロに到達すると、システムのiノード番号を回収し、それに対応するブロック領域であろう。
ソフトリンク
ハードリンクに加えて、特別な場合があります。
iノード・ファイルAおよびBの数、ではないが同じ、しかし、コンテンツはファイルBのパスファイルであります ファイルAを読み出す場合、システムが自動的に直接訪問者はB.を提出します したがって、関係なく、ファイルが開かれているもの、最後の読書は、ファイルBではありません この場合、ファイルAは、「ソフトボタン」ファイルB(ソフトリンク)または「シンボリックリンク(シンボリックリンク)と呼ばれます。
「そのようなファイルまたはディレクトリ」:これは、ファイルAがBファイルに依存して存在している、あなたは、ファイルBを削除した場合、A'llはエラーを取得し、ファイルを開くことを意味します。これは、ソフトとハードリンクのリンク間の最大の違いです:ファイルBファイル名の文書は、ファイルのiノード番号は変更されませんではないBさん、Bさんのファイルのinode「リンクの数」です。
iノードの特別な役割
iノード番号とファイル名が区切られているので、このメカニズムは、いくつかのUnix / Linuxシステム固有の現象につながっています。
ファイル名に特殊文字が含まれている(1)いくつかのケースでは、それが適切に削除することはできません。この場合、iノードを削除し、それが削除されたファイルの役割を果たすことができます。
(2)ファイル名のみを変更し、ファイルを移動したり、ファイルの名前を変更するには、iノード番号には影響しません。
(3)将来的には、ファイルを開いて、ファイルを識別するために、iノード番号にシステムは、ファイル名は考慮されません。そのため、一般的に言えば、システムは、iノード番号からファイル名を知りません。
三点目は、簡単にソフトウェアアップデートが再起動せずにソフトウェアをシャットダウンせずに更新することができます。ファイルのinode番号によるシステムが稼動、ないファイル名を識別するので。更新、同じファイル名のファイルの新しいバージョンは、新しいiノードを作成し、それがファイル操作には影響しません。あなたがソフトウェアを実行する次の時間まで待って、ファイル名が自動的に新しいファイルを指すようになります、iノードレガシーファイルを回収しました。
要約:
- ファイルに対応するiノード、そのサイズに基づいてファイルは、複数のブロックを占有します。
- より正確に、一つのファイルは一つだけiノードに対応しています。実際には、代わりに新しいファイルを作成するためのハードリンクとして、ちょうどそれにDirectoryに新しい関係を書きます。
- ファイルを削除すると、唯一のiノードが利用可能としてマークされ、ブロック内のファイルの内容は、新しいファイルのみが時間のブロックを必要とクリアされません、それがカバーされます。
ネットワークからの参照記事と「鳥ブラザープライベートキッチン」
参考リンク:
https://www.cnblogs.com/doll-net/p/6090298.html
https://blog.csdn.net/Ohmyberry/article/details/80427492