外付けエンクロージャーにラップトップハードドライブがあり、これを大きなペンドライブとして使用しています。さらにひねりを加えるために、Linuxをインストールしたので、選択したディストリビューションで任意のマシンをブートできます(たとえば、データリカバリやb0rkedシステムの修復、またはプレインストールされたWindowsを破壊せずに借りたラップトップを使用)。問題は、ハードウェア構成によっては、USBハードドライブが異なるパスで表示される場合があることです。GRUBの構成については、GRUBの起動元(hda0,0)
のデバイスに関連して使用します。にUUIDエントリがあり/etc/fstab
ます。またrootwait
、デバイスをマウントする前にUSBサブシステムが落ち着くまで待機するように、カーネルパラメーターで指定します。
カーネルに何を渡すべきroot=
ですか?現在、ペンドライブから1回起動し、デバッグメッセージをチェック/dev/sdX
して、カーネルによってUSBドライブに割り当てられているデバイスを確認してから、再起動してgrub設定を編集します。Boot from USB hard drive
BIOSで有効にして、内蔵ハードドライブよりも高い優先度に設定する以外、PCで何も変更できません。
ルートデバイスパスでのUUIDのサポートを含む、さまざまなinitrd生成スクリプトがありますが、残念ながら、Gentooネイティブのもの(genkernel)はサポートrootwait
していません。
起動プロセスは次のようになります(Windowsでも非常に似ています)。
- BIOSはブートデバイスを選択し、MBR(grub stage-1)をロードします。
- Grubは、BIOSによってロードされたデバイスに
root
使用(hd0)
して、設定されたデバイスから構成とステージ2ファイルをロードします。 - Grubはカーネルをロードして起動します(同じ番号付けなので、
(hd0,0)
再び使用できます)。 - カーネルはすべての組み込みデバイスを初期化します(
rootwait
今では魔法のようです)。 - カーネルは、渡されたパーティションをマウントします
root
(これはカーネルパラメーターであり、grubパラメーターではありません)。 init.d
からのマウントを含む、ユーザーランドの起動プロセスを開始します/etc/fstab
。
パート5は私に問題を与えているものです。