Integrating Ubuntu boot config into CentOS 5.4 grub

It happened that I had installed my Ubuntu before my CentOS 5.4 OS..
and in the between got Windows XP installed..

Luckily all ubuntu partition have been set as ext3 (with Journal).
so can be mounted inside CentOS 5.4.

The step to recreate entry into CentOS grub for booting into ubuntu is as below :

1. mount the rootfs of Ubuntu into somewhere readable such as

mkdir -p /media/ubuntu
mount /dev/sda1 /media/ubuntu -t ext3

2. capture previous ubuntu boot config from its partition

cd /media/ubuntu/boot/grub/
vi grub.cfg

shall have something like this

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
 
### BEGIN /etc/grub.d/00_header ###
if [ -s /boot/grub/grubenv ]; then
  have_grubenv=true
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  saved_entry=${prev_saved_entry}
  save_env saved_entry
  prev_saved_entry=
  save_env prev_saved_entry
fi
insmod ext2
set root=(hd0,2)
search --no-floppy --fs-uuid --set 1a2b230e-d172-4b48-8395-72a33ebce462
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###
 
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/white
### END /etc/grub.d/05_debian_theme ###
 
### BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu, Linux 2.6.31-14-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
        set quiet=1
        insmod ext2
        set root=(hd0,2)
        search --no-floppy --fs-uuid --set 1a2b230e-d172-4b48-8395-72a33ebce462
        linux   /boot/vmlinuz-2.6.31-14-generic root=UUID=1a2b230e-d172-4b48-8395-72a33ebce462 ro   quiet splash
        initrd  /boot/initrd.img-2.6.31-14-generic
}
menuentry "Ubuntu, Linux 2.6.31-14-generic (recovery mode)" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
        insmod ext2
        set root=(hd0,2)
        search --no-floppy --fs-uuid --set 1a2b230e-d172-4b48-8395-72a33ebce462
        linux   /boot/vmlinuz-2.6.31-14-generic root=UUID=1a2b230e-d172-4b48-8395-72a33ebce462 ro single 
        initrd  /boot/initrd.img-2.6.31-14-generic
}
### END /etc/grub.d/10_linux ###

copy those line with root=UUID info

        set root=(hd0,2)
        linux   /boot/vmlinuz-2.6.31-14-generic root=UUID=1a2b230e-d172-4b48-8395-72a33ebce462 ro   quiet splash
        initrd  /boot/initrd.img-2.6.31-14-generic

3. copy out the necessary file (ubuntu vmlinuz and initrd) into current CentOS boot partition.

cp /media/ubuntu/boot/vmlinuz-2.6.31-14-generic /boot/
cp /media/ubuntu/boot/initrd.img-2.6.31-14-generic /boot/

4. edit the CentOS grub.conf
to have something like this..

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,4)
#          kernel /boot/vmlinuz-version ro root=/dev/sda5
#          initrd /boot/initrd-version.img
 
default=0
timeout=5
splashimage=(hd0,4)/boot/grub/splashmac3.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.6.1.el5)
  root (hd0,4)
  kernel /boot/vmlinuz-2.6.18-164.6.1.el5 ro root=LABEL=/ rhgb quiet 
vga=791
  initrd /boot/initrd-2.6.18-164.6.1.el5.img
 
title Windows
  rootnoverify (hd0,1)
  chainloader +1
 
title Ubuntu 9.10 - Karmic Kaola
  root (hd0,4)
  kernel /boot/vmlinuz-2.6.31-14-generic root=UUID=1a2b230e-d172-4b48-8395-72a33ebce462 ro quiet splash
  initrd /boot/initrd.img-2.6.31-14-generic

Note : the root(hd0,4) is where CentOS “/boot” located.

4. that’s it.. might want to recheck with these..

grub-install --recheck --no-floppy /dev/sda

then reboot..
shall be able to get into Ubuntu Karmic Kaola with the grub menu ..

how nice Ubuntu tight it “rootfs” to “UUID=” instead of just “LABEL=/”

so.. Ubuntu actually can intelligently differentiate “/” partition between each “linux OS” so that would not messing up with one another “/” belonging to others….

while CentOS is just referring to partition with “LABEL=/”..
which is could be messing up if got multiple “linux rootfs” inside..
the system.. (consider if adding another hardisk from another CentOS to recover data .. and reboot. woohoo. .I bet will confuse which one is which..)

p/s : anyway.. messing up with hardisk could be a thrill… if you want to explore.. hehehee..

Related Post

5 Responses

  1. ffrancesco says:

    It runs perfect on my Centos 5.3! thank you.

    Reply ↓
  2. jd says:

    [root@localhost ~]# yum install obexftp gnome-bluetooth
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: http://ftp.cuhk.edu.hk
    * updates: http://ftp.cuhk.edu.hk
    * addons: http://ftp.cuhk.edu.hk
    * extras: http://ftp.cuhk.edu.hk
    Setting up Install Process
    Parsing package install arguments
    No package obexftp available.
    Resolving Dependencies
    –> Running transaction check
    —> Package gnome-bluetooth.i386 0:0.7.0-10.2.el5 set to be updated
    –> Processing Dependency: gnome-bluetooth-libs = 0.7.0-10.2.el5 for package: gnome-bluetooth
    –> Processing Dependency: libopenobex.so.1 for package: gnome-bluetooth
    –> Processing Dependency: libgnomebt.so.0 for package: gnome-bluetooth
    –> Processing Dependency: libbtctl.so.2 for package: gnome-bluetooth
    –> Running transaction check
    —> Package openobex.i386 0:1.3-3.1 set to be updated
    —> Package gnome-bluetooth-libs.i386 0:0.7.0-10.2.el5 set to be updated
    —> Package libbtctl.i386 0:0.6.0-9.2.el5 set to be updated
    –> Finished Dependency Resolution

    Dependencies Resolved

    ================================================================================
    Package Arch Version Repository Size
    ================================================================================
    Installing:
    gnome-bluetooth i386 0.7.0-10.2.el5 base 235 k
    Installing for dependencies:
    gnome-bluetooth-libs i386 0.7.0-10.2.el5 base 65 k
    libbtctl i386 0.6.0-9.2.el5 base 44 k
    openobex i386 1.3-3.1 base 21 k

    Transaction Summary
    ================================================================================
    Install 4 Package(s)
    Update 0 Package(s)
    Remove 0 Package(s)

    Total download size: 365 k
    Is this ok [y/N]: y
    Downloading Packages:
    (1/4): openobex-1.3-3.1.i386.rpm | 21 kB 00:00
    (2/4): libbtctl-0.6.0-9.2.el5.i386.rpm | 44 kB 00:01
    (3/4): gnome-bluetooth-libs-0.7.0-10.2.el5.i386.rpm | 65 kB 00:01
    (4/4): gnome-bluetooth-0.7.0-10.2.el5.i386.rpm | 235 kB 00:02
    ——————————————————————————–
    Total 26 kB/s | 365 kB 00:14
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
    Installing : openobex [1/4]
    Installing : libbtctl [2/4]
    Installing : gnome-bluetooth-libs [3/4]
    Installing : gnome-bluetooth [4/4]

    Installed: gnome-bluetooth.i386 0:0.7.0-10.2.el5
    Dependency Installed: gnome-bluetooth-libs.i386 0:0.7.0-10.2.el5 libbtctl.i386 0:0.6.0-9.2.el5 openobex.i386 0:1.3-3.1
    Complete!
    [root@localhost ~]# sdptool browse
    Inquiring …
    Browsing 00:1E:37:69:33:A7 …
    Browsing 00:24:7E:21:FF:BB …
    Browsing 00:1E:37:6E:BE:F3 …
    Service Name: Bluetooth Serial Port
    Service RecHandle: 0x10000
    Service Class ID List:
    “Serial Port” (0x1101)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 1
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Serial Port” (0x1101)
    Version: 0x0100

    Service Name: Network Access
    Service RecHandle: 0x10001
    Service Class ID List:
    “PAN Group Network” (0x1117)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 15
    “BNEP” (0x000f)
    Version: 0x0100
    SEQ8: 0 6 dd
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “PAN Group Network” (0x1117)
    Version: 0x0100

    Service Name: Network Access
    Service RecHandle: 0x10002
    Service Class ID List:
    “PAN User” (0x1115)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 15
    “BNEP” (0x000f)
    Version: 0x0100
    SEQ8: 0 6 dd
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “PAN User” (0x1115)
    Version: 0x0100

    Service Name: Dial-up Networking
    Service RecHandle: 0x10003
    Service Class ID List:
    “Dialup Networking” (0x1103)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 2
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Dialup Networking” (0x1103)
    Version: 0x0100

    Service Name: PIM Item Transfer
    Service RecHandle: 0x10004
    Service Class ID List:
    “OBEX Object Push” (0x1105)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 3
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “OBEX Object Push” (0x1105)
    Version: 0x0100

    Service Name: File Transfer
    Service RecHandle: 0x10005
    Service Class ID List:
    “OBEX File Transfer” (0x1106)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 4
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “OBEX File Transfer” (0x1106)
    Version: 0x0100

    Service Name: Fax
    Service RecHandle: 0x10006
    Service Class ID List:
    “Fax” (0x1111)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 5
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Fax” (0x1111)
    Version: 0x0100

    Service Name: PIM Synchronization
    Service RecHandle: 0x10007
    Service Class ID List:
    “IrMC Sync” (0x1104)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 6
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “IrMC Sync” (0x1104)
    Version: 0x0100

    Service Name: Sync Command Service
    Service RecHandle: 0x10008
    Service Class ID List:
    “IrMC Sync Command” (0x1107)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 6
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “IrMC Sync” (0x1104)
    Version: 0x0100

    Service Name: Headset
    Service RecHandle: 0x10009
    Service Class ID List:
    “Headset” (0x1108)
    “Generic Audio” (0x1203)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 7
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Headset” (0x1108)
    Version: 0x0100

    Service Name: Stereo Audio
    Service RecHandle: 0x1000a
    Service Class ID List:
    “Audio Sink” (0x110b)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 25
    “AVDTP” (0x0019)
    uint16: 0x100
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Advanced Audio” (0x110d)
    Version: 0x0100

    Service RecHandle: 0x1000b
    Service Class ID List:
    “AV Remote Target” (0x110c)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 23
    “AVCTP” (0x0017)
    uint16: 0x100
    Profile Descriptor List:
    “AV Remote” (0x110e)
    Version: 0x0100

    Service Name: Audio Source
    Service RecHandle: 0x1000c
    Service Class ID List:
    “Audio Source” (0x110a)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    PSM: 25
    “AVDTP” (0x0019)
    uint16: 0x100
    Profile Descriptor List:
    “Advanced Audio” (0x110d)
    Version: 0x0100

    Service Name: Bluetooth Imaging
    Service RecHandle: 0x1000d
    Service Class ID List:
    “Imaging Responder” (0x111b)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 8
    “OBEX” (0x0008)
    Language Base Attr List:
    code_ISO639: 0x656e
    encoding: 0x6a
    base_offset: 0x100
    Profile Descriptor List:
    “Imaging” (0x111a)
    Version: 0x0100

    Service Name: Audio Gateway
    Service RecHandle: 0x1000e
    Service Class ID List:
    “Headset Audio Gateway” (0x1112)
    “Generic Audio” (0x1203)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 9
    Profile Descriptor List:
    “Headset” (0x1108)
    Version: 0x0100

    Service Name: Audio Gateway
    Service RecHandle: 0x1000f
    Service Class ID List:
    “Handfree Audio Gateway” (0x111f)
    “Generic Audio” (0x1203)
    Protocol Descriptor List:
    “L2CAP” (0x0100)
    “RFCOMM” (0x0003)
    Channel: 10
    Profile Descriptor List:
    “Handsfree” (0x111e)
    Version: 0x0101

    Browsing 00:21:86:C2:4B:5A …
    Failed to connect to SDP server on 00:1E:37:69:1F:51: Host is down
    Browsing 00:24:7E:98:97:23 …

    ********************QUESTION*********************
    why it shows that no package obexftp available

    and after that what is that hanphone…????

    can u post it with few more screenshot of commands also…so that its get easyyyyyyyy
    waitingggggggggggggggggg….
    thanxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Reply ↓
  3. jd says:

    obexfs command not found…
    how to resolve???
    yum installation not workingggggggg
    what to doooooooo???

    Reply ↓
  4. crisstm says:

    Well.
    I install with succes all in centos 5.4 the latest version with latest update and when i type obex:// in my computer address :
    Nautilus cannot disply “obex:///”
    Please select another viewer and try again.
    ???

    Reply ↓

Leave a Reply

Your email address will not be published. Required fields are marked *