USBで起動しますが、内蔵ハードドライブをsda1として使用する

USBで起動しますが、内蔵ハードドライブをsda1として使用する

現在、USBドライブから(uboot経由で)カーネルを起動していますが、正常に動作します。

私が持っている問題は、SSDを接続するとSSDをsda1として使用し、USBをsda1として使用するにはSSDを取り外す必要がありますが、両方のSSDが接続されている必要があり、USBが接続されている場合はSSDが必要です。 be for sda1が存在しません...

どんなアイデアがありますか?

答え1

最初の質問は、なぜ特別に/dev/sda1に依存するのかです。カーネルの「root = DEVNAME」パラメータであると仮定すると、ほとんどのディストリビューションでこの問題を解決する方法は、initスクリプトが利用可能なすべてのデバイスを見て、インテリジェントに1つを選択するinitrdを使用することです。これが多くのディストリビューションで「root = LABEL = MY_ROOT」のような言葉を許可する理由です。カーネルはそれを処理せず、initスクリプトは処理します。 initスクリプトは「blkid」などのツールを実行して、UUIDまたはファイルシステムラベルでブロックデバイスを識別できます。

残念ながら、独自のinitrdを構築することは長い学習プロセスですが、必要なものを得るのに役立つ多くのガイドがあります。

問題がmountコマンドにある場合、mountはすでにUUIDまたはLABEL(参考文献を参照man mount)を介したマウントをサポートしているため、これは非常に簡単な変更です。

関連情報