ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Windows与Linux双系统安装:硬盘分区、GRUB引导与避坑指南

Windows与Linux双系统安装:硬盘分区、GRUB引导与避坑指南

简介:这份文档面向希望在保留 Windows XP 的同时体验 Linux 的桌面用户与入门学习者,以 Red Hat Linux 9.0 为例,讲解从划分磁盘空间到完成双系统引导的完整流程。压缩包内为 1 个 docx 文件,约 421KB,篇幅集中,便于按步骤查阅。内容围绕用分区魔术师无损调整分区、将自由空间从 Windows 扩展分区中剥离出来、选择 GRUB 或 NTLDR 等双重引导方案展开,并详细讲解定制安装、用 Disk Druid 手工创建 /boot、swap 与根分区、配置默认启动项及修改 grub.conf 等关键环节。已有 340 人学习下载,适合需要一份可对照操作的旧平台双系统装机参考,也能帮助读者理解分区格式兼容与引导装载器配置中的常见问题。

1. 先弄明白一件事:Windows 和 Linux 双系统到底在硬盘上做了什么

很多人第一次听说「Windows 和 Linux 双系统」,脑子里浮现的画面是把两个系统像两个软件一样塞进同一个文件夹,点哪个图标就进哪个。真到动手那天才发现,硬盘上根本没有「文件夹」这回事——两个系统各自要占一块互不重叠的地盘,还得有个角色在开机那几秒钟替你做选择。所谓 Windows + Linux 双系统,说白了就是在一台机器上划出两块地,再让一个叫引导管理器的角色在开机时问你一句:今天进哪边?这份材料走的就是从 Windows XP 里划地、装 Red Hat Linux 9.0、再到配好启动菜单的完整入门路径,适合手上有台老机器、想在不丢掉 Windows 的前提下摸一摸 Linux 的人。

2. 值不值得动手:双系统能给你什么,以及动手前要盘的三样家底

2.1 虚拟机这么方便,为什么还有人真要装一遍

先说一句可能劝退的话:如果你手上是一台内存足够大的新机器,装个虚拟机跑 Linux,体验会轻松很多,坏了大不了删掉重来。但这份材料描述的场景不一样——它假设的是一台内存 128MB 级别的老机器。在这个配置下跑虚拟机,光是宿主系统就吃掉大半内存,Linux 图形界面能把你卡到怀疑人生。双系统的价值就在这儿:两个系统各自独占整台机器,谁也不跟谁抢内存和 CPU,速度是实打实的。

第二个理由更微妙一点,是心理上的。虚拟机里你把系统点坏了,快照一回滚,几秒钟复原,什么都学不到。双系统不一样,分区划错、引导装错、启动盘没做,代价就是开机进不去系统,得拿光盘救。这种没有后悔药的压力,反而会逼着你把每一步的原理搞清楚。我带过的新人里,凡是在真机上装过一遍的,对分区表、引导记录这些概念的记忆都特别牢。

第三个理由是环境要求。有些课程、有些岗位的练习环境就是要求你在裸机上跑 Linux,虚拟机里的网络、磁盘、硬件识别跟真机不完全一样。早点在真机上折腾一次,以后遇到「虚拟机里好好的,换台机器就起不来」这类问题,心里不慌。

但也要说清楚不适合谁:如果你的日常软件全都绑在 Windows 上,机器又只有一块硬盘、空间紧巴巴,那折腾双系统的收益并不高;如果你连「分区」是什么都还没概念,建议先把这份材料读完再决定,别急着动手。

2.2 动手前先盘三样家底:空间、内存、启动介质

装双系统翻车的人里,有一大半不是技术不行,是动手前没数清楚自己有什么。按这份材料的路子,你需要先确认三件事。

第一是硬盘上有没有一块能腾出来的连续空间。原文的例子是 30GB 硬盘、分 C/D/E 三个区,其中 E 盘 16.6GB、可用约 7GB,目标是把这 7GB 剥出来给 Linux。你照着做之前,先打开「我的电脑」看一眼各盘剩余空间,确认要割的那个盘可用空间够,而且里面的东西不是非留不可。

第二是内存多大。这个数字直接决定交换分区(swap)要划多少。原文的假设是 128MB 内存,所以交换分区给 256MB,也就是内存的两倍。这个换算关系在入门阶段够用了,你按自己机器实际情况乘一下。

第三是启动介质。装 Red Hat Linux 9.0 需要有安装光盘,而且光驱得能引导。装完之后还要做一张 Linux 启动盘——这张盘平时用不上,出事了就是救命的那根绳,后面第 5 章会专门讲为什么。

要盘的东西怎么查入门建议
硬盘可用空间我的电脑里看各盘剩余容量至少腾出 5GB,原文例子给 Linux 7GB
物理内存右键我的电脑 → 属性128MB 内存对应 256MB 交换分区
光驱能否引导开机进 BIOS 看启动顺序里有没有光驱装系统前必须先改成光驱优先
安装光盘数一数手里有几张引导和安装都从第一张盘开始

表格里最后一行容易被忽略:很多人光盘拿到手就直接往光驱里塞,结果开机还是进了 Windows。不是盘坏了,是 BIOS 里的启动顺序没改。这件事放到第 4 章第一步去做,先记着有这么个环节。

2.3 三条路摆在面前,先选一条再动手

在真正开干之前,其实有三条路,选错了会白折腾很久。

第一条是虚拟机,优势是零风险,缺点是吃内存、跟真机有差异。第二条是双系统,也就是这份材料讲的路子,优势是真实、独占硬件,缺点是要动分区,动错了有数据风险。第三条是干脆把整块盘格了只装 Linux,优势是最干净,缺点是你 Windows 上的东西就全没了,对新手不推荐。

我一般建议的顺序是:先按这份材料在真机上装一次双系统,把分区、引导这些概念打通;等用熟了,再考虑要不要把 Linux 变成主力,或者退回去用虚拟机做日常试验。别一上来就想着一步到位。

3. 第一步怎么迈:从 Windows 里给 Linux 划出 7GB 的地盘

3.1 打开分区魔术师,从 E 盘拖出那块空间

Linux 装不进 Windows 的分区,这是绕不过去的前提。Windows 用的是自己那套分区格式,Linux 认不全,所以必须先在硬盘上单独割一块地出来。原文推荐的做法是用分区魔术师做无损分区——所谓无损,就是调整分区大小的时候不会把你原有的文件弄丢,这比格式化重装友好太多了。

具体操作按原文的实例走一遍。假设你的机器有一块 30GB 硬盘,分成了 C、D、E 三个区,E 盘 16.6GB,里面有大约 7GB 可用空间,目标是把这 7GB 剥出来。

第一步,在 Windows XP 里启动分区魔术师,主窗口会列出磁盘分区的详细信息,右侧是详细窗格。单击分区 E 选中它。

第二步,在左侧任务列表里点「调整一个分区的容量」,会弹出一个「调整容量/移动分区」的对话框。

第三步,对话框顶部有一条条状图表示分区 E 的使用情况:左边黑色部分是已用空间,右边绿色部分是可用空间。你可以直接用鼠标拖那个绿色条来调整 E 盘的容量。这里有个下限必须记住——E 盘的最小容量就是已用空间的大小,再小就要破坏原有数据了。所以你拖动的时候看着那个黑色条的右边缘,别越过去。

第四步,点「确定」,回到主界面。这时候你会看到多出来一块 7GB 的自由空间。到这一步,很多新手会以为活儿干完了,直接去装 Linux——这正是下一节要讲的坑。

整个过程里最容易出错的地方是「拖多少」。原文的例子是 7GB,你可以按自己的规划来,但给 Linux 的空间别抠得太死:根分区本身建议不低于 1.5GB,还要留出交换分区和引导分区,再加上以后装软件、存文件,5GB 是个下限。空间给少了,系统装到一半报「空间不足」,前面划的地白划。

3.2 把自由空间从扩展分区里剥离:这一步跳过会出大问题

第四步得到的 7GB 自由空间,看起来已经「自由」了,但它还挂在一个地方——它仍然属于 Windows 的扩展分区。这是整份材料里最关键的一句话,我把它单独拎出来讲。

要理解这件事,先得知道 Windows 硬盘分区的层级关系。一块硬盘上最多能有四个主分区,但很多人分区不止四个,怎么办?办法是把其中一个主分区变成「扩展分区」,扩展分区本身不直接存数据,它像一个容器,里面可以再切出若干个逻辑分区。你平时看到的 D 盘、E 盘,很可能就是扩展分区里的逻辑分区。

问题就出在这儿:如果你只是把 E 盘缩小,多出来的 7GB 依然待在这个「容器」里,将来 Linux 装进去,它就变成了扩展分区下面的一个逻辑分区。按原文的说法,Linux 的分区格式和 Windows 并不完全兼容,地盘还归 Windows 的扩展分区管着,就会「水土不服」。很多人在装完 Red Hat 之后发现 Windows 慢得离谱,第一反应是「Linux 把系统拖累了」,其实根子在分区那一步没做干净。

所以正确做法是接着做第五步:在主界面里单击扩展分区选中它,用跟前面类似的方法,把这 7GB 自由空间从 Windows 扩展 DOS 分区里划分出去。做完之后,这块空间才真正独立,不属于任何 Windows 分区。

提示:判断有没有做对,看分区魔术师主界面的分区列表——那 7GB 应该是独立的一行「未分配」空间,而不是缩在扩展分区那一项的里面。

这一步的操作本身不复杂,复杂的是「想不到要做」。因为界面上那块空间已经显示成「自由」了,肉眼看着挺独立,实际归属没变。我见过有人装了三遍系统都没搞明白为什么 Windows 越来越卡,最后回头一看,分区结构还是老样子。

3.3 分区之前,先把这张清单走一遍

分区这件事,做对了没感觉,做错了就是数据没了。所以在点下「确定」之前,按下面这几条走一遍,花不了二十分钟。

第一条,把重要的文件拷到别的地方。移动硬盘、U 盘、另一台机器都行,别嫌麻烦。分区魔术师号称无损,但「无损」的前提是操作正确、中途不断电、硬盘没坏道。这三个前提你控制不了全部。

第二条,记下现在的分区结构。哪个盘多大、什么格式、哪个是主分区哪个是逻辑分区,拿张纸写下来或者截个图。万一装完之后想还原,这份记录就是地图。

第三条,确认电源稳定。笔记本把电池装上,台式机别在用电高峰折腾。分区过程中断电,后果比装系统失败严重得多。

第四条,把 Windows 的系统盘和 Linux 的安装盘都放在手边。出了状况能立刻用光盘引导进恢复环境,比干着急强。

第五条,给自己留够时间。别在临出门前半小时开始装,中途被打断是最容易出事的。整个流程从分区到装完引导,按这份材料的步骤走,预留两三个小时比较稳妥。

4. 装系统那天:光盘引导、手工分区与引导菜单怎么配

4.1 改 BIOS 从光盘开机,安装类型选「定制」

分区搞定,接下来是装系统。第一步不是往光驱里塞盘,而是改 BIOS 的启动顺序。开机时按 Del 或 F2 进 BIOS 设置(不同机器按键不一样,开机第一屏一般有提示),找到启动顺序那一项,把光驱调到硬盘前面,保存退出。

然后放入 Red Hat Linux 9.0 的第一张安装光盘,重启。等出现欢迎屏幕时按回车,就能进图形化安装界面。

接下来几步都是常规操作:选择安装语言,选简体中文;配置鼠标和键盘,一般系统能自动检测出来,不用改。真正的分岔路口在「安装类型选择」这一页——一共五个选项:个人桌面、工作站、服务器、定制、升级现存系统。

这里要选「定制」。原因很直接:个人桌面和工作站会替你做很多决定,包括分区方案,而你刚刚才辛辛苦苦划出来一块 7GB 的地,让安装程序自作主张很可能对不上。定制安装把控制权全给你,包括后面最关键的分区环节。自由度最高,风险也最高,但对新手来说,恰恰是「每一步都得自己看着」最踏实。

4.2 Disk Druid 手工分区:/boot、swap、/ 三块地怎么划

到了分区这一步,选「用 Disk Druid 手工分区」。页面上会列出磁盘上所有的分区和空闲空间,你要做的是选中刚才划出来的那 7GB 自由空间,然后点「新建」。

对新手来说,只分三个分区就够了,别贪多。

第一个是引导分区。在「添加分区」对话框里,挂载点填/boot,容量 100MB,文件系统选 ext3。这块地用来放内核和引导相关的文件,100MB 对入门足够了。

第二个是交换分区。这个必须建,作用类似 Windows 里的页面文件——内存不够用的时候,系统把一部分暂时不用的数据挪到硬盘上。它有点特殊:没有挂载点的概念,你只需要把文件类型选成swap,容量按内存的两倍来。原文假设 128MB 内存,所以给 256MB。

第三个是根分区。挂载点选/,文件系统 ext3,把剩下的容量全给它。这里有个细节要留意:别把剩余空间一分不剩地全用掉,适当留一点,否则系统可能报错。容量上不要低于 1.5GB。

划完这三块,很多人会冒出一个疑问:Linux 里怎么没有 C 盘 D 盘?这正是 Linux 和 Windows 最不一样的地方之一。Windows 给每个分区发一个盘符,C、D、E,你打开「我的电脑」看到的就是这些盘符。Linux 没有盘符这套东西,它是一棵目录树,所有的分区都必须「挂」到树上的某个目录上才能用。/就是这棵树的根,所有东西都从它长出来;/boot是树上单独分出来的一个枝丫,里面放引导文件。

打个比方:Windows 像是给你几个独立的箱子,每个箱子贴个标签;Linux 像是给你一棵树,你得把新拿到的空间挂到某个树枝上,它才成为树的一部分。刚上手会觉得别扭,用两天就顺了。

4.3 引导方案选哪条:GRUB 接管,还是让 ntldr 听话

分区划完,就到了整场安装里最要紧的一步——引导管理器。开机时那个「问你进哪边」的角色,就是它。

原文列了四种做法:双硬盘的可以把 Linux 装第二块盘上、在 BIOS 里指定从哪块盘启动;用 Linux 自带的 GRUB 或 LILO 接管启动菜单;用 Windows XP 的 ntldr 配合 boot.ini 实现;或者干脆不装引导管理器,靠 Linux 启动盘引导。

入门阶段先看前两种里最常用的那个:让 GRUB 接管。从 Red Hat 7.2 开始,GRUB 就取代 LILO 成了默认的启动装载程序,配置更简单,功能也更强。安装程序会自动扫描硬盘上的操作系统,在引导配置页面列出两个选项:一个是 Windows XP(有时候它认成 DOS),一个是 Red Hat。

这个页面上有三件事可以做。一是改默认启动系统——默认会引导 Linux,如果你想默认进 Windows,勾选 Windows 那一项前面的「默认」复选框就行。二是手动添加系统——GRUB 不一定能认出所有的操作系统,认不出就点「添加」,填个标签、指定系统分区的位置。三是改标签——看不惯 Windows XP 被显示成 DOS,点「编辑」改个名字。

装完之后如果想改,配置文件在/boot/grub/menu.lst或者grub.conf,改法大致长这样:

default=1 # 默认启动第几项,编号从 0 开始,1 通常就是 Windows timeout=10 # 菜单停留 10 秒,不操作就按默认项走 title Windows XP # 菜单上显示的名字,随便改 rootnoverify (hd0,0) chainloader +1

default控制默认项,改这个数字就能改默认启动的系统,注意从 0 开始数。timeout是菜单等待秒数,嫌短可以调大。title后面那串就是开机菜单上显示的文字。(hd0,0)这种写法表示第一块硬盘的第一个分区,hd是硬盘,两个数字都从 0 开始数,所以(hd0,0)是「第 0 块盘的第 0 个分区」,别跟日常说的「C 盘」直接对应,容易绕晕。Linux 那一段一般由安装程序自动生成,新手不用动它。

另一条路是用 Windows 的 ntldr 引导,操作更麻烦,但有个实打实的好处:以后想删掉 Linux,直接删文件改配置就行,不用碰引导记录。它的原理是把 Linux 的引导扇区存成一个文件放到 C 盘根目录,再在boot.ini里加一行指向这个文件。

保存 Linux 引导扇区的命令是这样:

# 把 /dev/hda6 这个分区开头的 512 字节(也就是引导扇区)存成一个文件 # bs=512 一次读 512 字节,count=1 只读一次,合起来正好一个扇区 # if 是输入(input file),of 是输出(output file) dd bs=512 count=1 if=/dev/hda6 of=bootsect.rh

bs和count乘起来就是一个扇区的大小,这是引导记录的长度,多读少读都不对。if=/dev/hda6里的hda6是 Linux 分区的设备名,原文假设 Linux 装在第六个分区,你的机器上未必是这个编号,装的时候看清楚。of=bootsect.rh是输出文件名,生成之后拷到软盘或者 C 盘根目录备用。

然后在 C 盘根目录的boot.ini里加一行(改之前先去掉这个文件的系统、只读、隐藏属性):

[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect ; 下面这一行是自己加的,指向刚才备份出来的 Linux 引导扇区文件 C:\bootsect.rh="Red Hat Linux 9.0"

timeout是启动菜单等待的秒数。[operating systems]下面的每一行就是一个启动项,=左边是系统位置,右边引号里是菜单上显示的名字。最后那一行是新加的,C:\bootsect.rh指向你刚刚备份的文件。

用这条路有两个前提得记住:安装 Linux 引导管理器的时候,千万别装到主引导记录上,否则会把 Windows 的引导覆盖掉;还有,一定要做一张 Linux 启动盘。这两条不是建议,是硬性要求。

注意:不管你选哪条路,安装过程中那张 Linux 启动盘都要做。这一步在向导里很容易被跳过,跳过之后万一引导出问题,你连进系统修复的机会都没有。

5. 新手避坑排查:五个最常见的翻车现场和它们的解法

5.1 装完发现 Windows 慢得像换了台机器

现象:双系统装好,进 Windows 之后明显变卡,开个文件夹都要等一下,重启几次也不见好。

原因:几乎可以肯定是分区那一步没做干净。那 7GB 空间虽然从 E 盘里缩出来了,但仍然挂在 Windows 的扩展分区下面,Linux 装进去就成了扩展分区里的逻辑分区。两套分区体系混在一起,Windows 读写自己的分区时就会别扭。

解决:回到分区魔术师看分区结构,如果那 7GB 确实还在扩展分区里面,把它剥离出来,然后重装 Linux。这个坑的麻烦之处在于「装的时候一切正常」,症状要等到用起来才显现,所以第 3 章那一步值得反复确认。

5.2 开机只剩 Linux,Windows 的菜单不见了

现象:装完重启,启动菜单里只有 Red Hat,没有 Windows 那一项,等于 Windows「消失」了。

原因:GRUB 没能自动识别出 Windows 分区,或者识别出来了但没写进菜单。也可能是你在安装时把引导管理器装到了不该装的地方。

解决:先别慌,Windows 的数据大概率还在。进 Linux,打开/boot/grub/menu.lst或grub.conf,手动加一段 Windows 的启动项,格式参考第 4 章那段配置。如果手动加完还是进不去,用 Windows 安装光盘引导进恢复控制台,执行fixmbr和fixboot把 Windows 的引导修回来,再重新配 GRUB。这也是为什么装之前要把系统盘放在手边。

5.3 启动菜单里 Windows 变成了「DOS」

现象:菜单能正常用,但 Windows XP 那一项显示的是「DOS」,看着别扭,也怕选错了。

原因:GRUB 按分区类型判断系统,早期版本的识别规则比较粗,看到 NT 系列的分区有时就笼统标成 DOS。功能上没影响,纯粹是显示问题。

解决:安装向导里就有「编辑」按钮,选中那一项改个标签即可。装完了再改也行,编辑grub.conf里对应的title那一行。这事不影响使用,但对新手来说,菜单上名字对得上,心里才踏实,顺手改掉就好。

5.4 忘了做启动盘,引导一坏就进不去

现象:系统用了一阵子,某次改配置或者重装 Windows 之后,开机直接黑屏或者报错,两个系统都进不去。

原因:引导记录被覆盖或者写坏了,而手里又没有 Linux 启动盘,没法进系统修复。

解决:这种情况只能拿安装光盘引导进救援模式。所以第 4 章那条「一定要做启动盘」不是走过场。做启动盘的位置在安装向导里,按提示插入一张软盘就行,做完贴个标签收好。这张盘你可能一年都用不上一次,用上那一次就值回全部功夫。

5.5 改了 boot.ini 却启动报错

现象:走 ntldr 方案,改完boot.ini重启,菜单里能看到 Linux 那一项,但选中之后报错进不去。

原因:常见的有三种。一是bootsect.rh没放在 C 盘根目录,路径对不上;二是boot.ini改完之后忘了把系统、只读、隐藏属性设回去,或者改的时候没去掉这些属性导致没保存成功;三是备份引导扇区时分区号写错了,dd命令里的hda6跟你实际的 Linux 分区不是一回事。

解决:先确认文件位置和文件名大小写,再检查boot.ini里那一行的路径,最后回头核对dd命令用的分区号。这三处任意一处不对,症状都是「菜单有、进不去」。改boot.ini之前养成习惯:先复制一份改名成boot.bak,改坏了还能换回来。

6. 装完之后学什么:从能开机到用得顺的四步走法

能把两个系统都引导起来,只说明你跨过了门槛,离「会用」还有一段路。下面这条路径是我带新人时最常用的顺序,按周推进,不用贪快。

第一步,先把命令行混熟。图形界面能用,但 Linux 真正的力气在终端里。打开终端,把这几个命令敲到不用想:ls看目录、cd进目录、cp复制、mv移动或改名、rm删除、man查手册。man这个命令要特别练,任何命令不会用,man 命令名就能翻出说明书,比到处问人快得多。

第二步,搞懂文件和权限。Linux 那套目录树你得走一遍:/etc放配置,/home放用户文件,/var放日志,/dev是设备。然后用ls -l看文件权限那一串字母,弄明白「谁可以读、谁可以写、谁可以执行」这三件事是怎么表示的。这块知识在后面配任何服务时都会用到。

第三步,学会装软件和改配置。Red Hat 系用的是rpm包管理,先练会rpm -ivh 包名装、rpm -qa列出已装、rpm -e 包名卸载。改配置必然要用编辑器,vi是绕不开的,先用熟三个模式:进文件默认是命令模式,按i进编辑模式,按Esc回命令模式,再输入:wq保存退出。刚开始会手忙脚乱,练十次就成肌肉记忆了。

第四步,理解引导和分区这套东西。回头把/etc/fstab打开看看,里面每一行就是一个分区和它的挂载点,跟你装系统时划的那三块地一一对应。看懂了它,下次再装系统,分区那一步就不用照着教程一步步抄了。

阶段重点练什么大概花多久
第一周十几个常用命令 + man 手册每天半小时
第二周目录结构 + 文件权限一周左右
第三周rpm 装软件 + vi 编辑配置一周左右
第四周看懂 fstab,理解挂载边用边看

最后说一个我自己的教训。第一次装双系统那年,我图省事跳过了「把自由空间从扩展分区剥离」那一步,装完还挺得意,两个系统都能进。结果用了半个月,Windows 卡得我以为硬盘要坏了,重装了两次系统都没解决,最后是翻回原文一句一句对,才发现问题出在分区结构上。从那以后,我每次动分区之前都强制走一遍:先截图记录现有结构,确认新空间是不是真的从扩展分区里出来了,再往下走。这个习惯救过我很多次。

装双系统这件事,难点不在某一条命令,而在于每一步都不可逆,所以慢一点、多确认一次,永远比返工划算。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进