grub2の起動中は、まずUSBデバイスを初期化してから、ハードディスクを初期化してください。

grub2の起動中は、まずUSBデバイスを初期化してから、ハードディスクを初期化してください。

ポータブルUSBスティックにCentOSをインストールし、最初のパーティションにgrub2をインストールしました。内蔵ハードドライブがコンピュータに接続されていない場合はシステムが起動しますが、ハードドライブが接続されているとシステムは失敗します。

私のオペレーティングシステム(USBスティックで実行)を/ dev / sdaとしてマウントし、他のすべての内蔵ハードドライブに/ dev / sdbラベルを付けたいと思います。私はパーティションラベルを使って/boot、/root、/home、/swapにマップします。内部ドライブがsdaとして表示されるように見えるため、起動時にカーネルパニックが発生します。

lsblk -f
NAME    FSTYPE  LABEL
sda
|___sda1
sdb
|___sdb1 hfsplus DISK_1
|___sdb2 ext4    USB_root
|___sdb3 ext4    USB_home
|___sdb4 swap    USB_swap 

私は持っていますudevルール内部ドライブは/ sdbで始まり番号が付けられますが、これらのルールは起動順序の後半に適用されるように見えるため、sdbでなければならない内部ディスクはsdaに初期化されます。

私の/boot/grub.confは次のようになります:

default=0
timeout=5
chainloader +1
#splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.65-1.el6.elrepo.x86_64)
    #root (hd0,0)
    search --set --label USB_boot   
    kernel /vmlinuz-3.10.65-1.el6.elrepo.x86_64 ro root=LABEL=USB_root nomodeset rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=uk LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rootdelay=8
    initrd /usbinitrd-3.10.65-1.el6.elrepo.x86_64.img

私のusbinitrdは、以下の指示に従って生成されました。ここ

  • 内蔵ドライブの前にsdaで初期化された外部USBドライブを起動できますか?
  • 内部ドライブの命名と競合しないように、USBデバイスとgrub構成を/ sduのようなものにマッピングする必要がありますか?

ベストアンサー1

これは起動時にタイミングの問題のようです。 grub.confのカーネルオプションrootdelay = 8がrootdelay = 10に変更され、すべてが期待どおりに機能します。コンピュータが起動を開始したときにUSBスティックのすべてのパーティションを検索できなかったようです。

udevadmで見つかったMANUFACTURERタグを使用して、USBスティックを/ dev / sduにマッピングする別のudevルールを作成しましたが、すべてが正常でした。

おすすめ記事