安装linux和windows双系统

晨曦之光 发布于 2012/04/10 14:58
阅读 1K+
收藏 0

很多人一提到安装linux和windows双系统就会想到单独将磁盘划一个分区给linux,如果一块磁盘上已经安装了windows,并且所有分区都有数据,那就麻烦了,即使有了单独的分区,还需要安装grub,然后在grub中选择启动linux还是启动windows。
     其实没有这么麻烦,完全可以将linux安装在windows的分区上。将linux和windows“安装”在同一个分区上。在linux中只需要加载ntfs即可,对于linux而言,文件系统到底是ext2还是ext3,或者说fat,ntfs,这些都是无所谓的,全部被内核的VFS这个层次给屏蔽掉了,而linux内核又是常驻内存的,且很小,因此只需要grub能识别ntfs分区,将内核文件比如D:/vmlinuz文件载入内核即可,然后还需要一个initrd文件,比如D:/initrd.img,在initrd中加载ntfs驱动,然后将D盘,或者E盘或者C盘挂载为根,然后chroot到这个根即可,当然要有个前提,那就是D盘(或者别的任何盘)需要有bin,lib,etc等目录和里面的文件。
     一切就绪之后,windows和linux会相安无事的共处在同一个磁盘分区中,由grub来选择启动哪一个系统。能很方便的做到这一点的原因在于linux操作系统内核非常小,加载到内存以后就和磁盘之类的设备没有关系了,因此完全可以将网络挂载成“根”,只要有驱动就可以,实际上,只要将kernel载入内存并且启动到了用户态,一个linux系统就已经在运行了,它如何行动就看你的用户态程序是什么了,你甚至都可以不挂载什么根文件系统,如果你的init程序是一个while(1){}的话,这也是一个完整的linux系统,它完全存在于内存,也就是initrd.img的内存文件系统,此时只要你加载了特定文件系统驱动(将此驱动放到initrd.img中)并且磁盘中有一个可以运行的程序,该文件系统就可以被挂载为根以及被chroot,这就是机制和策略分离带来的好处。
附:操作
1.将linux内核vmlinux和initrd.img放到一个fat或者ntfs盘符的根下,为了简单以下使用fat和D盘,因为ntfs在unicode方面有些问题;
2.安装windows下的grub,具体方式略;
3.修改initrd.img,在挂载根文件系统前将vfat的驱动加载上,然后挂载D盘为根:
mount -t vfat /dev/XXX /mnt
这里的XXX视D盘属于哪个分区而定。
4.重启吧,可以启动到linux和windows。


原文链接:http://blog.csdn.net/dog250/article/details/6246603
加载中
返回顶部
顶部