1

I am running Debian Xfce on virtual box(Host OS : Ubuntu 12.04 LTS).In Debian i downloaded the source code of Linux kernel-2.6.32.61 from https://www.kernel.org/ and i configured it and compiled it successfully.I followed these steps (with su ):

  1. make defconfig
  2. make
  3. make modules
  4. make install_modules

After that i edited the /etc/grub.d/40_custom file and run grub-mkconfig. Then i put the config,initrd.img,System.map,vmlinuz files in the /boot/ folder and thus i installed the new kernel in the same disk and same partition where Debian kernel was installed in the virtual box. Then i restarted the virtual box and booted from the built kernel but the booting process stooped giving me a prompt as shown in the image :

Screenshot
(sorry , i do not have enough reputation points to post a image.)

/boot/grub/grub.cfg of Debian :

 #
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 33cee34f-8bec-4f6a-963f-d26bdffda28c
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos5)'
  search --no-floppy --fs-uuid --set=root 33cee34f-8bec-4f6a-963f-d26bdffda28c
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 33cee34f-8bec-4f6a-963f-d26bdffda28c
insmod png
if background_image /usr/share/images/desktop-base/joy-grub.png; then
  set color_normal=white/black
  set color_highlight=black/white
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-686-pae' --class debian --class gnu-linux --class gnu --class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set=root 33cee34f-8bec-4f6a-963f-d26bdffda28c
    echo    'Loading Linux 3.2.0-4-686-pae ...'
    linux   /boot/vmlinuz-3.2.0-4-686-pae root=UUID=33cee34f-8bec-4f6a-963f-d26bdffda28c ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.2.0-4-686-pae
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-686-pae (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set=root 33cee34f-8bec-4f6a-963f-d26bdffda28c
    echo    'Loading Linux 3.2.0-4-686-pae ...'
    linux   /boot/vmlinuz-3.2.0-4-686-pae root=UUID=33cee34f-8bec-4f6a-963f-d26bdffda28c ro single 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.2.0-4-686-pae
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'Saurabh GNU/Linux, with Linux 2.6.32.61' --class gnu-linux --class gnu --class os{
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy  --fs-uuid --set=root 33cee34f-8bec-4f6a-963f-d26bdffda28c
    echo 'Loading Saurabh Linux 2.6.32.61... '
    linux /boot/vmlinuz-2.6.32.61 root=/dev/sda5  ro quiet
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-2.6.32.61
}
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

40_custom file :

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'Saurabh GNU/Linux, with Linux 2.6.32.61' --class gnu-linux --class gnu --class os{
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy  --fs-uuid --set=root 33cee34f-8bec-4f6a-963f-d26bdffda28c
    echo 'Loading Saurabh Linux 2.6.32.61... '
    linux /boot/vmlinuz-2.6.32.61 root=/dev/sda5  ro quiet
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-2.6.32.61
}

/etc/fstab of Debian

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda5 during installation
UUID=33cee34f-8bec-4f6a-963f-d26bdffda28c /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda1 during installation
UUID=faa1c54b-4e9f-4af6-9b1e-8fdceffb321f none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

(I am doing all these experiments in virtual box only )
Plesae anybody help me , why i am getting this error?

0

Maybe this was obvious, but the problem is not that you were dropping into BusyBox (initramfs). The problem is the 10 lines above that prompt, where you see almost every attempt at mounting kernel assets failing one after the other.

Likely one of your set root='(hd0,msdos5)' or--set=root 33cee34f-8bec-4f6a-963f-d26bdffda28c` is wrong.

When grub looked`into your /boot, it found the kernel, but when it loaded the kernel, one of your root declarations actually changed the location of /boot, so now, the kernel cant mount what it needs from initrd (either that or your initrd was improperly compiled to match with your kernel).

Your kernel is loading fine I believe, but it can't find the rest of userspace, so it drops back to grub.

Try being less verbose with your drive UID's, see how far defaults will get you. Considering running mkinitrd for your kernel again.

  • Also, spend some time in the Busybox terminal, and find out where your disks actually are, and that from Busybox, they have the same name/designation your are assigning in the grub.cfg. – user2097818 Aug 3 '14 at 3:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.