|
我现在的机器里装了Debian/testing和Gentoo。
Debian的fstab:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda3 / ext3 errors=remount-ro 0 1
/dev/sda1 /boot ext3 defaults 0 2
/dev/sda11 /home ext3 defaults 0 2
/dev/sda7 /opt ext3 defaults 0 2
/dev/sda8 /tmp ext3 defaults 0 2
/dev/sda5 /usr ext3 defaults 0 2
/dev/sda6 /var ext3 defaults 0 2
/dev/sda2 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sda10 /mnt/gentoo ext3 defaults 0 2
Gentoo的fstab:
/dev/sda10 / ext3 errors=remount-ro 0 1
/dev/sda9 /boot ext2 defaults,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,user 0 0
/dev/sda11 /home ext3 defaults 0 2
我现在打算这样做:
Gentoo的根目录挂载到debian的/mnt/gentoo
Gentoo的/boot和/home分区不挂载。
启动Debian后以chroot方式进到/mnt/gentoo:
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
然后在chroot的环境下进行一些源码的编译等命令行工作,Debian里处理其它事务。
但是我知道chroot不可能提供一个完整的系统环境。
比如两个系统都访问相同的/proc、/dev文件系统(/dev下的设备文件在两个系统下的设置有些差异)。
再比如Gentoo环境下的/lib/modules目录下的内核模块可能会被装载到Gentoo内核空间。再比如Gentoo环境下/etc/init.d/目录下的服务都没有启动也不应该启动,但有可能有些Gentoo程序需要这些服务却又无法访问Debian系统的服务(socket/lock/pipe/pid等类型文件都不在chroot环境下)。
对于/proc和/dev我了解不多,不知道该怎么做。
/mnt/gentoo/lib/modules我打算备份后链接到/lib/modules不知道是否可行。
/mnt/gentoo/etc/init.d目录我想备份后清空,宁愿程序报错也不愿意某些程序自动启动这些服务。
因为我在Gentoo下只用root操作并且不启动系统服务daemon,所以用户和组的设置冲突影响应该不大。
暂时想到的问题和解决方法就只有这些,请各位看看这样能否满足我的编译环境的需求,以及还有哪些风险我没注意到。 |
|