LINUX.ORG.RU

Ядро не может смонтировать раздел жёсткого диска!

 , , ,


1

1

Здравствуйте! Ну, знакомый передал мне книжку по «созданию дистрибутива». В общем там сказано вот что: Создай раздел, туда каталог boot, в него ядро из установленного дистрибутива, из каталога boot vmlinuz… Потом через GRUB вот эти команды: ls Показывает разделы: (hd0,msdos9) и т. д. В моём случае вот этот раздел выше, 9-ый. Далее вот эти команды:

set root=(hd0,msdos9)
linux /boot/vmlinuz root=/dev/sda9
boot

Ядро грузится и:

End Kernel panic - not syncing VFS: Unable to mount root fs on unknown-block 0.0

Что не так? Почему это ядро не может смонтировать раздел. Переходить на старое ядро как-то не охото :)

Переходить на старое ядро как-то не охото

Ядер может быть сколько угодно, под нужные можно создать пункты в меню груба. Имя файла с ядром может быть любым, на работу ядра это не влияет, оно важно только загрузчику. Если книга не учит складывать рядом разные ядра, добавляя к имени файла версию ядра (чтобы не было путаницы), то это шлак, а не книга.

У вас может быть ядро, расчитанное на работу с initramfs (initrd), и драйвер ext4 может быть модулем в том initramfs.

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

Ну, про книгу я немножечко приврал. Это тетрадка друга, куда он всё это выписывал из собственного опыта.

У вас может быть ядро, расчитанное на работу с initramfs (initrd), и драйвер ext4 может быть модулем в том initramfs.

Ни черта не понял!

tiopl09
() автор топика
Ответ на: комментарий от tiopl09

Мммм... у вас нет драйвера для раздела жесткого диска.

Я плохо говорю по подоконски, прошу прощения.

К vmlinuz нужен еще initrd

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

Какой ещё драйвер? У моего друга, который мне дал эту тетрадочку, было 4-ое ядро с 12-го Slackware и у него всё работало.

tiopl09
() автор топика
Ответ на: комментарий от utanho

Ну тогда спрашивайте у друга, что вы нам голову морочите.

Хм! Форумы для этого и нужны. Друг мне тоже ничего сказать не может. Не знает, у него 4-ое, ядро!

tiopl09
() автор топика
Ответ на: комментарий от tiopl09

Прошу прощения, хрустальный второй день показывает какую-то ерунду и рекламу чипсов.

Вы либо по-порядку выкладывайте всё, что делали, включая манускрипты вашего друга, либо мы будем играть в угадайку.

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

То есть вы слепо следовали записям, не понимая их смысла. Могу порекомендовать арчвики. Она очень подробная и про ядро там объяснят.

Ну или может у слаки есть что-то подобное.

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

Ну, вот нашёл статейку ща гляну. Если дело и правда в initrd.

Не вариант. Ц!

tiopl09
() автор топика
Ответ на: комментарий от tiopl09

Как я могу ответить на вопрос, который не задан.

Сначала пошагово опишите что делали, а потом спросите, что не так.

А без исходных данных - отсутствует драйвер раздела

utanho ★★★★★
()

Советую прочесть и понять нетленку Ивана Андреевича про успешного устанавливателя линуксов и тетрадку знакомого. Ну и начинать с малого, потихоньку, помаленьку.

Anoxemian ★★★★★
()

Если ты пишешь, что у тебя на разделе ext4, то удостоверься, что при сборке ядра драйвер ext4 был включен для сборки монолитно, а не модульно. Если ты взял уже готовое ядро, то просмотри его конфиг и удостоверься, что в конфиге опция поддержки драйвера ext4 включена в состояние «Y», а не «M».

https://cateee.net/lkddb/web-lkddb/EXT4_FS.html

kostik87 ★★★★★
()

Злой у тебя знакомый. Ты хотя бы на уровне Ubuntu - Gentoo - Slackware ознакомься с вопросом, потом LFS собирай.

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

Ядро у меня не скомпилированное, оно с каталога boot, с установленного Debian 11. Ну, если надо, могу конечно и попробовать скомпилировать.

tiopl09
() автор топика
Ответ на: удаленный комментарий

@Vsevolod-linuxoid моё мнение о моей самооценке нормальное, я не говорю, что я - Линус Торвальдс и пишу своё ядро. Я обычный человек, который попал в такую ситуацию, где ему нужна помощь. И в такую может попасть каждый.

tiopl09
() автор топика
Ответ на: комментарий от tiopl09

Мы тоже обычные люди без телепатических способностей. Вам уже неоднократно говорили писать подробно, что и как вы делали, и предоставить ссылку на инструкцию, которой вы следовали.

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

Да блин! Куда ещё подробней!? Скачиваешь GParted, делаешь раздел диска; туда из каталога boot копируешь ядро в каталог boot на созданном ранее разделе диска. Потом перезагружаешься, в GRUB вписываешь команды, которые я описал выше. И получаешь ошибку!

tiopl09
() автор топика
Ответ на: комментарий от tiopl09

Только ядро? Если при сборке ядра все нужные модули не были вкомпилированы в само ядро, то должны быть еще модули в каталоге /usr/lib/modules - без них ничего толком работать не будет, плюс еще initramfs нужно создать.

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

Есть, как по мне «костыльный» вариант, когда ты параметр корневой системы пишешь прямо в ядро. Что-то типо «root=/dev/sda4». efibootmgr - утилита для изменения параметра ядра. Не придется перекомпилировать. Вообще, из скудного личного опыта, скажу, что подключение корневой ФС - странная тема, ни через параметр ядра (efi stub), ни через изменение initramfs не получалось. Пришлось параметр ядра менять.

Drandulet
()
Ответ на: комментарий от tiopl09

Так без модулей и initramfs у тебя ничего не будет работать, в том и суть. В самом ядре vmlinuz модуль ext4 не встроен, по крайней мере в ядре Debian 11 (потому что CONFIG_EXT4_FS=m).

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

Всё! Я решил проблему! Сначала скопировал initrd из каталога boot debian на раздел диска о котором я уже говорил, потом выаолнил вот эти команды GRUB:

set root=(hd0,msdos9)

linux /boot/vmlinuz root=/dev/sda9

initrd /boot/initrd.img

boot

Всем спасибо!

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