LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3725|回复: 28

原创:Centos Debian共用Boot分区共用Swap分区的双Linux系统安装.

[复制链接]
发表于 2009-3-9 21:08:07 | 显示全部楼层 |阅读模式
转载请注明出处.谢谢.

www.liangliang.org.cn/blog



       个人喜欢Debian,但是由于Redhat的推广做的比较好,所以很多服务器都采用了Redhat发行版,抛开个人对Redhat的惩戒,使用和研究Centos成了有实际意义的事情,所以有了将Debian与Centos安装在同一台计算机的打算.

使用光盘引导安装:

Centos5.2 安装DVD

Debian  CD1



首先安装Centos

Centos root分区安装于/dev/hda6

Centos  boot分区安装与/dev/hda3

单独划分/boot的好处在于可以与debian共用一个/boot

由于debian支持root分区与boot分区在同一个分区.所以采用了让centos单独划分boot分区的步骤.



具体分区如下:

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        2550    20480008+   7  HPFS/NTFS               # windows
/dev/hda2            2550        5100    20480040    c  W95 FAT32 (LBA)      #fat32 d:\
/dev/hda3            5101        5112       96390   83  Linux                          # boot
/dev/hda4            5113        9729    37086052+   5  Extended
/dev/hda5            5113        5177      522081   82  Linux swap / Solaris     #swap
/dev/hda6            5178        7726    20474811   83  Linux                         #centos /
/dev/hda7            7727        9729    16089066   83  Linux                         #debian /



其中/dev/hda5 swap为centos与debian共用交换分区

Centos安装完毕,重新启动计算机.



此时放入debian CD.安装debian.分区划分选择/dev/hda7为root/

swap为/dev/hda5.

安装Grub至/dev/hda1上

安装完毕后重新引导计算机.

启动后发现debian与原有windows系统还在.但是Grub中已经没有Centos的引导信息了.

用Debian启动.

进入shell:

执行:

mkdir /mnt/centos_boot

mount /dev/hda3 centos_boot

将centos Boot分区加载到/mnt/centos_boot目录中.

mkdir /root/back_boot

cp /mnt/centos_boot /root/back_boot –Rf

备份centos_boot

vim /etc/fstab

改为:

ThinkPad:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/hda3       /boot           ext3    defaults        0       2
/dev/hda7       /               reiserfs notail          0       1
/dev/hda5       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
ThinkPad:~#

增加/dev/hda3       /boot           ext3    defaults        0       2

cat /root/back_boot/grub/menu.lst

#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,2)/grub/splash.xpm.gz
hiddenmenu

title            Cent OS (2.6.18-92.el5)
root             (hd0,2)
kernel           /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
initrd           /initrd-2.6.18-92.el5.img

—————————————————————————-

cp /boot /mnt/centos_boot –Rf

将debian /boot下的所有文件复制到/mnt/centos_boot下.并且覆盖原有文件.

此时/mnt/centos_boot下存在.Centos的内核文件.



大致如下:

config-2.6.18-92.el5      symvers-2.6.18-92.el5.gz  vmlinuz-2.6.18-92.el5
initrd-2.6.18-92.el5.img  System.map-2.6.18-92.el5

将cat /root/back_boot/grub/menu.lst中的



title            Cent OS (2.6.18-92.el5)
root             (hd0,2)
kernel           /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
initrd           /initrd-2.6.18-92.el5.img



引导信息,加入/mnt/centos_boot/grub/menu.lst中.

此时注意.一定要放在debian的menu.lst的

### BEGIN AUTOMAGIC KERNELS LIST



之上.否则在apt-get升级内核时将覆盖原有centos的信息.

并且修改debian的引导信息:



title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd0,6)
kernel          /boot/vmlinuz-2.6.26-1-686 root=/dev/hda7 ro quiet
initrd          /boot/initrd.img-2.6.26-1-686



为:

title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd0,2)
kernel         /vmlinuz-2.6.26-1-686 root=/dev/hda7 ro quiet
initrd          /initrd.img-2.6.26-1-686



这是由于Grub的书写要求所致.由于改变了boot的分区位置所以要做上述改动.

书写要求:

1)在menu.lst中 ,通过 root (hd[0-n],y)来指定/boot 所在的分区;

2)在menu.lst中,kernel 命令行的写法;

kernel 一行,是通指定内核及Linux的/分区所在位置;

Debian的boot为:

title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd0,6)
kernel          /boot/vmlinuz-2.6.26-1-686 root=/dev/hda7 ro quiet
initrd          /boot/initrd.img-2.6.26-1-686


但是已经让debian使用Centos Boot分区.所以改为:



title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd0,2)
kernel         /vmlinuz-2.6.26-1-686 root=/dev/hda7 ro quiet
initrd          /initrd.img-2.6.26-1-686



在这里以kernel 起始,指定Linux的内核的文件所处的绝对路径;

因为内核是处在/boot目录中的,如果/boot是独立的一个分区则需要把boot省略

我们这里的修改就是省略/boot.并且制定boot分区的位置为Centos的boot分区.即:

root (hd0,2)

也就是

/dev/hda3



此时可以重新引导系统,在引导过程中Grub同时存在Centos Debian windows.

并且apt-get升级内核时可以自动将升级的信息写入现有grub.完成Centos Debian无缝兼容.

apt-get升级后的grub.conf内容为:



ThinkPad:/boot/grub# cat menu.lst

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,2)
#          kernel /vmlinuz-version ro root=/dev/hda6
#          initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,2)/grub/splash.xpm.gz
hiddenmenu

title            Cent OS (2.6.18-92.el5)
root             (hd0,2)
kernel           /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
initrd           /initrd-2.6.18-92.el5.img

# This is a divider, added to separate the menu items below from the Debian
# ones.
title           Microsoft Windows XP Professional:
root            (hd0,0)
savedefault
chainloader     +1

### BEGIN AUTOMAGIC KERNELS LIST

title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd0,2)
kernel          /vmlinuz-2.6.26-1-686 root=UUID=76c51794-99e7-4021-ab88-5b9a23f97379 ro
initrd          /initrd.img-2.6.26-1-686

title           Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
root            (hd0,2)
kernel          /vmlinuz-2.6.26-1-686 root=UUID=76c51794-99e7-4021-ab88-5b9a23f97379 ro single
initrd          /initrd.img-2.6.26-1-686

title           Debian GNU/Linux, kernel 2.6.18-92.el5
root            (hd0,2)
kernel          /vmlinuz-2.6.18-92.el5 root=UUID=76c51794-99e7-4021-ab88-5b9a23f97379 ro

title           Debian GNU/Linux, kernel 2.6.18-92.el5 (single-user mode)
root            (hd0,2)
kernel          /vmlinuz-2.6.18-92.el5 root=UUID=76c51794-99e7-4021-ab88-5b9a23f97379 ro single

### END DEBIAN AUTOMAGIC KERNELS LIST
ThinkPad:/boot/grub#



BTW:上述过程也可以在Centos下完成.由于我的debian采用了reiserfs分区默认Centos不支持reiserfs 分区.所以在Debian下完成.



全文完.本文写的非常浅薄.希望大家能够看得明白. 如果有问题可以联系我.

gtalk:gugong.j@gmail.com

msn:liang@liangliang.org.cn

oicq:199659
发表于 2009-3-10 15:15:40 | 显示全部楼层
swap共用,没啥问题。
但是为什么/boot要共用呢,有意义吗...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-10 21:24:16 | 显示全部楼层
Post by lvchaxj;1958736
swap共用,没啥问题。
但是为什么/boot要共用呢,有意义吗...


boot共用当然有意义.

不说节省空间.
但是维护多个boot会比单个boot麻烦.而且一个就可以完成启动,为何分开使用还可以照顾windows启动.
回复 支持 反对

使用道具 举报

发表于 2009-3-10 22:38:17 | 显示全部楼层
个人不喜欢双系统,如果有需要最多用虚拟机。
回复 支持 反对

使用道具 举报

发表于 2009-3-11 14:15:29 | 显示全部楼层
Post by arts;1958927
boot共用当然有意义.

不说节省空间.
但是维护多个boot会比单个boot麻烦.而且一个就可以完成启动,为何分开使用还可以照顾windows启动.



恭喜你,已经把boot和grub的概念混淆了,而且的话,我遇见到不久的将来,你的boot or grub会出问题,结果就是,不能引导......
回复 支持 反对

使用道具 举报

发表于 2009-3-11 21:13:06 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-16 17:04:42 | 显示全部楼层
Post by lvchaxj;1959233
恭喜你,已经把boot和grub的概念混淆了,而且的话,我遇见到不久的将来,你的boot or grub会出问题,结果就是,不能引导......


无语了。-_-

小小b4你一下。

本来不想解释什么。
后来一想算了。还是说几句吧,于是编辑。

兄台千万不要没有调查就发言。

做技术最怕的就是想当然。

我还是清楚什么是boot什么是mbr的。
btw:我研究过55AA与INT13H。谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-16 17:05:55 | 显示全部楼层
Post by d00m3d;1959517
这是我的玩法

http://www.linuxsir.cn/bbs/thread343284.html


呵呵。不错不错。

学习了。
回复 支持 反对

使用道具 举报

发表于 2009-3-16 17:34:09 | 显示全部楼层
我觉得要用多个系统的话,就用虚拟机就行了
回复 支持 反对

使用道具 举报

发表于 2009-3-16 17:38:43 | 显示全部楼层
弱弱的问问,boot单独分出来不就是为了共用吗?否则分出来干什么呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表