LINUX.ORG.RU

[gentoo] VFS: cannot open root device sda7 or unknown-block(0,0)

 


0

0

Ноут: Asus X59SLseries Ядро: 2.6.32-gentoo-r7 отговаривается:

VFS: Cannot open root device sda7 or unknown-block(0,0)
kernel panic - not syncing: VFS: Unnable mount root fs or unknown-block(0,0)

chroot докладывает:

(chrt) ados-laptop linux-2.6.32-gentoo-r7 # grep -i ata .config
# CONFIG_RELOCATABLE is not set
# CONFIG_ATALK is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_SCSI_SAS_ATA is not set
CONFIG_SCSI_EATA=m
CONFIG_SCSI_EATA_TAGGED_QUEUE=y
CONFIG_SCSI_EATA_LINKED_COMMANDS=y
CONFIG_SCSI_EATA_MAX_TAGS=16
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
# CONFIG_ATA_VERBOSE_ERROR is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL24=m
CONFIG_ATA_SFF=y
CONFIG_SATA_SVW=m
CONFIG_ATA_PIIX=m
CONFIG_SATA_MV=m
CONFIG_SATA_NV=m
CONFIG_SATA_QSTOR=m
CONFIG_SATA_PROMISE=m
CONFIG_SATA_SX4=m
CONFIG_SATA_SIL=m
CONFIG_SATA_SIS=m
CONFIG_SATA_ULI=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_SATA_INIC162X=m
CONFIG_PATA_ACPI=m
CONFIG_PATA_ALI=m
CONFIG_PATA_AMD=m
CONFIG_PATA_ARTOP=m
CONFIG_PATA_ATP867X=m
CONFIG_PATA_ATIIXP=m
CONFIG_PATA_CMD640_PCI=m
CONFIG_PATA_CMD64X=m
CONFIG_PATA_CS5520=m
CONFIG_PATA_CS5530=m
CONFIG_PATA_CS5535=m
CONFIG_PATA_CS5536=m
CONFIG_PATA_CYPRESS=m
CONFIG_PATA_EFAR=m
CONFIG_ATA_GENERIC=m
CONFIG_PATA_HPT366=m
CONFIG_PATA_HPT37X=m
CONFIG_PATA_HPT3X2N=m
CONFIG_PATA_HPT3X3=m
CONFIG_PATA_HPT3X3_DMA=y
CONFIG_PATA_IT821X=m
CONFIG_PATA_IT8213=m
CONFIG_PATA_JMICRON=m
CONFIG_PATA_TRIFLEX=m
CONFIG_PATA_MARVELL=m
CONFIG_PATA_MPIIX=m
CONFIG_PATA_OLDPIIX=m
CONFIG_PATA_NETCELL=m
CONFIG_PATA_NINJA32=m
CONFIG_PATA_NS87410=m
CONFIG_PATA_NS87415=m
CONFIG_PATA_OPTI=m
CONFIG_PATA_OPTIDMA=m
CONFIG_PATA_PCMCIA=m
CONFIG_PATA_PDC_OLD=m
CONFIG_PATA_RADISYS=m
CONFIG_PATA_RDC=m
CONFIG_PATA_RZ1000=m
CONFIG_PATA_SC1200=m
CONFIG_PATA_SERVERWORKS=m
CONFIG_PATA_PDC2027X=m
CONFIG_PATA_SIL680=m
CONFIG_PATA_SIS=m
CONFIG_PATA_VIA=m
CONFIG_PATA_WINBOND=m
CONFIG_PATA_SCH=m

(chrt) ados-laptop linux-2.6.32-gentoo-r7 # grep -i raid .config
CONFIG_RAID_ATTRS=m
CONFIG_BLK_DEV_3W_XXXX_RAID=m
CONFIG_SCSI_AACRAID=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_LEGACY=m
CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_PMCRAID=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MULTICORE_RAID456=y
CONFIG_MD_RAID6_PQ=m
# CONFIG_ASYNC_RAID6_TEST is not set
CONFIG_ASYNC_RAID6_RECOV=m

(chrt) ados-laptop linux-2.6.32-gentoo-r7 # grep -i ext2_fs .config
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y

(chrt) ados-laptop linux-2.6.32-gentoo-r7 # grep -i ext3_fs .config
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y

(chrt) ados-laptop linux-2.6.32-gentoo-r7 # grep -i ext4_fs .config
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y

(chrt) ados-laptop linux-2.6.32-gentoo-r7 # grep -v \# /etc/fstab 

/dev/sda7	/	        ext4	noatime     0 1
/dev/sda2	/mnt/Data	ext3	noatime	    0 0
/dev/cdrom	/mnt/cdrom	auto	noauto,ro   0 0

proc	/proc	        proc	defaults	    0 0
shm	/dev/shm	tmpfs	nodev,nosuid,noexec 0 0

Выдержка из /boot/grub/menu.lst

title Gentoo Linux 2.6.32-r7
root (hd0,6)
kernel /boot/linux-2.6.32-gentoo-r7.img root=/dev/sda7 root_real=/dev/sda7 vga=ask
★★★★★

Что же ты все компилируешь модулями, а initramfs не используешь?

Ты либо вкомпилирывай в ядро, либо догружай initramfs.
Вообще рекомендую использовать команду
genkernel --menuconfig — disklabel --save-config --symlink all

--no-clean не будет стирать файл
--menuconfig позволит поправить флаги
--disklabel позволит указывать загрузочный диск по метке или UUID
(
сначала даешь команду
e2label /dev/sda7 MYROOTLABEL
затем в GRUB прописываешь
initramfs /boot/initramfs
kernel /boot/kernel root=/dev/ram0 init=/linuxrc root_real=LABEL=MYROOTLABEL
)
флаг --save-config копирует файл /usr/src/linux/.config в папку /etc/kernel, при следующем старте genkernel загрузит флаги из этого конфига.
--symlink делает в папке /boot симлинки kernel, initramfs, kernel.old и initramfs.old

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

Ага! Я понял. BIOS взяв контроль над винтом и поднял ядро, а ядро винт под контроль взять не смогло, т.к. модули на винте. И я как новичок влип и даже растерялся. А initrd поднимается вместе с ядром и передает недостающие модули.

Вроде initd в /usr/src/linux должен где-то собранным лежать? Ах нет я ж там все затёр...

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

Чтобы система смогла подхватить ФС и загрузиться.

//К.О.

Или же можно всё сделать модулями и использовать initramfs.

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

Чтобы система смогла подхватить ФС и загрузиться. //К.О.

К.О. говорить, что достаточно поместить модули для контроллера и rootfs в initrd

Led ★★★☆☆
()
Ответ на: [fat] от cetjs2

ползающий не спотыкается

ados ★★★★★
() автор топика

Кстати. У меня такое при любой попытке загрузить мой root LVM раздел без initrd. Хочу одновременно LVM и без initrd. Реально? Использую (пока что) genkernel

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

Да real_root. Это был метод устранения.

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

> Хочу одновременно LVM и без initrd. Реально?

Нет. Разве что вы ухитритесь затащить юзерспейс LVM в ядро, что требует набора из 256 напильников и кармы в 6 звезд на ЛОРе :-)

Nastishka ★★★★★
()

Сижу и компилю на Calculate. Ядро вроде такое же:

ados-laptop ~ # uname -r
		2.6.32.11-calculate

Распаковал initramfs:

ados-laptop temp # find lib -type f -iname '*.ko' -or -iname '*.o'
lib/modules/2.6.32.11-calculate/kernel/fs/ext4/ext4.ko
lib/modules/2.6.32.11-calculate/kernel/fs/squashfs/squashfs.ko
lib/modules/2.6.32.11-calculate/kernel/fs/mbcache.ko
lib/modules/2.6.32.11-calculate/kernel/fs/jbd/jbd.ko
lib/modules/2.6.32.11-calculate/kernel/fs/fuse/fuse.ko
lib/modules/2.6.32.11-calculate/kernel/fs/jbd2/jbd2.ko
lib/modules/2.6.32.11-calculate/kernel/fs/ext3/ext3.ko
lib/modules/2.6.32.11-calculate/kernel/fs/exportfs/exportfs.ko
lib/modules/2.6.32.11-calculate/kernel/crypto/crypto_blkcipher.ko
lib/modules/2.6.32.11-calculate/kernel/crypto/crypto_algapi.ko
lib/modules/2.6.32.11-calculate/kernel/crypto/arc4.ko
lib/modules/2.6.32.11-calculate/kernel/crypto/ecb.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/ata/sata_sis.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/ata/pata_sis.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/i2c/i2c-core.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/i2c/algos/i2c-algo-bit.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/acpi/processor.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/gpu/drm/drm_kms_helper.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/gpu/drm/ttm/ttm.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/gpu/drm/drm.ko
lib/modules/2.6.32.11-calculate/kernel/drivers/gpu/drm/radeon/radeon.ko
lib/modules/2.6.32.11-calculate/kernel/lib/crc16.ko
lib/modules/2.6.32.11-calculate/kernel/net/sunrpc/sunrpc.ko

Принял меры:

ados-laptop linux # grep -i ata_sis asusconf
		CONFIG_SATA_SIS=y
		CONFIG_PATA_SIS=y

ados-laptop linux # grep -i ext3_fs asusconf
		CONFIG_EXT3_FS=y
		CONFIG_EXT3_FS_XATTR=y
		CONFIG_EXT3_FS_POSIX_ACL=y
		CONFIG_EXT3_FS_SECURITY=y
		ados-laptop linux # grep -i ext4_fs asusconf
		CONFIG_EXT4_FS=y
		CONFIG_EXT4_FS_XATTR=y
		CONFIG_EXT4_FS_POSIX_ACL=y
		CONFIG_EXT4_FS_SECURITY=y

Не пашет.

Также изучил каждый scsi низкоуровневый (low-level) драйвер в ядре, но lsmod не нашел ничего.

Еще момент, конфиги я испытывал на Calculate с помощу утилиты cl-kernel и я так понял она, игнорируя мои конфиги, собирает модули и в initrd.

Сейчас genkernel качаю.

ados ★★★★★
() автор топика

genkernel и я гентушник. Всем спасибо!

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

Флажки у товарища, что выше постил, стырил.

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