LINUX.ORG.RU
решено ФорумAdmin

LFS не работает на реальном железе

 , , ,


0

1

Паникует:

Unable to mount root fs on unknown-block(8,1)

/boot/grub/grub.cfg:

set default=0
set timeout=5

insmod ext2
set root=(hd0,1)

menuentry "GNU/Linux, Linux 5.19.2-lfs-11.2" {
        linux   /boot/vmlinuz-5.19.2-lfs-11.2 root=/dev/sda1 ro
}

Но в qemu все работает. LFS и загрузчик находится на первом разделе внешнего HDD, подключенного через USB.

Что не так и как исправить?

★★★★

Последнее исправление: GREAT-DNG (всего исправлений: 1)

Ответ на: комментарий от Chord

А что, с usb загрузка уже без initramfs возможна?

Не знаю, initramfs действительно нет.

Модули для загрузки с usb (ehci_hcd , xhci_hcd e.t.c.) есть?

Похоже нет, полный дефолт:

$ find /mnt/lfs/lib/modules/5.19.2/ -name '*.ko'
lib/modules/5.19.2/kernel/fs/efivarfs/efivarfs.ko
lib/modules/5.19.2/kernel/net/netfilter/xt_LOG.ko
lib/modules/5.19.2/kernel/net/netfilter/xt_addrtype.ko
lib/modules/5.19.2/kernel/net/netfilter/xt_MASQUERADE.ko
lib/modules/5.19.2/kernel/net/netfilter/nf_log_syslog.ko
lib/modules/5.19.2/kernel/net/netfilter/xt_mark.ko
lib/modules/5.19.2/kernel/net/netfilter/xt_nat.ko
lib/modules/5.19.2/kernel/net/ipv4/netfilter/iptable_nat.ko
lib/modules/5.19.2/kernel/drivers/thermal/intel/x86_pkg_temp_thermal.ko
GREAT-DNG ★★★★
() автор топика
Последнее исправление: GREAT-DNG (всего исправлений: 1)
Ответ на: комментарий от GREAT-DNG

$ find /mnt/lfs/lib/modules/5.19.2/ -name '*.ko'

оно может быть не модулем, а вкомпилено. тогда initramfs действительно не нужен. но нужны ещё вкомпиленные драйвера fs

teod0r ★★★★★
()
Ответ на: комментарий от GREAT-DNG

Ядру нужны модули для работы с usb. ehci_hcd, xhci_hcd и ещё модуль для storage, точно название не помню. (8,1) указывает на то, что ядро не нашло корневой раздел, т.к. у него нет доступа к разделам на usb-дисках

Если хочешь грузиться с usb и указывать root=UUID= в grub.cfg (чтобы не было путаницы с /dev/sdX) то нужен initfamfs. И если он есть, то туда же и usb модули затолкать.

По крайней мере так было, когда последний раз делал установку на usb-диск. Процесс установки на USB должен легко гуглиться.

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

дык LFS не работает на реальном железе (комментарий)

Не модулем получается. Но все равно не работает.

Что получается и что не работает?

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

Получается вкомпилен. Не работает - не монтирует корневую фс.

но нужны ещё вкомпиленные драйвера fs

EXT4_FS, EXT4_FS_POSIX_ACL, EXT4_FS_SECURITY и EXT4_USE_FOR_EXT2 включены. EXT4_KUNIT_TESTS, EXT4_DEBUG нет.

GREAT-DNG ★★★★
() автор топика
Последнее исправление: GREAT-DNG (всего исправлений: 2)
Ответ на: комментарий от GREAT-DNG

Извиняюсь за тупняк, первый раз пробую lfs :)

а причем тут LFS? )

Верно? Все равно не помогает.

а с

rootdelay=10 rootwait

PS

LFS и загрузчик находится на первом разделе внешнего HDD

и вот тут поподробнее, что там находится на первом разделе?

там должна быть rootfs

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

а причем тут LFS? )

Имею ввиду что это непростая операция для меня сейчас.

rootdelay=10 rootwait

Пробовал и на минуту ставить, безуспешно.

что там находится на первом разделе?

Раздел с собранной системой, /. Туда же установлен загрузчик grub-install’ом.

GREAT-DNG ★★★★
() автор топика
Ответ на: комментарий от GREAT-DNG

Пробовал и на минуту ставить

Прокрутка (Shift+PageUp) эту минуту работает или в вашем ядре уже выпилили? Можете попробовать видео снять и покадрово смотреть. В общем, вам нужны сообщения ядра про usb и про sda.

mky ★★★★★
()
Ответ на: комментарий от GREAT-DNG

Туда же установлен загрузчик grub-install’ом

а должен быть установлен НЕ на раздел! т.е. sda, не sda1
и всё-равно лучше всегда через PARTUUID указывать, что в grub.cfg, что в /etc/fstab. в последнем кстати рут правильно указан? и rootwait тоже скорее всего надо, у меня без него с флешек не грузится

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

/proc /dev /sys вотэтовсё?

Да.

Конфиг. Где посмотреть лог загрузки? В /var/log/ только успешные.

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

а должен быть установлен НЕ на раздел! т.е. sda, не sda1

Имею ввиду что /boot не на отдельном разделе.

и всё-равно лучше всегда через PARTUUID указывать, что в grub.cfg, что в /etc/fstab. в последнем кстати рут правильно указан?

Думаю переберусь на указание через UUID когда все заработает.

/etc/fstab:

# Begin /etc/fstab

# file system  mount-point  type     options             dump  fsck
#                                                              order

/dev/sda1      /            ext4     defaults            1     1
/dev/sda2      swap         swap     pri=1               0     0
proc           /proc        proc     nosuid,noexec,nodev 0     0
sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
devpts         /dev/pts     devpts   gid=5,mode=620      0     0
tmpfs          /run         tmpfs    defaults            0     0
devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0

# End /etc/fstab

и rootwait тоже скорее всего надо, у меня без него с флешек не грузится

rootwait в fstab? В options?

GREAT-DNG ★★★★
() автор топика
Ответ на: комментарий от master_0K

С хост системы:

Устр-во    Загрузочный    начало     Конец  Секторы Размер Идентификатор Тип
/dev/sdb1                   2048  41945087 41943040    20G            83 Linux
/dev/sdb2               41945088  44042239  2097152     1G            82 Linux своп / Solaris
/dev/sdb3               44042240 126337023 82294784  39,2G             7 HPFS/NTFS/exFAT
/dev/sdb4              126337024 168280063 41943040    20G            83 Linux

Где sdb1 - LFS, sdb2 - swap, sdb3 - раздел с резервной копией винды, sdb4 - копия LFS, которую было рекомендовано сделать на одном из этапов.

GREAT-DNG ★★★★
() автор топика
Ответ на: комментарий от GREAT-DNG

http://0x0.st/HHJq.tar.gz, рассортировать не смог, если качество не очень - дальше перефотографированный вариант должен быть.

CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_REALTEK is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
# CONFIG_USB_UAS is not set

CONFIG_USB_UAS=y

kindof
()
Ответ на: комментарий от GREAT-DNG

Думаю переберусь на указание через UUID когда все заработает.
/dev/sda1 / ext4 defaults 1 1

уж лучше сразу сделать правильно. вдруг из-за этого sda1 не грузит.

rootwait в fstab? В options?

в опциях ядра в grub.cfg

teod0r ★★★★★
()
Ответ на: комментарий от GREAT-DNG

Фотоархив от загрузки LFS? На фото IMG_20230402_110918.jpg как диск /dev/sda распознаётся носитель на 128 ГБ с другой схемой разбивки:

  • 1-й основной раздел
  • 2-й основной раздел
  • логические разделы с номерами 5, 6 и 7

Указанный Вами носитель распознаётся как /dev/sdb.

На хост-системе раздел-«корень» монтируется без замечаний?

Однозначно нужно изменить значение параметра ядра root с /dev/sda1 на указание UUID (метки/…). После этого останется только «найти баг в этом ядре».

Фото IMG_20230402_111347.jpg «интригует» – упоминается vfat, iso9660, msdos – «что это было»?

CONFIG_EXT4_DEBUG is not set возможно стоит и его разрешить (на время)?

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

Фотоархив от загрузки LFS?

Да.

На фото IMG_20230402_110918.jpg как диск /dev/sda распознаётся носитель на 128 ГБ с другой схемой разбивки…

Блин, это получается хост.

На хост-системе раздел-«корень» монтируется без замечаний?

Корень LFS монтируется без какого-либо вывода.

Однозначно нужно изменить значение параметра ядра root с /dev/sda1 на указание UUID (метки/…). После этого останется только «найти баг в этом ядре».

Сейчас переназначу.

Фото IMG_20230402_111347.jpg «интригует» – упоминается vfat, iso9660, msdos – «что это было»?

Это видимо от хоста.

GREAT-DNG ★★★★
() автор топика