web-dev-qa-db-ja.com

Linuxカーネルはどのようにしてストレージデバイスまたは一般的なデバイスをどのように識別しますか?

1問題:今日、Raspberry Piを使用してSSDのベンチマークを実行しようとしたときに、同じラベルのSSDが2つあると、奇妙な動作が発生しました。

2セットアップ:私のセットアップは次のようなものです。私のRaspiはUbuntu 2004を実行しています-ルートファイルシステムはSamsung T5にあります。ブート時にルートファイルシステムはそのラベルで識別されるため、LABEL = rootfsとなります。私は別のSamsungT5(まったく同じモデル)のベンチマークを試みましたが、偶然にもパーティションラベルrootfsがありました。ただし、そのSSDをUSBポートに接続すると、システムが使用できなくなります。基本的にすべてのコマンドが見つかりません。絶対パスを使用している場合、システムはIOエラーを報告します。そのため、カーネルがルートファイルシステムへのアクセスを失ったと思います。

解決策:パーティションのラベルをe2label /dev/sdb dummylabelに変更すると、問題が修正されます。再起動が必要です。 SSDを取り外しても効果はありません。

4質問:この動作を説明し、Linuxでデバイスがどのようにアドレス指定されるかを理解するための詳細情報を探すのに役立つアドバイスやキーワードを誰かに教えてもらえますか。または、より一般的には、これを理解するためにどのソリューション検索プロセスを使用できますか。本の提案は大歓迎です。細かいところまでは興味がありませんが、OSを十分に理解しているので、自分で問題の原因を特定し、必要に応じて詳細を読むことができます。

御時間ありがとうございます。

1
Andrino

さまざまな永続的な命名方法があります。ラベルでデバイスを取り付けていました。別の方法として、ドライブuuidを使用できます。詳細を確認してください: https://wiki.archlinux.org/index.php/Persistent_block_device_naming#by-partlabel RHELストレージ管理ガイドも役立つはずです: https:// access .redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/index 次の本も私に役立ちました: http://linux-training.be/linuxsto.pdf ==

3
Stuka