Linuxでのストレージの命名

最近、UディスクとSDカードを使用してデバイスのシステムをアップグレードするときにいくつかの問題が発生しました。異なるSDカードがデバイスに挿入された後にマウントされたディレクトリの名前に一貫性がなく、SDカードが削除された後もマウントされたディレクトリが残っています。また、Uディスクを挿入した後、sdaが/ dev /ディレクトリに生成されることもあれば、sda1がまだ存在することもあれば、sdbなどになることもあります。ここに記録されるので、その後の開発で発生する落とし穴が少なくなります。Linuxシステムでは、通常USBフラッシュドライブを挿入すると、sda、sda1、sda2、sdb、sdcなどのデバイスファイルが/ dev /ディレクトリに表示されることがあります。これらのファイルの違いは何ですか?システムがudevまたはmdev動的デバイスファイル管理を使用している場合、システムの電源が投入され、デバイスがホットスワップされ、ドライバーがインストールされると、カーネルは対応するイベントをユーザースペースudevまたはmdevに送信します。udevは/ sysディレクトリで関連ファイルを検索して/ dev /ディレクトリにデバイスファイルを生成し、最後にユーザーが指定したルールに従って関連操作(自動マウント、接続の確立、デバイスファイルの名前変更など)を実行します。 )。
まず、sdaやsda1など、いくつかの関連する概念を理解する必要があります。Linuxでは、次の命名規則があります
ここに画像の説明を挿入
。Linux system / devディレクトリSD / MMCカードの名前はmmcblk <0-9> <p [0-9]>です。SDカードはMMCドライブを継続するため、名前はすべてmmcを使用します。そして、blkはブロックデバイス(ブロック)を指し、後ろのpはパーティションを指します。つまり、mmcblk1は2番目のSDカードであり、mmcblk1p1は2番目のSDカードの最初のパーティションを指します。
上の画像は、Linuxでのデバイスの命名に関する記事からのものです。
Linuxでは、Uディスクもハードディスクであるため、sdaは最初のハードディスクを表し、sdbは2番目のハードディスクを表し、sdnはn番目のハードディスクを表します。各ハードディスクはパーティション化できるため、sda1は最初のハードディスクの最初のパーティションを表し、sda2は最初のハードディスクの2番目のパーティションを表します
ここでは説明の便宜上、以下ではUディスクを例にしていますが、SDカードとUディスクは同じです。
/ sys /は仮想ファイルシステムであり、システムの実行中に生成されるいくつかの情報を格納します。デバイスを挿入すると(Uディスク)、Uディスクに関連するディレクトリ(sdaなど)が/ sys / block /に作成されます。sdaを入力した後、sda1ディレクトリがまだ存在していることがあります。各ディレクトリのdevファイルは、/ devディレクトリのデバイスファイルのメジャーおよびマイナーデバイス番号を指定するために使用され、ueventはいくつかの関連属性を記録します。
ここに画像の説明を挿入
ここに画像の説明を挿入
devファイルを見ると、そこに記録されているものは非常に単純で、メジャーとマイナーのデバイス番号のみであることがわかります。sdaのデバイス番号は8:0で、sda1のデバイス番号は8:1
ここに画像の説明を挿入ここに画像の説明を挿入
であることがわかります。ueventファイルには、メジャーファイル番号とマイナーデバイス番号、およびデバイスファイルの名前とタイプに加えて、より詳細な情報が記録されます。sdaでは、名前はsdaで、タイプはdiskです。これはディスクです。sda1ディレクトリのueventファイルでは、名前はsda1で、タイプはパーティションです。ここからわかるように、sda1はsdaのパーティションです。何のパーティションUディスク、ディレクトリのSDA sda1には存在しない、とUのディスクパーティションが複数ある場合は、対応するsda1にあるだろう、sda2は... SDAのディレクトリ一覧と気に入らない場合は
ここに画像の説明を挿入
ここに画像の説明を挿入
、上記缶からも、作業部のudevやMDEVで見られますプロセス、==ホットプラグまたはドライバのインストール中に、カーネルは特定のデバイスを検出し、それらを/ sys /ディレクトリに記録しますblockサブディレクトリは、ブロックデバイスに関連するいくつかの情報を記録します。デバイスファイルのメジャーデバイス番号とマイナーデバイス番号を記述したdevファイルがあり、ueventはより詳細な記述です。==アプリケーション空間のUdevは、ここから情報を取得して、デバイスファイルを動的に生成します。ルールの実装については、このパートに属さない関連記事で説明します。

元の記事を35件公開 Like1 Visits 1870

おすすめ

転載: blog.csdn.net/lzj_linux188/article/details/105079307