LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: waterloo2005

ubuntu10.10 可用和gentoo共用一个boot分区吗? ubuntu10.10的grub和gentoo的版本

[复制链接]
发表于 2010-11-3 22:16:45 | 显示全部楼层
Post by waterloo2005;2118272
这是我在gentoo的/boot/grub/grub.conf里的ubuntu10.10的设置
  1. title ubuntu 10.10
  2. root (hd0,1)
  3. kernel /boot/vmlinuz-2.6.35-22-generic root=/dev/sda8 ro locale=zh_CN quiet splash
  4. initrd /boot/initrd.img-2.6.35-22-generic
复制代码
我仅拷贝了vmlinuz-2.6.35-22-generic和initrd.img-2.6.35-22-generic到/boot下, 发现可以启动ubuntu。
ubuntu的fstab里并没有把它的boot单独挂载。

请问:如果启动ubuntu后,那么ubuntu认为的boot是/media/ubuntu/boot 还是我gentoo的boot ?
那以后更新ubuntu时, 它的新的kernel是否还是放在它自己的boot下, 我只要再拷贝到gentoo的boot下就可以了?
还有就是, ubuntu的boot目录下还有很多启动加载mod(模块)。请问 像现在这样我仅在gentoo的grub.conf里这样设置,是否启动ubuntu的时候这些模块也加载了,它们是否也需要拷贝到gentoo的boot下?

ubuntu启动时,是不是只要找到vmlinuz,initrd.img和它的根分区,然后它就按它自己的fstab里的设置去找了?

在安装ubuntu10.10是我选择把启动装载器(也许就是grub2)安装在/dev/sda8. 请问如何让这个装载器发生作用?就是启动时先进入sda8,再从它的grub2选择进入ubuntu ?

谢谢

发行版的内核一般来说可以通用, boot分区也是通用的。你只要把grub装在mbr上即可(/dev/sda)。

你可能对grub-install的作用有误解,grub-install确实往/boot/grub/(也可以用--root-directory选项指定)里拷GRUB文件,但并不是把grub安装到/boot所在分区。一个grub安装只对应一个/boot/grub。无论你把grub安装在哪个分区上。

我说的不是很清楚,你还是多看几遍grub的man。

当然,这并不是说,一台机器上不能存在两个以上有作用的boot分区。比如说,你可以用grub来引导另一个grub,引导另一个grub,……,这样你可以得到无数的boot分区,当然,这样做没有意义。
回复 支持 反对

使用道具 举报

发表于 2010-11-5 01:00:00 | 显示全部楼层
雖然可以在/boot裏共享一個內核,但模塊/lib/modules/XXX沒有共享呀!
做個軟鏈接過去試試?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-5 01:12:31 | 显示全部楼层
Post by xcxxb;2118471
雖然可以在/boot裏共享一個內核,但模塊/lib/modules/XXX沒有共享呀!
做個軟鏈接過去試試?


ubuntu 的模块好像在boot下,发现没理模块也能启动。
回复 支持 反对

使用道具 举报

发表于 2010-11-5 06:37:58 | 显示全部楼层
Post by xcxxb;2118471
雖然可以在/boot裏共享一個內核,但模塊/lib/modules/XXX沒有共享呀!
做個軟鏈接過去試試?


可以把模块全打到内核里去。如果是gentoo不是更方便了?
回复 支持 反对

使用道具 举报

发表于 2010-11-6 14:10:04 | 显示全部楼层
Post by pingz;2118481
可以把模块全打到内核里去。如果是gentoo不是更方便了?


桌面系统把模块全打内核里去就要老命罗
回复 支持 反对

使用道具 举报

发表于 2010-11-6 14:13:39 | 显示全部楼层
Post by waterloo2005;2118473
ubuntu 的模块好像在boot下,发现没理模块也能启动。


模块不可能不在/lib/modules/下,至于没模块能启动是因为硬盘驱动、文件系统之类这些必要部件在内核或者initrd里;你试试无模块的情形下启动并插入fat32格式的U盘??
回复 支持 反对

使用道具 举报

发表于 2010-11-6 15:00:25 | 显示全部楼层
Post by leisudong;2118716
桌面系统把模块全打内核里去就要老命罗

不要命,试过...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-6 15:01:08 | 显示全部楼层
我现在仅在gentoo的grub.conf里设置了ubuntu 10.10 的启动项。
现在启动后可以自动挂在fat32u盘,u盘中文显示也正常。
回复 支持 反对

使用道具 举报

发表于 2010-11-6 15:04:30 | 显示全部楼层
Post by waterloo2005;2118730
我现在仅在gentoo的grub.conf里设置了ubuntu 10.10 的启动项。
现在启动后可以自动挂在fat32u盘,u盘中文显示也正常。


这不正说明其他模块在/lib/modules下嘛...加上kernel能autoload mod,和dbus udev等就可以了
回复 支持 反对

使用道具 举报

发表于 2010-11-6 16:45:51 | 显示全部楼层
Post by waterloo2005;2118730
我现在仅在gentoo的grub.conf里设置了ubuntu 10.10 的启动项。
现在启动后可以自动挂在fat32u盘,u盘中文显示也正常。

这么讲:

grub是gentoo还是ubuntu的儿子且扔开一边不说,一套一般的kernel由三部分组成:vmlinuz、initrd、modules。initrd可以没有(例如我),modules也可以没有(例如自称不怕死的Havanna);通常情形下,vmlinuz 和 initrd 由grub载入内存;多linux系统的情形下,grub.conf里的kernel行通常还要加一个root=/dev/sdax这样的参数。

vmlinuz被载入内存并取得控制权后直到重启前都不会卸载了,在普通用户眼中,vmlinuz最重要的一项工作就是找到root(即根分区)并挂载之,挂载根分区后就可以找到/lib/modules/下对应自己版本的模块了。

实际上区分当前启动的是gentoo还是ubuntu,就是看当前用的是哪个vmlinuz、哪个分区做根分区;与grub归哪个系统安装无关。

因为vmlinuz在整个linux运行过程中都在内存中,所以启动以后vmlinuz这个文件就没用了,虽然通常它存在于/boot下,但是不存在也是没有关系的。但正在内存中的那个vmlinuz对应的modules一定要存在于/lib/modules下,这样你才能够加载U盘的usb驱动、fat32的文件系统驱动,读取U盘。

--------------------------------------------------------------------------
实际上,grub.conf中root=/dev/sdxx这个参数也不是必要的,这个参数可以记录在vmlinuz中的某个位置,当grub.conf里有指定root,就用grub.conf指定的,没指定,就用vmlinuz里记录的。

所以,有可能你什么都没干就只是用grub加载了ubuntu的vmlinuz,然后也能跑出一个正常的、完整的ubuntu系统来。
回复 支持 反对

使用道具 举报

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

本版积分规则

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