正文

linux和win32共存2006-12-06 09:12:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/nothing/21306.html

分享到:

这大概是我最早的一篇技术性文章了,大约是1999年. 看了十几个关于linux和win32共存的问题,总要有个答案吧! 以下的linux均指cosix linux 3.0亦适用于red hat 6.1以上(6.1以下的没试过)。 分区(适用于所有win32平台) 通常在第一分区安装最常用的操作系统,以得到最高的性能。 下面以第一分区为win32为例: 分区如下: Partition NO. size   File System Type Symbol 1 5000MB win32(Fat32) B 2 3000MB linux native(ext2) 82 3 Rest(>300MB) logic(Dos logic) (未知)  5 258MB linux swap(ext2) 83 6 Rest win32(FAT32/NTFS) B/(未知NTFS 5的代码) 这种分区表的好处是可扩展性好,保留了第四个主分区位置,可以自由增加第三个操作系统。 缺点是不太好做(fdisk或cfdisk(推荐)可以做,PQ Magic做不了),并且PQ Magic不认. (报错,并自动删去第二个扩展分区以后的所有分区。也可以不要交换分区, 这样PQ Magic就不会报错了) Partition NO. size   File System Type Symbol 1 5000MB win32(Fat32) B  2 192MB+ linux swap(ext2) 83 3 3000MB linux native(ext2) 82 4 Rest(>300MB) logic(Dos logic) (未知) 5 Rest win32(FAT32/NTFS) B ....(逻辑扩展分区) 这个分区可以用于只想用win32和linux的用户,比较正统的分区方法都可以做到。 第4个分区是扩展分区,(它的大小包括所有FAT逻辑分区大小之和)大小和分法由用户处自己决定。 以linux为主要操作系统的用户可以把win32主分区放到linux native 分区之后。以提高linux的性能。 Partition NO. size   File System Type Symbol  1 192MB+ linux swap(ext2) 83 2 3000MB linux native(ext2) 82 3 5000MB win32(Fat32) B 4 Rest(>300MB) logic(Dos logic) (未知) 5 Rest win32(FAT32/NTFS) B ....(逻辑扩展分区) 以上是10G到20G的硬盘可采用的方法。大硬盘的用户可以参考以下这个分区表: Partition NO. size   File System Type Symbol mount point  1 512MB+ linux swap(ext2) 83 2 512MB+ linux native(ext2) 82 /boot 3 5000MB+ linux native(ext2) 82 / 4 10000MB+ linux native(ext2) 82 /usr 安装几乎所有的软件 5 10000MB linux native(ext2) 82 /home 用户比较多时 ....(其它分区) 该分只是说明如何分割linux系统,与win32平台无关。分区是如果要使用win32系统,应参考前几种分区方式。 多重引导 多个操作系统需要在启动时选择一个做为当前的操作系统来引导计算机。提供这一选择的 称为多重引导程序。市场这种程序很多,用法各异,用户可参考其说明书使用。 这里只使用操作系统本身提供的多重引导功能。 win95/98/ME  这类系统不支持启动多系统,只能由多重引导程序来引导。 winNT/2000/XP 这类系统支持多重引导,方法是修改使用主盘(一般是C:)根目录下的boot.ini文件 (可能是隐蔽文件)。 我的boot.ini文件如下: ----------- Start Here----------- [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP 专业版" /fastdetect c:\linux.bin="Linux ...Red Hat Linux 7.2 " c:\win98.bin="Windows 98 第二版" ----------- End Here----------- 请注意最后两行。一个文件对应一个标示。该文件是一个x86 boot sector的16进制文件。 并且只能在根目录下。这是一个比较通用的作法,在我的boot.ini中可以看到这种方法可 用于linux和win98,事实上还可以用于其它操作系统。 下面对boot.ini的语法略示如下: boot loader区: timeout表示启动时选择操作系统的时间。当为0时,直接加载默认操作系统。 default默认操作系统的启动文件。 operation systems区: 可使用的操作系统列表。 linux linux使用lilo来加载内核。lilo本身就是一个多重引导程序,它可以引导多种操作系统 配置方法是修改/etc/lilo.conf文件,关于这个文件的语法可以参考man 实例说明 linux与dos共存 有必要吗? linux与win95/98/ME共存,双启动。 win98不支持启动多系统,只能用lilo引导。方法不用我多说。 如果很少用linux,可以在win98下安载cosix linux booter,cosix linux 3.0 第一张光盘上有。事实上它是一个VB写的外壳程序。其核心是syslinux这个程序。 syslinux是一个win32/dos命令行程序,它可以加载linux内核(的一部分),这部分内核 必需在syslinux程序所在的文件系统中。即不能用syslinux加载位于ext2分区中的内核。 内核必须复制windows系统下。方法?找到syslinux程序就知道了。 syslinux 在linux安装盘上一般都有。 linux与winNT/2000/XP 有两种选linux引导Win32或win32引导linux。也可以互相引导,就是出现两次操作系统选择界面, 一次是lilo,一次是win32。一般人都会装成这样。 把lilo装入linux分区,首扇区 启动->winNT界面 {windows NT}->winNT {linux ...} ->lilo界面{linux ...}-->进入linux {dos .... }-->回到winNT界面 事实上只需要引导一次 我推荐使用lilo,一是比较简单,二是界面好看,三是功能多。 用winNT引导,可以如下操作: 正确安装各系统: 假设如下: /dev/hda1 为winNT/2000/XP mounted as /mnt/c /dev/hda2 为linux mounted as / 得到linux的x86boot sector: linux下使用命令 dd if=/dev/hda2 of=./linux.bin bs=512 count=1 完成后,x86 boot sector被保存在当前目录下linux.bin文件中。然后可以复制到C:盘根目录下。 cp linux.bin /mnt/c/linux.bin 也可以直接写到/mnt/c/目录下 dd if=/dev/hda2 of=/mnt/c/linux.bin bs=512 count=1 如果win32使用了NTFS的话可以先放到一个FAT32的盘上(比如说软盘或D盘等),然后到win32下去复制。 win32下可以使用winHex的磁盘编辑功能,找到linux的首扇区,保存512字节为一个文件 该可以自由命名,这里使用linux.bin。推荐使用lilosect.lnx这个文件名。 linux首扇区可以使用Fdisk或Cfdisk看到。也可以用PQ Magic得到。 修改boot.ini文件。增加有关linux的引导记录。比如: c:\linux.bin="中软 linux" 修改timeout为非零值。 在winXP下,boot.ini不能直接修改,可以使用下列步骤编辑boot.ini文件: 开始>我的电脑>(右鍵)属性>高级>启动和故障恢复(设置)>系统启动(编辑) 重启计算机. 1注意,如果要多次启动多个linux内核,使用lilo是一个明智的选择.一定要使用win32来 引导只能用非常办法,比如多个/boot分区 2注意,如果重新配置了lilo后,要更新x86 boot sector的文件.

阅读(4798) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册