Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

My machine is running inside a KVM virtual machine (Parallels Desktop v8), having a BIOS (not UEFI), having one SATA drive connected, one GPT partition on that disk, the partition is ext4 formatted, the bootloader is extlinux v. 4.05, and the kernel is Ubuntu 13.10 package linux-image-3.11.0-18-generic.

The system boots to (initramfs) prompt when only initrd and no boot argument is specified:

(initramfs) cat /proc/cmdline
initrd=/boot/initrd.img-3.11.0-18-generic ro quiet BOOT_IMAGE=/boot/vmlinuz-3.11.0-18-generic

Only after inserting boot=/dev/sda1 the system boots to bash prompt, as pointed out in the answer of question How to fix boot into initramfs prompt and "mount: can't read '/etc/fstab': No such file or directory" and "No init found"?

I have read that the kernel is usually able to find its boot partition without additional configuration.

Environment:

$ sudo efibootmgr
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
$ sudo modprobe efivars
(no result)

Faulty (initramfs) prompt:

mount: can't read '/etc/fstab': No such file or directory
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
The filesystem doesn't have requested /sbin/init.
No init found. Try passing init= bootarg.

(initramfs) cd /root || mkdir /root
(initramfs)

Update #1 - (initramfs) echo $(pwd) output

(initramfs) cd /root && echo $(pwd) || mkdir /root?
/root
(initramfs)

Update #2 - (initramfs) ls /dev output

(initramfs) ls /dev
vga_arbiter rfkill mem null port zero full random urandom kmsg tty console
tty0-tty63 vcs vcsa vcs1 vcsa1 snapshot ecryptfs fuse ptmx ttyS0-ttyS31
ttyprintk hpet ram0-ram15 loop-control loop0-loop7 net ppp bus input psaux
uinput rtc0 mapper mcelog cpu_dma_latency network_latency network_throughput
pts core fd stdin stdout stderr btrfs-control char rtc sg0 bsg sda sda1

Update #3 - (initramfs) ls / && ls /*/ output

(initramfs) ls /
dev root conf bin etc sbin run init lib64 scripts lib sys proc tmp var
(initramfs) ls /*/
/var/:
lock

/tmp/:

/sys/:
hypervisor kernel power block dev fs module firmware class devices bus

/scripts/:
panic init-bottom local-premount nfs functions local init-top

/sbin/:
blkid wait-for-root rmmod hwclock udevadm dumpe2fs modprobe

/run/:

/root/:

/proc/:
1-130 142-148 167-169 219-231 233 243-245 248 self ounts net sysvipc fs
driver tty bus sys cgroups irq mtrr fb acpi misc scsi mdstat execdomains
ioports imem schedstat sched_debug timer_list timer_stats dma modules
kallsyms latency_stats buddyinfo pagetypeinfo vmstat zoneinfo slabinfo
vmallocinfo swaps filesystems locks cmdline consoles cpuinfo devices 
interrupts loadavg meminfo stat uptime version softirqs kcore kmsg 
kpagecount kpageflags version_signature key-users crypto diskstats
partitions sysrq-trigger

/lib64/:
ld-linux-x86-64.so.2

/lib/:
udev klibc-dev6iJxsMLkI8yu6xMVSFDIuVsJk.so x86_64-linux-gnu modules firmware systemd

/etc/:
modprobe.d ld.so.conf.d udev ld.so.conf ls.so.cache mtab

/dev/:
...see above...

/conf/:
initramfs.conf arch.conf conf.d

/bin/:
kmod udevadm dmesg busybox poweroff fstype losetup ipconfig reboot halt sh
run-init pivot-root date dd insmod nfsmount sleep mount cpio resume

Update #4 - ls /scripts/* /conf/* /sys/firmware/*/ output

(initramfs) ls /scripts/* /conf/* /sys/firmware/*/
/scripts/functions /scripts/local /scripts/nfs /conf/initramfs.conf /conf/arch.conf  

/sys/firmware/memmap/:
9 8 7 6 5 4 3 2 1 0

/sys/firmware/acpi/:
hotplug tables pm_profiles interrupts

/conf/conf.d:

/scripts/panic:
ORDER keymap

/scripts/local-premount:
ORDER fixrtc resume

/scripts/init-top:
ORDER all_generic_ide blacklist udev

/scripts/init-bottom:
ORDER udev

Why isn't the kernel not able to find the boot partition in this case?

share|improve this question
    
What happens if you do cd /root && echo $(pwd) || mkdir /root? –  mikeserv Mar 23 at 11:13
    
@mikeserv /root is the output from /root && echo $(pwd) || mkdir /root on the (initramfs) prompt inside KVM. –  Pro Backup Mar 23 at 12:26
    
Ok, so that directory is there - but ls /dev returns empty? And you say kvm - do you mean qemu? how do you invoke the vm? Nevermind you say it - Paralells. Thats outside my experience. I know how to run EFI vms in qemu, but never that. –  mikeserv Mar 23 at 12:27
    
@mikeserv ls /dev is not empty, see update #2 in the edited question –  Pro Backup Mar 23 at 12:38
1  
“I have read that the kernel is usually able to find its boot partition”. Did you mean the root partition, i.e. the partition that is mounted on /? Where did you read this? The kernel normally knows because it's passed as the boot parameter on the command line. –  Gilles Mar 23 at 22:39
show 12 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.