简介如何在Windows XP下安装Linux并实现双系统这份Word文档docx格式面向希望同时保留Windows易用性与Linux开源特性的用户以Red Hat Linux 9.0为例给出了从硬盘分区到引导配置的完整方案。文档以30GB硬盘、7GB可用空间为例演示如何借助分区魔术师无损划分出专供Linux使用的空间并特别强调要将自由空间从Windows扩展分区中剥离避免分区格式不兼容导致Windows运行变慢。引导方面文中对比了双硬盘安装、GRUB接管启动菜单、ntldr/boot.ini引导及不使用引导管理器等多种方案还介绍了创建/boot、swap、根分区及配置GRUB的关键细节能帮助新手避开常见安装陷阱。压缩包仅含1个docx文件约421KB内容集中易读目前已有340人学习适合准备在XP下尝试Linux双系统的新手及需要快速查阅步骤的用户参考。1. 在XP下装Linux双系统真正的门槛是分区不是安装都说 XP 下装 Linux 双系统难点在安装向导那一堆点选操作真自己走一遍就会发现卡人的永远是分区那一步。这篇教程以 Red Hat Linux 9.0 为例讲的是在一台 30GB 硬盘、C/D/E 三个分区的 XP 机器上从 E 盘尾部割出 7GB 空间装 Linux再用 GRUB 或 ntldr 接管双系统启动选单。适合两类人一类手里有老机器想装回 XP 和早期 Linux 怀旧或跑老软件另一类是刚接触 Linux、不想上虚拟机、想在真机里体验双引导的从业者。7GB 在今天看很小但整套分区思路和引导配置逻辑没有变换到 Ubuntu、CentOS 一样成立。2. 给Linux划分领地无损调整E盘并把7GB自由空间从扩展分区剥离2.1 分区前必须理解的一件事自由空间不等于可用空间Linux 无法直接安装在 Windows 的 NTFS 或 FAT32 分区里所以必须先腾出一块不归属任何 Windows 分区的空间。常见做法是用分区魔术师这类无损分区工具在 Windows 里直接调整现有分区大小把尾部空闲空间剥离出来。这里有一个当年的高频误解调整完 E 盘之后多出来的 7GB 显示为“自由空间”很多人以为就可以直接装 Linux 了。实际上这 7GB 还在 Windows 扩展分区内部。Linux 的分区格式是 ext2/ext3引导方式和分区表标记跟 Windows 扩展分区里的逻辑盘并不兼容如果直接把 Linux 装在这个“自由空间”里轻则 GRUB 写入异常重则 Windows 启动变慢。我这么多年装机下来最深刻的感受是这一步不是玄学是分区表结构问题。Windows 的扩展分区是一个容器里面可以拆出多个逻辑分区Linux 需要的是不属于这个容器的独立空闲区。必须先把这 7GB 从扩展分区里“拆”出去变成真正无归属的未分配空间Red Hat 安装器才能干净利落地在里面创建自己的分区。所以这段操作的核心就一句话先缩小 E 盘腾出空间再把腾出的空间从扩展分区容器里剥离。2.2 分区魔术师无损调整E盘的完整操作以一台 30GB 硬盘、C/D/E 三个分区、E 盘 16.6GB约 7GB 可用的机器为例目标是把 E 盘可用空间剥离出来。分区魔术师 8.0 的具体操作如下在 XP 里启动分区魔术师主窗口会列出三块分区和各自的容量柱状图单击右侧窗格里的 E 盘让该分区处于选中状态。单击左侧任务列表里的“调整一个分区的容量”弹出“调整容量/移动分区”对话框。对话框顶部是一条横向条状图左侧黑色条表示已用空间右侧绿色条表示可用空间。直接用鼠标拖曳绿色条左边界把 E 盘容量从 16.6GB 往小调拖到剩余约 9.6GB释放出 7GB。点“确定”回到主界面这时分区列表里会出现一段 7GB 的自由空间。注意观察状态这条自由空间仍然嵌套在扩展分区的条带内说明它还是扩展分区的“一部分”。单击扩展分区Extended Partition把它选中再用同样的“调整容量”操作把这 7GB 自由空间从扩展分区尾部剥离出去。第 5 步就是老教程里反复强调、新手最容易跳过的一步。剥离完成后分区列表里应该是一块不属于任何分区容器的未分配空间这才是 Red Hat 可以下手的“领地”。下表是这套操作前后的分区状态对比项目操作前操作后C 盘主分区大小不变不变D 盘逻辑分区大小不变不变E 盘16.6GB其中约 7GB 可用约 9.6GB只保留已用数据自由空间无7GB位于扩展分区之外分区魔术师执行这类调整时会有 Apply应用环节拖完容量后要确认写入。老版本分区魔术师有时会在应用阶段卡住等的时间比较久别以为是死机看硬盘灯判断。2.3 现在的替代工具DiskGenius怎么做同一件事分区魔术师在 XP 时代是绝对主力但今天已经很少人用了。我一般用 DiskGenius思路一模一样只是交互方式略有差别右键 E 盘选“调整分区大小”在弹出窗口里把目标容量改成 9.6GB。软件会自动算出腾出的 7GB 尾部空闲空间点“开始”执行。执行完后发现这 7GB 仍然位于扩展分区内部接下来选中扩展分区右键“调整分区大小”把扩展分区尾部收缩到 D 盘结束位置从而把这 7GB 从扩展分区里甩出去。DiskGenius 的无损调整速度通常比分区魔术师快但对微软的 BitLocker 加密分区支持有限XP 时代没这个问题现在如果目标盘是 BitLocker 加密的建议先解密再调整。另一个细节调整前一定要做数据备份虽然无损分区成功率很高但断电或意外强制关机时分区表丢一半的后果比“装不上 Linux”严重得多。到这里硬盘准备阶段就结束了一块干净的 7GB 未分配空间等着 Red Hat 安装器来认领。3. 安装Red Hat 9.0定制安装与Disk Druid手工分区的参数3.1 从光盘引导到定制安装把安装过程控制在自己手里Red Hat 9.0 那个年代没有 U 盘安装这回事标准流程是改 BIOS 把光驱设为第一启动设备塞进第一张安装光盘。出现欢迎屏幕后按回车直接进入图形化安装界面。语言选简体中文鼠标键盘配置一般走自动检测正常机器都不需要改。到这里为止都是流水账真正的分水岭在安装类型选择页面。Red Hat 9.0 提供五个选项个人桌面、工作站、服务器、定制、升级现存系统。前三个虽然也能装出可用系统但分区方案是安装器替你决定的比如个人桌面默认会把所有空间挂到根分区服务器默认走 LVM。这种情况下你没法控制 /boot 大小、swap 位置和引导器安装目标。我一般会选“定制”把整个过程拿在自己手里。原因有两个一是可以精确指定在刚腾出的 7GB 里创建分区二是能控制引导装载器的安装位置这对后面要做的双系统引导非常关键。3.2 Disk Druid手工分区的三个必须项目进入分区阶段后安装器默认给两个选择自动分区和 Disk Druid 手工分区。自动分区在你只有一块整盘时还能用但我们现在盘上已有 XP 和 C/D/E 分区自动分区很可能把 Linux 的分区塞到别的地方去所以必须在分区界面选中刚腾出的 7GB 自由空间点“新建”按钮手工创建分区。对新手三个分区就够了见下表分区挂载点文件系统容量建议引导分区/bootext3100MB交换分区无swapswap256MB内存 128MB 时根分区/ext3剩余全部至少不低于 1.5GB/boot 分区存放内核和引导文件100MB 在 9.0 时代绰绰有余即使以后升级内核也不会撑爆。swap 分区没有挂载点也不挂在目录树里它对应 Windows 的页面文件物理内存 128MB 的机器给 256MB 合理内存 256MB 就给 512MB按内存两倍走。根分区挂载到 /用掉 7GB 里剩下的部分。这里有一个当年很多人踩过的坑不要把 7GB 全部分配给根分区。Disk Druid 在计算分区边界和保留块时会因为剩余空间过小而拒绝接受或者在后续格式化时报错。我一般会在根分区大小上手动减掉 20~50MB给系统的分区表预留余量。原文说根分区容量不低于 1.5GB放在 7GB 的总空间里实际就是把 /boot 和 swap 之外的部分全给根分区但记得留一点尾数。3.3 挂载点的含义为什么没有C盘概念创建完三个分区很多人第一次面对挂载点都会愣住Linux 没有 C、D 盘符所有分区必须挂到目录树的某个位置才能使用。根目录 / 是整个目录树的根/boot、/home、/var 这些目录都是挂在 / 之下的分支。这里的关键点是/boot 分区并不在 / 分区内部。它是独立分区系统启动时内核读到 /boot 分区后再挂载 / 分区完成后续启动。这就是为什么要单独划 100MB 给 /boot而不是直接放在 / 里——引导文件和系统文件分开存放便于管理也便于引导器识别。swap 分区更特殊它不参与挂载内核直接通过分区表找到它当内存交换空间用。我当年第一次装的时候想当然地认为“挂载点选 /”就是把分区挂在某个目录下后来才理解这是把整个分区树形的根给钉住。理解这个逻辑后再做 Ubuntu、Debian 的手工分区就完全没有障碍了。4. GRUB接管双系统引导默认启动项、添加Windows与启动盘4.1 GRUB和LILO怎么选Red Hat 7.2 之前默认引导器是 LILO7.2 开始换成 GRUB9.0 理所当然把 GRUB 作为默认。两者都能实现多系统引导但 GRUB 明显更顺手菜单交互式操作改配置不用重新安装引导器LILO 改了内核或分区表之后需要重新执行 lilo 命令才能生效这一步忘掉就会引导失败。GRUB 的优势还在于它支持命令行交互。启动时按 c 进入 grub 提示符可以手动指定内核、initrd 和根分区这对排查启动故障非常有用。所以这篇文章从头到尾都是按 GRUB 来配置双系统LILO 只作为背景知识提一句。4.2 引导配置页面里的三个关键动作安装流程走到“引导装载程序配置”这一步时安装器会自动扫描硬盘上的操作系统。正常情况下列表里会出现两个条目Red Hat 和 WindowsRed Hat 把 Windows 认成 DOS这是当年常见的识别结果。这个页面有三个动作值得细做第一改默认启动系统。默认情况下 GRUB 第一启动项是 Red Hat如果开机频率更高的是 Windows就在 Windows 条目显示为 DOS前勾选“默认”。这一步不做也行装完再改 grub.conf 同样到达但安装界面里改最直观。第二添加漏掉的操作系统。GRUB 的自动探测不是万能的有些机器上 Windows 位于非标准位置或扩展分区前部时可能识别不到。点“添加”按钮在弹出的“映像”对话框里输入标签比如 Windows 98和指定设备Windows 所在分区就能手动补上条目。第三编辑标签。很多人看 GRUB 把 Windows XP 显示成“DOS”很不顺眼点“编辑”把它改成正常名字即可。这一步纯粹是观感问题但对排错有实际意义——后面看启动菜单时清晰的标签能帮你第一时间判断 GRUB 有没有正确识别到 Windows 分区。4.3 安装后改grub.conf与创建启动盘安装完成后GRUB 配置文件在 /boot/grub/grub.confRed Hat 9.0 还会同步维护一个 menu.lst 指到它。老资料里经常把这两个文件名混着写实际内容是一样的。典型配置如下default0 timeout10 title Red Hat Linux 9.0 root (hd0,3) kernel /vmlinuz-2.4.20-8 ro root/dev/hda5 initrd /initrd-2.4.20-8.img title Windows XP rootnoverify (hd0,0) chainloader 1default0 表示默认引导第一个条目timeout10 表示等待 10 秒。如果要把 Windows 设为默认把 default 改成 1。root (hd0,3) 表示 /boot 分区在第一块硬盘的第四分区GRUB 的编号从 0 开始所以 (hd0,0) 是第一块硬盘第一个分区。Windows 条目用 rootnoverify 和 chainloader 1意思是把控制权交给该分区的引导扇区由 Windows 自己的引导逻辑接管。安装过程中最后一步会提示创建启动盘千万不要跳过。这张盘在 GRUB 损坏、分区表被改、甚至 Windows 重装覆盖 MBR 之后都能把你带回 Linux 环境等于给整台机器留了一条地下通道。引导这种东西平时感觉不到存在坏了才知道有多重要。5. 避坑双系统安装最常见的五个翻车点5.1 装完Red Hat后Windows奇慢自由空间没剥离干净现象Red Hat 装完能进Windows XP 也还能进但 Windows 启动速度明显变慢磁盘灯一直亮着过几分钟才好。原因这几乎是“从 Windows 扩展分区内部的自由空间里安装 Linux”的典型症状。Linux 分区仍然处于扩展分区的容器结构里Windows 的卷管理器启动时要额外遍历分区表处理它不认识的 ext3 分区导致初始化变慢。当年很多人把这个锅甩给 Red Hat其实理亏的是分区时少点了一步“从扩展分区剥离”。解决没有捷径只能重新布局。备份数据后用分区魔术师或 DiskGenius 把 Linux 分区从扩展分区里移出来或者干脆重装 Linux安装之前严格确认 7GB 自由空间位于扩展分区之外。这个案例我在虚拟机里复现过剥离前 Windows 开机 1 分半剥离后回到 30 秒内区别是实打实的。5.2 只有GRUB没有WindowsWindows消失在启动菜单里现象装完 Red Hat 重启GRUB 菜单只有 Red Hat 一行Windows XP 不见了选都选不到。原因GRUB 的自动探测依赖分区类型识别。Windows 安装在主分区且文件系统是 NTFS 或 FAT32 时正常能被识别如果 Windows 装在逻辑分区里、或者分区表有异常标记GRUB 就发现不了。也可能是安装时自动探测的结果被误伤了Windows 条目存在但是标签和实际设备不符。解决在 grub.conf 里手动加 Windows 条目。先确认 Windows 所在分区比如在第一块硬盘第一个分区就是 (hd0,0)然后补上title Windows XP rootnoverify (hd0,0) chainloader 1配合一个经验链条加载chainloader时rootnoverify 后面的分区编号必须精确到分区而不是整块硬盘。写错的话要么提示 loading 失败要么直接跳回 GRUB 菜单。5.3 引导器互相覆盖GRUB和ntldr打架现象先装 Windows 再装 Red Hat一切正常或者先装 Red Hat 再装 Windows开机直接进 WindowsGRUB 菜单不见了。原因两个系统都往主引导记录 MBR 里写自己的引导器。后装的系统会覆盖先装系统的 MBR这是双系统引导最常见的翻车现场。GRUB 装好后Windows 安装程序会认为 MBR 里没有 Windows 引导记录于是毫不客气地重写。解决遵循安装顺序约定。用 GRUB 做引导器时先装 Windows后装 Linux让 Linux 安装器把 GRUB 写入 MBR它会自动识别已有 Windows 并生成双系统菜单用 ntldr 做引导器时则反过来先装 Linux 备份引导扇区再装 Windows具体做法下一章展开。如果不幸已经覆盖了用 Red Hat 第一张安装光盘进入 linux rescue 模式执行 grub-install /dev/hda 就能恢复 GRUB。5.4 没做启动盘GRUB坏了之后无路可走现象某次调整分区、重装 Windows 或者 grub.conf 写错后开机停在 grub 提示符不知道怎么进去。原因没有创建启动盘也没有 Linux 安装光盘在手边引导坏了就彻底失去进入系统的通道。当年很多人觉得启动盘没用真到引导器出问题的关键时刻才意识到那是唯一的后悔药。解决安装 Red Hat 时最后一步提示“创建启动盘”软盘或光盘介质都行。如果已经装完没做盘用第一张安装光盘引导输入 linux rescue然后 chroot /mnt/sysimage 回到硬盘环境重装 GRUB 或者修复 grub.conf。这个过程中的 mount、chroot 操作是 Linux 维护的基本功值得单独练一遍。5.5 swap过小或缺失装软件时内存告急现象系统能启动但一跑编译或者装软件就报 cannot allocate memory页面交换频繁机器像死了一样卡。原因swap 分区没建或者建得太小。Red Hat 9.0 时代内存普遍偏小128MB 甚至 64MB 的机器很常见swap 是缓解内存压力的核心手段。有人觉得“不用休眠就不需要 swap”直接把 swap 省了结果第二个用户进程就把内存吃满。解决swap 按物理内存的 1.5~2 倍创建。内存 128MB 给 256MB256MB 给 512MB。老机器如果跑的是图形界面建议在此基础上加大因为 X Window 本身就是内存大户。确定公式以后在 Disk Druid 里把 swap 分区的容量填够别在这个环节节省空间否则后面补 swap 要动分区表折腾成本高得多。6. 不用GRUB的另一条路ntldr引导Linux的备份配置技巧6.1 Linux侧备份dd命令一行搞定GRUB 全家桶并不是唯一解。如果删 Linux 的频率高于切系统或者不想让 GRUB 占着 MBR可以把引导权还给 ntldr让 Windows 的 boot.ini 来接管双系统。原理不复杂ntldr 无法 Linux 分区但它可以引导一个普通的引导扇区文件。把 Red Hat 的引导扇区备份为文件塞进 boot.ini 指向它启动时 ntldr 把控制权交给这个文件Linux 就被带起来了。先装 Red Hat假设安装到 /dev/hda6/boot 分区也在这一块进系统后执行dd bs512 count1 if/dev/hda6 ofbootsect.rhbs512 表示一次读写一个扇区的字节数count1 表示只读一个扇区if/dev/hda6 是引导扇区所在设备ofbootsect.rh 是输出文件名。这条命令把 Linux 引导扇区原样拷贝成 512 字节文件然后拷贝到 C 盘根目录。执行前用 fdisk -l 确认 /boot 所在分区号写错设备后果自负。6.2 Windows侧备份分区魔术师查扇区Dskprobe保存如果不想先进 Linux 敲命令也有纯 Windows 环境下的下载。用分区魔术师定位 Linux 的 /boot 分区右键打开 Partition Properties切到 Partition Info 标签页找到 First physical sector 数值比如 53014500。然后打开 Dskprobe在 Windows 安装光盘的 /SUPPORT/TOOLS 目录下先关闭分区魔术师选 Drives → Pysical Drive打开 PhysicalDrive0点 Set Active 确认再用 Sectors → Read 读扇区Starting Sector 填入 53014500Number of 填 1读出引导扇区后 File → Save as 保存为 bootsect.rh。引导扇区文件到手后编辑 C 盘根目录的 boot.ini去掉只读和隐藏属性加一行[operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWSMicrosoft Windows XP Professional /fastdetect C:\bootsect.rhRed Hat Linux 9.0保存后把 boot.ini 和 bootsect.rh 的属性都改回去。重启就能看到 Windows 启动选单里多了一个 Red Hat Linux 9.0选它就进 Linux。这套方案最省心的地方以后删 Linux直接删分区、删 boot.ini 对应行MBR 干干净净不用跟 GRUB 纠缠。从那以后我每次装双系统无论主引导器选哪个都会先做一份引导扇区备份留着当后悔药。引导这种事备了用不上最好真到用时才知道这份文件能省一晚上的折腾。希望帮到你。本文还有配套的精品资源点击获取