GNU/Linux >> Linux の 問題 >  >> Linux

最初の再起動後、MD デバイス名が HOSTNAME:を含むように変更されます。一貫した名前を取得するにはどうすればよいですか?

<ブロック引用>

MD デバイスの一貫したデバイス パスを取得するにはどうすればよいですか?

mdadm --create /dev/md/foobar ... の後 、両方 hostname そして name mdadm --examine で確認する必要があるため、mdadm メタデータに格納されます。 または mdadm --detail :

# mdadm --detail /dev/md/foobar
           Name : ALU:foobar  (local to host ALU)

ALU 私の ArchLinux マシンのホスト名です:

# hostname
ALU

作成時に保存するホストを指定できます:

# mdadm --create /dev/md/foobar --homehost=barfoo
# mdadm --detail /dev/md/foobar
               Name : barfoo:foobar

...しかし、通常、誰もそれを覚えていません.

そして、それはすでに問題の始まりです... LiveCD などから RAID アレイを作成した可能性があり、その環境のホスト名はメインのインストールとまったく一致しませんでした。そして、メタデータにはまったく関係のないホスト名が保存されます。

同様に、すべてを正しくセットアップした後、RAID で問題が発生し、レスキュー システムを起動してチェックアウトしても、やはりホスト名に不一致があります。

または、逆に、2 つの独立したシステムに同じホスト名を使用してからドライブを移行した場合、ホスト名が間違ったマシンであっても一致する場合があります。その後、エイリアン アレイは元のアレイの名前を引き継ぎます...

これで、mdadm --assemble --update=homehost を使用して後でメタデータを変更することもできます または --update=name 、それは問題に対処する 1 つの方法です。正しく設定する必要がありますが、(なんらかの理由で) メタデータを直接 16 進編集しないと変更が難しく、アセンブリ時にしか変更できません。

別の方法は、システム hostname を無視することです 代わりに --homehost を指定します アセンブリまたはセット HOMEHOST mdadm.conf で .これについては、mdadm.conf マンページで詳細に説明されています。

<ブロック引用>

ホームホスト
homehost 行は、 --homehost=オプションのデフォルト値を mdadm に指定します。通常、行には他の単語が 1 つだけあるはずです。ホスト名か、特殊な単語 <system> のいずれかである必要があります 、 <none> そして <ignore> . <system> の場合 が与えられた場合、gethostname(2) システムコールを使用してホスト名を取得します。これがデフォルトです。
[...]
アレイが作成されると、このホスト名がメタデータに格納されます。自動アセンブリを使用してアレイをアセンブルすると、メタデータに正しいホームホスト名が記録されていないアレイは、「外部」名を使用してアセンブルされます。 「外国の」名前は常に、可能なローカル名と区別するためにアンダースコアが前に付いた数字列で終わります。例えば/dev/md/1_1 または /dev/md/home_0.

HOMEHOST ALU を設定してみてください。 (私の場合)、またはより一般的な HOMEHOST <ignore> (または HOMEHOST <none> ) mdadm.conf で .ただし、その mdadm.conf の場合にのみ機能します 存在します。また、ignore を設定して別のマシンからアレイを接続すると、名前の競合が発生する可能性があります。

したがって、メタデータと mdadm.conf でホスト名を正しく設定し、それを無視しないことが最善です。さらに、アセンブリの前に initramfs で実際のホスト名を設定することをお勧めしますが、実践するのは難しい場合があります。

私の個人的な好みは、古典的な数値スタイルに固執することです。 UUID のみで識別:

ARRAY /dev/md1 UUID=8fe790ca:f3fa3388:4ae125b6:2c3a5d44
ARRAY /dev/md2 UUID=f14bef5b:a5356e51:25fde128:09983091
ARRAY /dev/md3 UUID=0639c68d:4c844bb1:5c02b33e:00ab4a93

これも一貫しています(ただし、この方法で作成されているか、メタデータで適切に設定されているかにも依存します。そうでない場合は、--update する必要がある場合もあります) それ)。また、指定された UUID に一致しないエイリアン配列は、/dev/md127+ として終了する必要があります .

結局のところ、何をするにしても、/dev/mdX に盲目的に頼るべきではありません。 または /dev/md/name /dev/sdX にやみくもに依存しないのと同じ方法です 文字。常にファイルシステム UUID を使用して、それらのアレイにあるものを識別してください。

名前が予期せず変更される可能性があるまれなケースが多すぎるため、せいぜい、これはシステム管理者へのオリエンテーションのヘルプまたはヒントになる可能性があり、すべての問題に対する答えではありません.


Linux
  1. Linux –オペレーティングシステムの名前を確実に取得するにはどうすればよいですか?

  2. 再起動後にタップ インターフェイスを永続化する方法は?

  3. 切断後にMACアドレスが変更されないようにする方法は?

  1. Makefile でユーザー名を取得するにはどうすればよいですか?

  2. プロセス名でPIDを取得するには?

  3. CentOS でデフォルト ゲートウェイを永続的にするにはどうすればよいですか?再起動後に失われないように

  1. MD デバイス (mdadm) の名前を変更する方法

  2. 再起動後も v4l2 USB カメラを同じデバイス名にバインドする方法は?

  3. コンピューター名 (ホスト名ではない) を取得するには?