LINUX.ORG.RU

Загрузка без initrd: VFS: cannot open root device

 , , ,


0

2

Пытаюсь загрузиться без initrd, а точнее, с initrd, сгенерированным dracut'ом с опцией --kernel-only. И получаю VFS: cannot open root device - фотография.
Корневая ФС на btrfs, в аргументах ядра rootfstype=btrfs указано, раздел sda2 определен верно, пробовал также с root=PARTUUID=.. - результат тот же.
Что я делаю не так?

Как собраны драйверы контроллера жёстких дисков и корневой файловой системы, монолитно в ядре или модулями? Если второе, то в initrd они должны быть, никак иначе без пересборки ядра.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

Если ядро видит разделы на дисках и показывает мне их (here are the available partitions), не значит ли это, что контроллер работает нормально?
btrfs собрана модулем (дефолное ядро), судя по выводу dracut модуль в initrd есть.

$ dracut -v --force --kernel-only /boot/initrd-$(uname -r)-ko "$(uname -r)"
...
dracut: drwxr-xr-x   1 root     root            0 May  8 22:34 lib/modules/4.10.13-1-default/kernel/fs/btrfs
dracut: -rw-r--r--   1 root     root      1947634 May  3 21:22 lib/modules/4.10.13-1-default/kernel/fs/btrfs/btrfs.ko
...

gasinvein ★★★ ()
Последнее исправление: gasinvein (всего исправлений: 1)
Ответ на: комментарий от gasinvein

не значит ли это, что контроллер работает нормально?

Я рад за тебя.

btrfs собрана модулем (дефолное ядро), судя по выводу dracut модуль в initrd есть.

Распакуй именно initrd и удостоверься, что модуль есть в initrd, а не показывай мне вывод команды генерации initrd.

Покажи конфиг загрузчика и, если /boot на отдельной файловой системе, то удостоверься что она смонтирована перед генерацией initrd.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Вроде есть

$ /usr/lib/dracut/skipcpio /boot/initrd-$(uname -r)-ko | unxz | cpio -civt | grep btrfs
rwxr-xr-x   1 root     root            0 May  8 22:34 lib/modules/4.10.13-1-default/kernel/fs/btrfs
-rw-r--r--   1 root     root      1947634 May  3 21:22 lib/modules/4.10.13-1-default/kernel/fs/btrfs/btrfs.ko

gasinvein ★★★ ()
Ответ на: комментарий от gasinvein

Давай конфиг загрузчика и /etc/fstab, а заодно распакуй initrd вот так и посмотри:

mkdir /tmp/initrd
cd /tmp/initrd
cat /boot/<initrd_file> | unxz - | cpio -i -d -H newc 
есть ли там точно модули.

Что бы определить что использовать для распаковки используй утилиту file:

file /boot/<initrd_file>
Заместо unxz может быть другой алгоритм сжатия.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

Есть модуль btrfs.ko

Давай конфиг загрузчика

menuentry 'openSUSE Tumbleweed'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-12c84aa3-ce65-4390-807e-a72cc8a7445e' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod btrfs
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  12c84aa3-ce65-4390-807e-a72cc8a7445e
        else
          search --no-floppy --fs-uuid --set=root 12c84aa3-ce65-4390-807e-a72cc8a7445e
        fi
        echo    'Загружается Linux 4.10.13-1-default …'
        linuxefi /boot/vmlinuz-4.10.13-1-default  root=PARTUUID=69f383cb-e394-4670-94a3-8bf945381527 rootfstype=btrfs ${extra_cmdline} resume=/dev/disk/by-uuid/92bb1be3-c6d3-4354-9af9-b5050701800b quiet showopts
        echo    'Загружается начальный виртуальный диск …'
        initrdefi /boot/initrd-4.10.13-1-default
}

К initrd я дописываю суффикс -ko (это который сделан с --kernel-only) при попытках загрузиться.

и /etc/fstab

Пожалуйста, только как это поможет? Уж если ядро не может примонтировать корневой раздел, то и /etc/fstab прочитать не может.

UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /                               btrfs   ssd,noatime                                     1 1
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /boot/grub2/i386-pc             btrfs   ssd,noatime,subvol=@/boot/grub2/i386-pc         0 0 
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /boot/grub2/x86_64-efi          btrfs   ssd,noatime,subvol=@/boot/grub2/x86_64-efi      0 0 
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /opt                            btrfs   ssd,noatime,subvol=@/opt                        0 0 
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /srv                            btrfs   ssd,noatime,subvol=@/srv                        0 0 
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /usr/local                      btrfs   ssd,noatime,subvol=@/usr/local                  0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/crash                      btrfs   ssd,noatime,subvol=@/var/crash                  0 0 
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/systemd/coredump       btrfs   ssd,noatime,subvol=@/var/crash                  0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/lxc                    btrfs   ssd,noatime,subvol=@/var/lib/lxc                0 0 
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/flatpak                btrfs   ssd,noatime,subvol=@/var/lib/flatpak            0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/snapd                  btrfs   ssd,noatime,subvol=@/var/lib/snapd              0 0 
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /snap                           btrfs   ssd,noatime,subvol=@/snap                       0 0 
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/docker                 btrfs   ssd,noatime,subvol=@/var/lib/docker             0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/libvirt/images         btrfs   ssd,noatime,subvol=@/var/lib/libvirt/images     0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/machines               btrfs   ssd,noatime,subvol=@/var/lib/machines           0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/anbox                  btrfs   ssd,noatime,subvol=@/var/lib/anbox              0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/mailman                btrfs   ssd,noatime,subvol=@/var/lib/mailman            0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/mariadb                btrfs   ssd,noatime,subvol=@/var/lib/mariadb            0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/mysql                  btrfs   ssd,noatime,subvol=@/var/lib/mysql              0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/named                  btrfs   ssd,noatime,subvol=@/var/lib/named              0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/lib/pgsql                  btrfs   ssd,noatime,subvol=@/var/lib/pgsql              0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/log                        btrfs   ssd,noatime,subvol=@/var/log                    0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/opt                        btrfs   ssd,noatime,subvol=@/var/opt                    0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/spool                      btrfs   ssd,noatime,subvol=@/var/spool                  0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/tmp                        btrfs   ssd,noatime,subvol=@/var/tmp                    0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/cache/lxc                  btrfs   ssd,noatime,subvol=@/var/cache/lxc              0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /var/cache/zypp/packages        btrfs   ssd,noatime,subvol=@/var/cache/zypp/packages    0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /.snapshots                     btrfs   ssd,noatime,subvol=@/.snapshots                 0 0
UUID=12c84aa3-ce65-4390-807e-a72cc8a7445e       /home                           btrfs   ssd,noatime,subvol=@/home                       1 2
UUID=D045-6E20                                  /boot/efi                       vfat    umask=0002,utf8=true                            0 0
tmpfs                                           /tmp                            tmpfs   size=256M                                       0 0
UUID=92bb1be3-c6d3-4354-9af9-b5050701800b       swap                            swap    discard                                         0 0
UUID=55e465f3-48dd-4496-a6b6-925edbb4c7af       /media/Storage                  ext4    barrier=0                                       1 2
homeserver.flatnet.local:/                      /media/HomeServer               nfs4    user,noauto,sec=krb5                            0 0

gasinvein ★★★ ()
Последнее исправление: gasinvein (всего исправлений: 1)

Обязательно вообще, чтобы модуль корневой ФС был в ядре? Или ядро таки может само его загрузить из initrd?

gasinvein ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.