web-dev-qa-db-ja.com

ルートブロックデバイスが見つかりませんでした(Gentoo)

いつも私を悩ませている些細なトラブルがいくつかあります。私のGentooはいつも 'Could not find the root block device in UUID=5f7c7e13-2a46-4ae4-a8c0-f77f84e80900 '立ち往生して、起動しようとしたらただし、同じデバイス名を入力すると/dev/sda2で、システムが続行します。理由はわかりません。私のGentooは1つのパーティションにインストールされました/dev/sda2とマウントしました/から/dev/sda2

また、インターネット上でいくつかの投稿を見つけました。ほとんどの投稿は、それがカーネル構成によって引き起こされていると述べており、対応するfsをカーネルに組み込みとしてコンパイルします。モジュールがそれを解決できるわけではありません。rootfsは、 kernelコマンド、grubのrootコマンドの後のデバイス名は、UUIDで置き換える必要があります。私はそれをすべてやったが、それらはうまくいかなかった。

これが私のgrubの設定です。

533 menuentry 'Gentoo (on /dev/sda2)' --class gentoo --class linux-gnu --class os $menuentry_id_option 'osprober-chain-225E1F815E1F4D43' { 
534     insmod part_msdos                                                                                                   
535     insmod ext4                                                                                                         
536     set root='hd0,msdos2'                                                                                               
537     if [ x$feature_platform_search_hint = xy ]; then                                                                    
538     ¦   ¦ search --no-floppy --fs-uuid --set=root --hint-    bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2      5f7c7e13-2a46-4ae4-a8c0-f77f84e80900 
539     ¦   else                                                                                                                
540     ¦   ¦ search --no-floppy --fs-uuid --set=root 5f7c7e13-2a46-4ae4-a8c0-f77f84e80900                                      
541     ¦   fi                                                                                                                  
542     ¦   ¦ echo    'Loading Linux x86_64-4.4.39-gentoo ...'                                                                    
543     ¦   ¦ linux   /boot/kernel-genkernel-x86_64-4.4.39-gentoo root=UUID=5f7c7e13-2a46-4ae4-a8c0-f77f84e80900 ro               
544     ¦ echo    'Loading initial ramdisk ...'                                                                               
545     ¦   ¦ initrd  /boot/initramfs-genkernel-x86_64-4.4.39-gentoo                                                        
546     ¦ boot                                                                                                              
547                                                                                                                         
548 }              

GentooはUbuntuと共存します。

ぼくの /etc/fstab

 1 # /etc/fstab: static file system information.                                                                           
 2 #                                                                                                                       
 3 # noatime turns off atimes for increased performance (atimes normally aren't                                            
 4 # needed); notail increases performance of ReiserFS (at the expense of storage                                          
 5 # efficiency).  It's safe to drop the noatime options if you want and to                                                
 6 # switch between notail / tail freely.                                                                                  
 7 #                                                                                                                       
 8 # The root filesystem should have a pass number of either 0 or 1.                                                       
 9 # All other filesystems should have a pass number of 0 or greater than 1.                                               
 10 #                                                                                                                       
 11 # See the manpage fstab(5) for more information.                                                                        
 12 #                                                                                                                       
 13                                                                                                                         
 14 # <fs>          <mountpoint>    <type>      <opts>      <dump/pass>                                                     
 15                                                                                                                         
 16 # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.                                              
 17 UUID=5f7c7e13-2a46-4ae4-a8c0-f77f84e80900  /      ext4  noatime  0 1                                                    
 18 UUID=B66EAE686EAE215B  /mnt/D/     ntfs      errors=remount-ro                                                          
 19                                                                     

対応する名前のUUID

  /dev/sda2: UUID="5f7c7e13-2a46-4ae4-a8c0-f77f84e80900" TYPE="ext4" PARTUUID="000e21f3-02"

  /dev/sda4: UUID="B66EAE686EAE215B" TYPE="ntfs" PARTUUID="000e21f3-04"

誰かがいくつかのアイデアを持っていますか?ありがとう。

3
ResRelentelss

最後に、私は数日が経過した後にそれを理解しました。それはドライバーの問題が原因です。私のGentooは、USBケーブルでラップトップに接続されている外付けハードディスクにインストールされていますが、カーネルを構築したときに_USB Mass Storage Support_オプションが_build-in_でマスクされていなかったため、常にブロックされています方法:一部が私と同じボートにいて、参照されているすべての_file system_を_built-in_としてコンパイルしたことを確認した場合、次のオプションがカーネルで_built-in_であるかどうかを確認してください。

  • _Device Driver-->USB Support -->USB Mass Storage Support_
  • Device Driver-->USB Support -->xHCI HCD (USB 3.0) support
  • Device Driver-->USB Support --> EHCI HCD (USB 2.0) support
  • Device Driver-->USB Support --> UHCI HCD (most Intel and VIA) support

  • _Device Driver-->USB Support --> Support for Host-side USB_

そうでない場合は、オンにしてください。

3
ResRelentelss

多分それはあなたのgrub.cfgの間違ったハードドライブです

bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2

hd1,msdos2ahci1,msdos2などは2番目のディスクを参照します。通常、これは最初のhd0,msdos1で、GRUBが/dev/sdaにインストールされます。

これをgrub-install --recheck /dev/sdaで確認してください

パーティションは次のようになります。 (プライマリで起動)

Sudo parted -l

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size    Type      File system     Flags
 1      1049kB  103GB  103GB   primary   ext4            boot
 2      103GB   107GB  4394MB  extended
 5      103GB   107GB  4394MB  logical   linux-swap(v1)
1
Michael D.

正直に言うと、これを行う最も簡単な方法は、一般的なカーネルを作成することだと思います。

私は単にUbuntuのカーネル構成を取得し、make oldconfigを発行して、残りをgenkernel --no-clean --menuconfig allに任せます。

  • クイックインストールガイドの指示に従ってカーネルを出現させます。
  • 一般的なカーネル構成を取得します。
    1)必要なファイルを見つけます。基本的に最新のカーネルバージョン: http://kernel.ubuntu.com/~kernel-ppa/configs/
    2)wget -O /usr/src/linux/.config kernelconfigurl
  • make oldconfigを実行します。これらに答える方法がわからない場合は、単に「Enter」キーを押してください。いいえ、悪いことは何も起こりません。デフォルトの答えがデフォルトになります。とにかく、汎用カーネルでこれを選択する必要があります。
  • genkernel --no-clean --menuconfig allを使用してgenkernelを実行します。メニューでは、必要に応じて変更したり、終了したりできます。そして、インストールが始まります。
  • GRUB config with grub-mkconfig -o /boot/grub/grub.cfg

このカーネルには、ほとんどすべてのモジュールが含まれます。したがって、接続したすべてのものが機能します。一部のUnix退役軍人は、汎用カーネルを嫌います。 Ubuntu、Fedora、または基本的にあらゆるディストリビューションを実行している場合-汎用カーネルを使用しました。

台無しにせずに最小限のカーネルを作成しますか?
問題ない。このカーネルを起動したら、必要なすべてのデバイスを接続するだけです。完了したら、/usr/src/linuxに移動してmake localmodconfigを発行します。これで、必要なものだけを含むカーネルができました。 genkernelを使用して新しい最小限のバージョンをコンパイルし、同じ方法でインストールします。

幸運を。

1
Apache

私の場合、GentooでVMWare Fusion仮想マシンを起動します。 CONFIG_FUSION_SPI=Y

0
Necktwi