LINUX.ORG.RU

Не загружается Gentoo, т.к. не может смонтировать корень

 ,


0

1

Установил GRUB, он видит ядро, у ядра начинается Kernel Panic при загрузке...Говорит, что не может смонтировать корень.

Структура разделов: /dev/sda1 - корень, /dev/sda2 - swap, /dev/sda3 - /home

Вот grub.conf:
[code]
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 3.4.9
root (hd0,0)
kernel /boot/kernel-3.4.9-gentoo root=/dev/sda1

[/code]

★★

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

Не использовал genkernel
initrd — не используется

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

Загрузки необходимых драйверов, в случае, если они собраны модульно, обычно модуль поддержки контроллера и файловой системы корневого раздела. Или для выполнения дополнительных действий перед монтированием корневого раздела, например сборка raid массива, поднятие группы томов, расшифровка файловой системы, прочее. Ну или у вас компактная система, которая целиком расположена в initrd.

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

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

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

если не используется raid массив, загрузка по сети, lvm, а судя по описанию не используются, то советую перепроверить. Так же initrd в твоём случае не обязателен.

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

Зачем нужен initrd, а то я не до конца понял...

init{rd/ramfs} нужен для случая когда, к примеру, модули ядра находятся на {фс/ностителе} по тем или иным причинам недоступном из ядра. Как яркие примеры: рэйд, lvm, зашифрованные носители, загрузка по сети(ssh, nfs…)

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

Перекомпилировал ядро, включил в него (в ядро) все что только можно драйвера для разных контроллеров SATA (и PATA, пусть будут). Тот же результат :(

Вот что я увидел на экране:

Cannot open root device "sda1" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the avaiable: partitions
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

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

Кроме того:

grep "^CONFIG_*ATA\|^CONFIG.*_FS" /usr/src/linux/.config

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

При чём здесь root загрузчика ? У ТС загрузчик ядро считывает и передаёт ему управление.

kostik87 ★★★★★
()

Еще есть фишка, что журнал должен быть правильно настроен - именно для корня. То есть опции журналироватя в fstab должны совпадать с дефолтными опциями, с которыми ядро пытается примонтировать корень еще до чтения fstab. Ну, или использовать опции ядра типа rootflags=data=journal .

Но первое - вкомпилить модуль ФС в ядро.

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

Кстати вы натолкнули меня на правильную мысль. А указал ли ТС в /etc/fstab правильно корневой раздел, не оставил ли он там стандартную строку?

root      /dev/root ...

Вся проблема может быть в том, что ядро корректно монтирует указанный через параметр раздел, далее дело доходит до /etc/fstab и всё error.

ТС, проверь /etc/fstab.

Как то уже сталкивался здесь с подобной проблемой у другого начинающего пользователя Gentoo.

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

Модуль ФС впокмилен в ядро.

Вот fstab:

#/dev/BOOT              /boot           ext2            noauto,noatime  1 2
/dev/ROOT               /               ext4            noatime         0 1
/dev/SWAP               none            swap            sw              0 0
#/dev/cdrom             /mnt/cdrom      auto            noauto,ro       0 0
#/dev/fd0               /mnt/floppy     auto            noauto          0 0

Ещё заметил, что неправильно был указан тип ФС у корня — было ext3, я поменял на ext4.

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

fstab уже написал, вот fdisk -l:


root@ubuntu:/mnt/gentoo# fdisk -l

Disk /dev/sda: 120.0 GB, 120034123776 bytes
240 heads, 63 sectors/track, 15505 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4911a244

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3229    24411208+  83  Linux
/dev/sda2            3230        3487     1950480   82  Linux swap / Solaris
/dev/sda3            3488       15506    90859104   83  Linux

[/code
yura_ts ★★
() автор топика
Ответ на: комментарий от yura_ts

Ну и где вы в /etc/fstab заменили строку

/dev/ROOT               /               ext4            noatime         0 1
на
/dev/sda1               /               ext4            noatime         0 1

Читайте Gentoo Handbook внимательнее.

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

Читайте Gentoo Handbook внимательнее.

Действительно.
Я тоже удивился, когда увидел такое вместо /dev/sda1, но...вдруг это фича?

Заменил.

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

yura_ts

... когда увидел такое вместо /dev/sda1, но...вдруг это фича?

А кто за вас это укажет ? Вам же ясно указано в Gantoo Hanbook, открываем в редакторе /etc/fstab и пишем конфигурацию монтирования файловых систем: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=8

Ещё раз, в этой системе за вас ни кто не будет ничего делать, только вы сами, а что бы что-то сделать вы должны сначала подумать как работает то, что вы хотите сделать и что нужно собственно сделать.

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

Либо у тебя не вкомпилированы драйвера для чипсета, либо в /dev пусто.

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

1)

(chroot) ubuntu / # grep "^CONFIG_*ATA\|^CONFIG.*_FS" /usr/src/linux/.config
CONFIG_ATA_OVER_ETH=m
CONFIG_SCSI_PROC_FS=y
CONFIG_ATA=y
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_ACPI=y
CONFIG_ATA_SFF=y
CONFIG_ATA_BMDMA=y
CONFIG_ATA_PIIX=y
CONFIG_SENSORS_FSCHMD=m
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_FS_MBCACHE=y
CONFIG_FS_POSIX_ACL=y
CONFIG_FSNOTIFY=y
CONFIG_FUSE_FS=m
CONFIG_ISO9660_FS=y
CONFIG_UDF_FS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=y
CONFIG_NTFS_FS=m
CONFIG_PROC_FS=y
CONFIG_CONFIGFS_FS=y
CONFIG_ECRYPT_FS=m
CONFIG_NFS_FS=m
CONFIG_TEXTSEARCH_FSM=m

2) И ещё:

grep "^CONFIG_SATA" /usr/src/linux/.config
CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_SATA_INIC162X=y
CONFIG_SATA_ACARD_AHCI=y
CONFIG_SATA_SIL24=y
CONFIG_SATA_MV=y
CONFIG_SATA_NV=y
CONFIG_SATA_PROMISE=y
CONFIG_SATA_SIL=y
CONFIG_SATA_SIS=y
CONFIG_SATA_SVW=y
CONFIG_SATA_ULI=y
CONFIG_SATA_VIA=y
CONFIG_SATA_VITESSE=y

3) Ноут ThinkPad T61, модель матплаты найти пока ниасилил. ФС корневого раздела — ext4.

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

Кстати, как в grub2 грамотно отключить initrd? Этот мерзавец же имеет массу засранных конфигов, которые вручную не стоит редактировать, и только один удобочитаемый, /etc/default/grub, в котором о initrd ни слова.

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

После чтения куска вики по синкпадам заработало.
Спасибо за помощь!
Предвижу я ещё ряд вопросов, но пока сам поковыряю.

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

И в чём же была причина ? Не тот модуль собран был для контроллера дисков ?

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

поправь руками и не обновляй конфиг :) проверено, работает.

P.S. ну и к слову пустой initrd в ядре это не уберёт.

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

Кого не уберет? Я просто хочу сэкономить секунду загрузки.

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