web-dev-qa-db-ja.com

systemd-bootがrootを見つけられません

私はDebian Testing(Buster)を実行していますが、Grub2を動作させることができず、代わりにsystemd-bootを試すよう提案されたため、Grub2からsystemdに切り替えています。

ブート/ルートドライブはマザーボード上のeMMCドライブ上にあり、データドライブはmSATASSD上にあります。

Systemd-bootが半分動作していますが、起動時にこのメッセージでクラッシュします

Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
done.
Gave up waiting for root file system device. Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT! PARTUUID=2251a5a4-6c18-425c-9264-df971d297b09 does not exist. Dropping to Shell!

再起動してSuperGrub USBディスクを使用してログインできましたが、UUIDがルートパーティションと一致しているので、なぜそれが見つからないのかわかりません。

/ proc/cmdline出力

BOOT_IMAGE=/boot/vmlinuz-4.19.0-5-AMD64 root=UUID=2251a5a4-6c18-425c-9264-df971d297b09 ro

/ bootおよび/ boot/efiリスト

Kodi@BB-8:~$ ls /boot
config-4.15.0-3-AMD64    grub                         System.map-4.15.0-3-AMD64    vmlinuz-4.19.0-5-AMD64
config-4.19.0-5-AMD64    initrd.img-4.15.0-3-AMD64    System.map-4.19.0-5-AMD64    vmlinuz-4.9.45-ubilinux+
config-4.9.45-ubilinux+  initrd.img-4.19.0-5-AMD64    System.map-4.9.45-ubilinux+
efi                      initrd.img-4.9.45-ubilinux+  vmlinuz-4.15.0-3-AMD64

Kodi@BB-8:~$ Sudo ls /boot/efi
debian  EFI  loader

Kodi@BB-8:~$ Sudo ls /boot/efi/debian
drwx------ 2 root root     4096 Jul 16 22:31 .
drwx------ 5 root root     4096 Jan  1  1970 ..
-rwx------ 1 root root 31595838 Jul 26 11:09 initrd.img-4.15.0-3-AMD64
-rwx------ 1 root root 33228805 Jul 26 11:09 initrd.img-AMD64
-rwx------ 1 root root  4933392 Jul 26 11:09 vmlinuz-4.15.0-3-AMD64
-rwx------ 1 root root  5217520 Jul 26 11:09 vmlinuz-AMD64

ドライブのUUIDとdfコマンド

Kodi@BB-8:~$ ls -al /dev/disk/by-uuid/
total 0
drwxr-xr-x 2 root root 220 Jul 26 08:59 .
drwxr-xr-x 8 root root 160 Jul 26 08:58 ..
lrwxrwxrwx 1 root root  15 Jul 26 11:10 2251a5a4-6c18-425c-9264-df971d297b09 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root  10 Jul 26 11:10 42a36b04-83f8-4105-aef4-7f24b9ffff66 -> ../../sdb3
lrwxrwxrwx 1 root root  10 Jul 26 11:10 8280cf20-b70e-44f4-b092-6d3f92d54eab -> ../../dm-0
lrwxrwxrwx 1 root root  10 Jul 26 11:10 8A84-E6C0 -> ../../sdb2
lrwxrwxrwx 1 root root  10 Jul 26 11:10 8B91-8099 -> ../../sdb4
lrwxrwxrwx 1 root root  15 Jul 26 11:10 A9CE-4035 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root  10 Jul 26 11:10 b2a67d10-07da-4eb4-bc16-b768084db045 -> ../../sda1
lrwxrwxrwx 1 root root  10 Jul 26 11:10 b618f5b0-2b8a-4e33-b288-407fd4355f83 -> ../../sdb5
lrwxrwxrwx 1 root root  10 Jul 26 11:10 f9a00ae7-07d2-4726-947b-03a4074049dd -> ../../sda2

Kodi@BB-8:~$ df -h
Filesystem              Size  Used Avail Use% Mounted on
udev                    3.9G     0  3.9G   0% /dev
tmpfs                   783M   78M  705M  10% /run
/dev/mmcblk0p2           57G   14G   41G  26% /
tmpfs                   3.9G   39M  3.8G   1% /dev/shm
tmpfs                   5.0M  4.0K  5.0M   1% /run/lock
tmpfs                   3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1               820G  555G  224G  72% /home
/dev/mmcblk0p1          511M   82M  429M  17% /boot/efi
/dev/sda2                96G   67G   24G  74% /home/hts
10.1.1.1:/media/backup  2.7T  2.3T  178G  93% /media/backup
tmpfs                   783M   44K  783M   1% /run/user/1001
/dev/dm-0               7.8G   36M  7.3G   1% /media/Kodi/8280cf20-b70e-44f4-b092-6d3f92d54eab
/dev/sdb4               7.9G  4.8G  3.2G  61% /media/Kodi/DATA
/dev/sdb3                14G   12G  1.7G  88% /media/Kodi/boot

更新:モジュールを追加

/ etc/initramfs-tools/modulesに追加します

mmc_core
mmc_block
sdhci
sdhci-pci

次に、4.19.0-5カーネルと入力します

Sudo update-initramfs -u -k all

再起動すると、同じメッセージが表示されます。

更新:my systemd loader.conf

これが私の/boot/efi/loader/entries/debian.confです

title   Debian
linux   /debian/vmlinuz-AMD64
initrd  /debian/initrd.img-AMD64
options root=PARTUUID=2251a5a4-6c18-425c-9264-df971d297b09 rw

これは、ルートとしてマウントされている/ dev/mmcblk0p2 eMMCデバイスのUUIDです。

2
map7

これまでのところ、ここにはいくつかの誤解があるようです。出力に記載されている不足しているモジュールは ない カーネルモジュール、しかし ブートローダー モジュール。私が見ているのは、ブートローダーがカーネルイメージ自体を見つけるのに問題を抱えていることです。おそらくそれが存在しているデバイスに対応できないためです。この段階では、カーネルモジュールは関係ありません。

私はsystemd-bootにまったく精通していませんが、追加する必要のあるモジュールは、ブートローダーがインストールされているパーティションの/boot/efi/のどこかに移動すると予想されます。これは通常、ブートデバイス上のFAT32パーティションです。

0
Mr. Donutz