简介面向仍在使用 Windows XP、同时希望体验 Linux 的入门用户这份《在XP下装linux 双系统》文档以 Red Hat Linux 9.0 为例围绕双系统安装前的空间规划、引导管理器选择与旧平台兼容问题展开适合想保留原系统并了解开源桌面环境的学习者参考。包内共 1 个 docx 文件约 421KB内容集中便于按主题查阅。已有 340 人学习下载。文档涉及分区魔术师无损划分空间、将自由空间从 Windows 扩展分区剥离、GRUB 接管启动菜单以及安装类型、引导分区、交换分区和根分区配置等关键环节还比较了双硬盘、NT 引导与不安装引导装载器等方案并提示分区不兼容可能引发的性能问题可帮助读者理解双系统方案的取舍、维护成本、风险点与排错方向对准备在旧机器上尝试双系统的读者尤具参考意义。1. 装完双系统 Windows 反而变慢先搞清那 7GB 是从哪儿割出来的给 Windows XP 配一台 Linux 双系统真正折腾人的从来不是光盘引导那几分钟而是装完之后的两三周Windows 越用越慢、磁盘动不动就报满、开机还得多看一眼菜单才敢按回车。这类故障在只有一块 30GB 硬盘、早就分好 C/D/E 三个区的老机器上特别常见难受的地方在于它不报错没有任何提示你只能凭感觉怀疑是不是 Linux 把机器拖慢了。实际上根子几乎都在安装前那一刀所谓给 Linux 划 7GB绝大多数人只是把 E 盘的容量改小了那 7GB 还挂在 Windows 的扩展分区里没出来。这篇按分区怎么切、系统怎么装、引导怎么配、出错怎么查的顺序捋一遍适合第一次做双系统、或者已经装完但机器变慢、卡在引导菜单进不去的人照着核对。2. Windows 越用越慢、磁盘像被吃掉自由空间没从扩展分区剥离2.1 划出 7GB 与 Linux 能用这 7GB 是两件事DOS 风格的分区表把一个硬盘最多切成四份其中一份可以做成扩展分区扩展分区本身不存数据它只是个容器真正的 D 盘、E 盘是装在这个容器里的逻辑分区。你在分区工具里把 E 盘从 16.6GB 缩到 9.6GB那多出来的 7GB 只是在容器内部空出了一块地方它依然属于扩展分区——分区表上写着这块地归扩展分区管只是暂时没分配给某个逻辑盘。Linux 的 ext3、swap 分区格式和 Windows 那一套完全不兼容安装程序读到扩展分区这一层就不往下走了自然会认为没有可用空间。更麻烦的是剥离不彻底时的副作用。逻辑分区的起始位置是记在扩展分区内部一条链式结构上的从中间挖走一块会让这条链多出一段跳跃加上 Linux 分区对 Windows 来说是未知类型磁盘检查、碎片整理、系统还原碰到它会反复试探和跳过。很多朋友装完 Linux 发现 XP 慢得像换了个机器一口咬定是 Linux 抢了资源其实换个分区顺序重装一遍就好了跟 Linux 本身没半点关系。这一点在只有一块硬盘、又急着装系统的场景里最容易漏属于典型的当下省一步、后面查三天。2.2 把自由空间从扩展分区里剥离四步操作与验证动手之前先在 XP 里把 E 盘清空到目标大小以下再做一次磁盘碎片整理让已用数据尽量靠在分区前部——分区工具拖动容量边界时如果数据正好压在那条线上它会拒绝执行或者要求先移动数据耗时能翻好几倍。这一步很多人跳过然后在工具里拖不动条子又回头怀疑工具版本有问题。接着打开分区工具按下面的顺序操作主窗口右侧选中 E 分区左侧任务列表点调整一个分区的容量在弹出的对话框里把右边界往左拖直到释放出 7GB顶部的条状图里黑色是已用、绿色是可用拖到黑色条右侧刚好留一点余量最稳点确定回到主界面此时会看到一块新出现的自由空间但注意看它的外框——如果它还在扩展分区那个大矩形里面说明只是从逻辑盘里让出来了没真正剥离选中扩展分区本身不是里面的某个逻辑盘再执行一次调整容量/移动分区把扩展分区的右边界收到自由空间左侧让那 7GB 落到扩展分区之外点应用工具会把操作排进队列通常需要重启在进入系统前的那一段完成实际写入中途断电基本等于分区表报废。操作完成后想确认结果最省事的办法是开一个命令行窗口用系统自带的磁盘管理命令看一眼分区归属diskpart list disk select disk 0 list partition exitlist disk列出物理磁盘单硬盘机器只有一块双硬盘要按容量核对select disk的编号别选错list partition输出的分区列表里扩展分区会以扩展类型单独占一行如果新划出来的空间没被它包含就会显示成独立的一项。这个命令只读不写先看清楚再动手比在图形界面里凭颜色猜靠谱。2.3 剥离成功与失败的两种磁盘视图剥离成功的标志是在磁盘管理里那块空间显示为黑色边框的未指派任何分区都不包含它。剥离失败的标志很明确那块空间仍然被绿色或蓝色的扩展分区外框包着磁盘管理里显示成可用空间而不是未指派分区工具主界面上它也没有跳出扩展分区那个大矩形。这两种状态在图形界面上差别很小一不小心就看过去了所以我的习惯是改完分区一定回到列表视图核对一次类型字段而不是只看颜色块。还有一个反直觉的点如果你打算把 Linux 装在第二块硬盘上就完全不用做剥离这一步第二块盘本来就是独立的直接在安装程序里选它即可。真正需要剥离的只有同一块硬盘上再切一块给 Linux这一种情况。判断标准很简单——安装程序的分区界面里那块空间是独立条目还是缩在扩展分区下面一眼就能看出来。3. 安装程序报没有可用空间Linux 分区在 Disk Druid 里怎么划3.1 看不到自由空间的三类原因光盘引导进入图形安装界面、选完语言和键盘、一路点到分区这一步最常见的翻车就是用 Disk Druid 手工分区进去以后那 7GB 根本没出现在列表里。按我踩过的次数排原因基本集中在三类。第一类是上一节说的没剥离空间还挂在扩展分区下安装程序直接忽略。第二类是分区表没真正落盘分区工具的操作队列只执行了一半或者执行完没重启就让安装盘接管读到的还是旧分区表这种情况重新进一次 XP 确认磁盘管理视图正常再引导安装盘即可。第三类是多硬盘场景下选错了盘Disk Druid 默认展示的可能不是你要装的那块界面上方一般有磁盘切换的下拉框切过去看看那块 7GB 是不是在另一块盘上。还有一种容易被忽略的硬盘上已经有四个主分区了。老式分区表的主分区上限是四个扩展分区占掉一个名额剩下的位置不够再建主分区安装程序不会明说原因只是反复提示无法创建。碰到这种情况要么把某个主分区改成逻辑分区腾名额要么老老实实把 Linux 装到第二块硬盘上。这类问题没有报错码只能靠分区表结构自己数。3.2 /boot、swap、/ 三个分区的容量和文件系统怎么定对第一次装的人三个分区足够用多了反而容易乱。容量和文件系统按下面这张表定数值是当年 128MB 内存、30GB 硬盘这种配置下的稳妥选择挂载点文件系统建议容量说明/bootext3100MB存内核和引导文件必须靠磁盘前部swapswap256MB无挂载点容量取内存的 2 倍左右/ext3剩余容量减 50~100MB根分区不低于 1.5GB/boot 单独分出来、并且放在磁盘靠前的位置是老机器上的血泪经验。早期 BIOS 通过中断读取磁盘时只能寻址到 8GB 以内的范围内核文件要是被放到了 8GB 之后引导阶段读不出来表现就是 GRUB 菜单出来了、选了 Linux 之后黑屏或者只剩一个光标在闪一点提示都没有。把 /boot 放在最前面这个问题直接绕开。swap 没有挂载点这个概念它类似于 XP 的页面文件作用是内存不够时把不常用的内存页换到磁盘上。容量按内存两倍给是个经验值128MB 内存给 256MB 足够给太多纯属浪费空间给太少在编译或者开多个程序时会频繁换页机器卡到怀疑人生。根分区用 ext3 而不是更早的 ext2主要图它带日志断电后恢复快不用每次跑一遍漫长的磁盘检查。3.3 根分区填满剩余容量就报错容量对齐与预留安装程序提示无法分配所请求的分区或者容量数值变红八成是因为把剩余空间一分不剩全给了根分区。Disk Druid 在写入分区表时要按柱面或者磁道边界对齐你填的容量和它实际能分配的容量之间差那么一点点填满就没有余量可对齐于是直接拒绝。留 50 到 100MB 不分配问题消失。装完之后回到系统里用两条命令确认分区是否按预期挂上df -h # 看各分区容量和挂载点是否与规划一致 cat /etc/fstab # 看开机自动挂载的配置根分区和 /boot 都应在列 free -m # 看 swap 是否被识别total 一栏应等于你划的容量df -h的挂载点一栏如果出现 /boot 和 /说明两个分区都建对了如果只有 / 而没有 /boot说明当初没单独分属于可接受但不推荐的做法。free -m的 Swap 行如果是 0说明 swap 分区建了但没启用或者根本没建成需要回分区界面复核。/etc/fstab里每一行是设备 挂载点 文件系统 选项 备份标记 检查顺序六段第三段写错会导致开机进不了图形界面改之前先备份一份。4. 开机直接进 Windows、GRUB 菜单不出现引导装载器装哪儿4.1 装 MBR 还是装分区引导扇区引导装载器装在哪儿决定了你开机第一眼看到什么也是双系统方案分岔的地方。装在主引导记录MBR上开机 BIOS 读完硬盘第一个扇区就直接进 GRUB由它列出 Windows 和 Linux 让你选装在 Linux 所在分区的第一个扇区分区引导扇区上MBR 还是 Windows 原来的东西开机会直接进 XPLinux 的引导代码要靠别的方式触发。两种都能用区别在于谁来当总调度。选 MBR 的好处是配置简单安装程序自动扫描硬盘上已有的系统并写进菜单装完就能用。代价是 Windows 的引导程序被顶掉了将来想删掉 Linux 只留 XP得用 XP 安装光盘进恢复控制台跑fixmbr和fixboot把引导记录写回去否则机器起不来。选分区引导扇区的好处正好相反删 Linux 只要把 boot.ini 里加的那一行删掉就行符合 Windows 用户的使用习惯代价是配置步骤多还得手动把引导扇区备份成文件。这里有个判断标准值得记一下如果你只是短期试水、随时可能把 Linux 删掉走分区引导扇区那条路如果打算长期两个系统都用装 MBR 更省心。别两边都装那样 GRUB 会被自己的两份配置搞糊涂症状是菜单出现两次或者选中后跳回菜单。4.2 双硬盘用 BIOS 切盘引导手上有两块硬盘的话最省事的方案是把 Linux 整块装到第二块盘上引导装载器也装在第二块盘的 MBR。开机时按 Del 或 F2 进 BIOS在启动顺序里选从哪块盘引导选中哪块就进哪个系统。这种做法的好处是两个系统彻底隔离一块盘的分区表坏了不影响另一块删系统也不用改任何配置文件坏处是每次切换要进 BIOS麻烦。嫌麻烦可以在 GRUB 里用磁盘映射把两块盘的身份临时对调让 Windows 以为自己还在第一块盘上title Windows XP map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd0,0) chainloader 1map两行是把第一块和第二块硬盘的编号互换让后续的 chainloader 按 Windows 熟悉的编号去找引导扇区两行必须成对出现且顺序相反少一行就等于没映射。rootnoverify指定 Windows 系统分区所在位置(hd0,0) 表示第一块硬盘的第一个分区注意 GRUB 的编号从 0 开始和 Windows 的 C 盘是第 1 个分区对不上写错就报 Invalid device requested。chainloader 1的意思是把控制权交给这个分区第一个扇区里的引导代码Windows 的引导记录就在那儿。4.3 手动添加系统和改默认项grub.conf 逐行解释安装程序不一定能认全硬盘上的系统尤其是装过多个 Windows 版本或者分区表比较花的机器。菜单里少了某一项就要进配置文件手工加。配置文件在/boot/grub/grub.conf有些发行版用/boot/grub/menu.lst这个名字两个文件内容格式一样后者常常是指向前者的符号链接改哪个都行改之前先cp一份备份。# /boot/grub/grub.conf 关键片段 default1 # 默认启动第几项从 0 开始数1 表示第二项 timeout10 # 菜单停留秒数设 0 表示不等待直接进默认项 splashimage(hd0,0)/grub/splash.xpm.gz title Windows XP rootnoverify (hd0,0) chainloader 1 title Linux 9.0 root (hd0,2) # 根分区所在位置按实际分区调整 kernel /vmlinuz-2.4 ro root/dev/hda3 initrd /initrd-2.4.imgdefault的数字是菜单项的顺序号不是分区号改默认启动系统就改它安装程序默认把 Linux 放在 0想开机默认进 XP 就改成 1。timeout设成 0 看着省事实际上等于把后悔药扔了——手一抖选错系统都没机会改建议留 10 秒。title后面的文字就是菜单上显示的名字安装程序常把 XP 认成 DOS直接在这里改成自己想要的名字比装完再折腾省事。kernel那一行的root/dev/hda3必须和root (hd0,2)指向同一个分区两套编号体系一个是 GRUB 的、一个是内核的对不上就会在挂载根文件系统时失败报 Kernel panic: VFS: Unable to mount root fs看到这个提示基本可以直接判定是这行写错了。改完保存重启验证。4.4 启动盘这个后悔药什么时候做安装过程的最后几步会提示创建一张 Linux 启动盘很多人嫌麻烦直接跳过然后在引导配置出错、系统进不去的时候抓瞎。这张软盘里装的是一份最小的引导环境能从它启动并挂载硬盘上的系统用来修复引导、备份数据、重装 GRUB。引导配置已经改好了才想起来没做盘也别急进系统后用这条命令补一张uname -r # 先确认当前内核版本号 mkbootdisk --device /dev/fd0 2.4.20-8 # 把该版本内核写入软驱uname -r的输出就是要填给 mkbootdisk 的版本号两者必须完全一致多一个字符都会提示找不到内核文件。--device /dev/fd0指软驱设备写之前确保软盘没写保护、里面没重要数据。这张盘只在引导层面救急用系统文件损坏它救不了别指望太多。5. 双系统引导失败排查五条踩坑记录从现象到解决5.1 坑一boot.ini 加了条目重启后条目消失现象是编辑完 boot.ini、保存、重启启动菜单里根本没有新加的那一项或者过几天再打开文件发现改动没了。原因有两层。一是这个文件带隐藏、系统、只读三个属性用记事本直接改保存时会被系统拦下或者写到临时文件里看起来改成功了其实没落盘。二是改完没把属性改回去某些系统还原或者磁盘检查会把它当成异常文件重置。解决方式是把改属性这一步固化成习惯attrib -h -s -r C:\boot.ini # 去掉隐藏、系统、只读才能编辑 # 编辑保存 attrib h s r C:\boot.ini # 改完立刻加回去-h -s -r三个开关分别对应隐藏、系统、只读顺序无所谓缺一个都可能保存失败。改回去这一步别省boot.ini 被误删或改坏机器连安全模式都进不去只能上恢复控制台。编辑的时候用记事本别用带格式的编辑器它只认纯文本。5.2 坑二菜单里选了 Linux黑屏只剩光标现象是启动菜单正常出现选中 Linux 那一项回车屏幕一黑左上角一个光标一直闪硬盘灯也不怎么亮。原因按可能性排序内核文件放在了 8GB 之后 BIOS 读不到这是最常见的一种kernel行里的根分区写错内核起来了但找不到根文件系统/boot分区没单独分内核文件散落在根分区里而 GRUB 又按 /boot 的路径去找。解决方式先排除分区位置问题把 /boot 放到磁盘最前面重装一次最快。如果是配置写错用启动盘引导进系统核对df -h里 /boot 的实际挂载点再按 4.3 节的方法把root (hdX,Y)和root/dev/hdaX两处改成一致。改配置文件前先备份改错了至少还能用启动盘救回来。5.3 坑三先装 XP 后装 Linuxntldr 直接被顶掉现象是本来想用 Windows 的引导程序来管双系统结果装完 Linux 一重启直接进 GRUB 菜单boot.ini 里加的东西完全没生效。原因是安装程序默认把引导装载器写到 MBR把 Windows 的引导记录覆盖了。顺序上如果先装 Linux 再装 XPXP 安装程序会毫不犹豫地把 MBR 抢回去结果一样是引导乱了。解决方式是装 Linux 时在引导配置那一步明确选不安装引导装载器或者安装到分区第一个扇区。已经装完了的用 XP 安装光盘进恢复控制台把引导记录写回去fixmbr # 重写主引导记录 fixboot C: # 重写 C 盘分区引导扇区按实际系统盘调整fixmbr会提示确认输入 y 继续这个操作只重写引导代码不动分区表数据是安全的。fixboot后面跟的是系统盘符写错会把别的分区引导记录搞坏敲之前多看一眼。执行完重启菜单回到 XP 那套再按下面的方法把 Linux 加进去。5.4 坑四dd 出来的 bootsect.rh 拷过去不能用现象是严格照着步骤做了boot.ini 也加了条目重启选 Linux 之后提示找不到文件或者选了之后黑屏。原因通常是 dd 的源设备写错了。if/dev/hda6指的是 Linux 装在哪个分区但真正需要备份的是 /boot 分区——如果 /boot 单独分了区那源设备应该是 /boot 那个分区只有没单独分 /boot 的时候才是根分区。另外 dd 在老内核里硬盘叫 hda新一点的叫 sda写错设备名会得到一个全是零的文件。正确的做法是进 Linux 后先确认 /boot 挂在哪df -h /boot # 确认 /boot 对应的设备名 dd bs512 count1 if/dev/hda6 ofbootsect.rh # 按上一步的结果替换设备名bs512表示一次读写 512 字节正好是一个扇区的大小count1表示只读一个扇区引导记录就在这一个扇区里读多了没用还容易把文件搞大if是输入设备of是输出文件两个参数写反了会直接往分区里写垃圾数据。生成的文件拷到 C 盘根目录后在 boot.ini 的[operating systems]段落下加一行[boot loader] timeout10 defaultmulti(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWSWindows XP /fastdetect C:\bootsect.rhLinux 9.0路径分隔符必须是反斜杠网上流传的版本里有写成C:/bootsect.rh的那个写法在 boot.ini 里不认是黑屏的常见原因之一。multi(0)disk(0)rdisk(0)partition(1)这套写法里 partition 从 1 开始数和 GRUB 从 0 开始是两套体系别混用。等号后面引号里是菜单上显示的名字随便改等号前面必须和文件实际位置对得上。不方便进 Linux 的话在纯 Windows 环境里也能抓这段引导扇区用分区工具打开 /boot 分区的属性在分区信息页找到第一物理扇区这个数值并记下来然后用系统安装光盘里 SUPPORT 目录下的磁盘编辑工具指定那块物理硬盘、点 Set Active 激活句柄再从指定扇区读 1 个扇区另存为 bootsect.rh。这一步的关键是那个扇区号是绝对编号不是分区内的相对偏移抄错一位读出来就是别人的数据。5.5 坑五装完忘记做启动盘进不去系统也删不掉 Linux现象是引导配置改坏了机器起不来手上又没有启动盘只能重装整个硬盘。原因是很多人把启动盘当成可选项等到需要的时候才想起它不存在。解决方式只有一个——装系统的最后一步老老实实插张软盘做出来或者装完后用 4.4 节那条命令补一张然后把它贴张标签收进抽屉。真到了没盘又进不去的地步还剩一条路用 Linux 安装光盘进救援模式挂载根分区后重新执行引导安装命令把 GRUB 写回去代价是要找得到那张光盘。6. 快速定位从黑屏或直接进 XP到找到根因的 60 秒顺序引导类故障看着玄学其实线索全在卡在哪一屏上。我现在的习惯是先确定故障停在哪一层再决定翻哪本账不从头到尾乱猜。卡住的画面先看什么大概率原因开机直接进 XP无任何菜单分区工具里引导装载器装的位置装到了分区引导扇区或者 boot.ini 条目没生效出现菜单选项里缺 Windowsgrub.conf 的 title 段安装时没扫描到需手工补 chainloader 项选项菜单出现选完黑屏/boot 所在位置内核在 8GB 之后或 kernel 行根分区写错选了 Linux 提示找不到文件boot.ini 里那条路径斜杠方向写错或 bootsect.rh 没放在 C 盘根目录进了系统但 Windows 变慢分区工具的分区归属视图自由空间没从扩展分区剥离出去顺序上先分层再深挖。第一层看有没有菜单没菜单说明引导权在别人手里去查 MBR 和 boot.ini有菜单但缺项说明识别问题去补配置。第二层看选中之后走多远立刻黑屏是引导代码的问题闪一下就重启多半是内核读不出来卡在挂载根分区是 kernel 行写错。第三层才是进系统之后的表现慢、卡、磁盘异常这些回头查分区结构别一上来就怀疑系统本身。验证的时候尽量用能给出确定答案的手段不要靠肉眼比对颜色块。df -h看挂载、free -m看 swap、diskpart看分区归属三条命令覆盖了绝大多数是不是按计划装好了的疑问。改动配置文件之前一律先备份用启动盘做兜底这两条做到了最坏结果也就是重来一遍不至于整盘报废。从那以后我每次给人装双系统都强制走一遍固定顺序先确认分区剥离干净、再确认 /boot 在前 8GB、最后确认启动盘做出来了三步全部打勾才动手装。希望帮到你。这套流程里每一步的操作位置、两套引导方案的分支判断、以及上面那张现象对照表我都整理进了下载包动手前对着核一遍比装到一半再回头翻资料省事。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?