资讯动态

Windows Linux双系统安装:扩展分区收缩、手动分区与GRUB引导

发布时间:2026/10/24 13:33:55 来源:尧图企业网站定制
简介针对仍在使用Windows XP、希望在不重装系统的前提下体验Linux的入门用户这份文档以Red Hat Linux 9.0为例系统讲解双系统安装的完整流程。内容围绕硬盘空间划分、Windows扩展分区剥离、定制安装、手动创建/boot、swap与根分区以及GRUB引导配置展开并对双硬盘、NT引导、启动盘等方案作了比较便于读者理解引导管理器接管启动菜单的原理。资源包仅含1个docx文档约421KB篇幅集中适合按步骤对照操作也可作为老平台双系统排错与分区调整的参考。该资料已有340人学习下载能帮助读者掌握无损分区、分区格式兼容和GRUB配置等关键环节降低因扩展分区未剥离、引导写入位置不当导致的性能与启动问题。1. 双系统 windows linux 的落地起点先把分区账算干净上周帮人收拾一台还在跑 Windows XP 的老机器机器主人的诉求很朴素Windows 留着跑一套老业务软件再压一套 Linux 进去学命令、编点东西做成双系统 windows linux。硬盘只有一块 30GBC、D、E 三个盘E 盘 16.6GB 里空了 7GB 左右。这种配置放到今天看确实旧但正因为它旧流程里每个环节都裸露着——分区怎么切、引导权交给谁、装崩了怎么退回来一步都不能想当然。下面这套记录就是围绕这块单硬盘展开的用的是 Red Hat Linux 9.0 的安装光盘凡是涉及容量、扇区号、引导记录的参数都写清楚新手照着能走通熟手能对着看边界在哪。2. 分区先行把 7GB 从 Windows 扩展分区里剥干净2.1 为什么 Linux 分区不能住在 Windows 扩展分区里MBR 分区表只有四个表项Windows 那套「C、D、E」在实际磁盘上通常是这样落的C 盘占一个主分区表项D 和 E 被塞进同一个扩展分区扩展分区本身占第二个表项D、E 是它内部链表上的逻辑分区。用分区工具把 E 盘「缩小」释放出来的空间看着是空闲的但它仍然落在扩展分区所声明的那段地址范围之内本质上只是逻辑分区链上的一个空洞。很多教程到这里就收手了直接让 Linux 装进这个空洞装完也能开机。问题出在后面这块空间在分区表里不属于任何主分区表项Windows 侧的磁盘工具、碎片整理程序、某些一键还原软件在扫描时会把「扩展分区里有未被逻辑分区覆盖的空洞」当成异常状态反复尝试修正分区表。表现就是机器越用越慢硬盘灯常亮。当年大量「装了 Linux 之后 Windows 变慢」的抱怨根子多半在这里而不是 Linux 抢了资源。所以正确的做法不是「缩小 E 盘」就完事而是两步先把 E 盘缩到实际数据量附近再把扩展分区本身的边界收回来让那 7GB 彻底掉到扩展分区外面成为主分区表项可以直接占用的空闲空间。这两步在分区魔术师里是两个独立操作很多人只做了第一步。注意动手之前先在 Windows 里跑一遍磁盘检查chkdsk和碎片整理。分区工具移动数据时若碰上坏簇操作会中途失败严重时分区表直接报废。2.2 在分区魔术师里做两次收缩打开分区魔术师主窗口右侧是磁盘分区的详细列表左侧是任务列表。先选中 E 盘点左侧「调整一个分区的容量」弹出「调整容量/移动分区」对话框。对话框顶部那条状图是关键左侧黑色段是已用空间右侧绿色段是空闲空间中间的分界可以拖也可以直接在「新建容量」里填数值。E 盘的最小容量就是已用空间的大小再小就要破坏数据了。这里把 E 盘从 16.6GB 压到 8GB 出头空出约 7GB。点确定回到主界面你会看到 E 盘旁边多出一块标着「未分配」的区域。但此时它外面还套着扩展分区的框说明它仍然归属扩展分区。接着选中扩展分区那一行用完全相同的操作把扩展分区的右边界往左拖拖到刚好包住收缩后的 E 盘为止。这一步做完那 7GB 才会从扩展分区里彻底脱离出来成为独立的主分区可用空间。这里有个血泪经验分区魔术师的所有操作默认是挂起状态点「确定」只是把操作排进队列必须再点左下角的「应用更改」才真正写盘。不少人以为点完确定就生效了接着去装 Linux结果安装程序看到的还是旧分区表。整个过程中机器会重启一到两次在纯 DOS 环境下搬运数据期间不能断电、不能强行重启。7GB 的数据搬移在老机器上大概要十几分钟到半小时进度条卡在某个百分比不动是正常的别急着按电源键。2.3 用 fdisk 输出验证剥离是否真的生效进 Linux 安装盘之前最稳妥的验证方式是在安装程序的救援模式或者第二个控制台里跑一次 fdisk把分区表打出来看。收缩完成、尚未装 Linux 时输出应该长这样# 以救援模式进入后查看第一块 IDE 硬盘的分区表 fdisk -l /dev/hda # Disk /dev/hda: 30.0 GB, 30020272128 bytes # 255 heads, 63 sectors/track, 3649 cylinders # Units cylinders of 16065 * 512 8225280 bytes # # Device Boot Start End Blocks Id System # /dev/hda1 * 1 855 6867793 7 HPFS/NTFS # /dev/hda2 856 2756 15265881 f Win95 Extd (LBA) # /dev/hda5 856 1710 6867751 7 HPFS/NTFS # /dev/hda6 1711 2756 8594751 7 HPFS/NTFS逐字段读一遍。Units那一行说明这块盘按 255 磁头、63 扇区每道组织一个柱面 16065 个扇区、约 7.84MB后面 Start/End 的柱面号就是按这个单位算的。Blocks是 1KB 块的数量不是字节数看着吓人但换算下来就是几个 GB。真正要看的是编号规律。hda1 到 hda4 是主分区表项的位置hda5 往后才是逻辑分区。上面这份输出里hda1 是 C 盘hda2 是扩展分区Id 为 f表示 Win95 扩展分区并启用 LBAhda5、hda6 是 D 盘和 E 盘。hda3 和 hda4 是空缺的说明这两个主分区表项还没被占用但也不代表那块空间就自由——得看 End 柱面。hda2 的 End 停在 2756而整块盘有 3649 个柱面2757 到 3649 这 893 个柱面约 6.8GB不在任何分区项之内这才是 Linux 能用的地盘。如果扩展分区的 End 仍然顶到 3649说明第二步收缩没生效回去重做。这个检查花不了一分钟能省掉后面重装两小时。3. 手工分区三件套/boot、swap、/ 的容量取舍3.1 三个分区各自干什么容量怎么定经典方案是把 Linux 切成三个分区引导分区/boot、交换分区 swap、根分区/。三者的分工和容量下限可以对着下表看挂载点文件系统建议容量作用下限/bootext3100MB存放内核 vmlinuz、initrd 镜像和 GRUB 的 stage 文件50MBswapswap内存的 1.52 倍相当于 Windows 的页面文件无挂载点64MB/ext3剩余全部留 5% 余量目录树的根其余所有目录都挂在它下面1.5GB/boot单独分出来的历史原因很实际早期 BIOS 通过 INT 13h 读盘只能寻址到 1024 柱面以内约 8GB 位置如果内核文件落在更靠后的位置引导时就读不到机器直接黑屏。把/boot切在磁盘靠前的位置能绕开这个限制。另外内核升级会反复写入/boot独立分区可以防止它被日志或者其他数据挤满。swap 就是磁盘上的一块裸空间不挂到目录树上内核拿它当虚拟内存用。早年内存普遍 128MB 到 256MB所以有「swap 设成内存两倍」的经验值。这个规则在内存小于 512MB 时基本成立内存大了之后按两倍算反而浪费。还有一个上限要注意32 位内核单个 swap 分区一般不超过 2GB超出的部分用不上。/把剩下的空间全吃掉但必须留一点。Disk Druid 在剩余空间被 100% 分配时会报错而且根分区写满之后系统连日志都写不进去直接进不了图形界面。留 5% 到 10% 是比较稳的做法。回到这台机器上现实有个约束主分区表项只剩 hda3、hda4 两个空位hda1 是 C 盘hda2 是扩展分区三件套塞不进去。所以我的规划退化成两个分区/dev/hda3swap256MB/dev/hda4/剩下约 6.6GBext3代价是不单独分/boot内核和 GRUB 的 stage2 都躺在根分区里。这意味着将来根分区文件系统一旦出问题连 GRUB 菜单都进不去。既然接受了这个代价后面就必须做一张启动盘兜底这一点在第 4 章会讲。提示如果你的硬盘上 Windows 只占一个主分区、没有扩展分区那 hda2、hda3、hda4 三个表项都空着可以老老实实按三件套来分。3.2 从光盘引导到进入 Disk Druid 的完整路径先把 BIOS 的启动顺序改成光驱优先。开机按 Del 或 F2 进 BIOS不同主板按键不一样开机自检画面底部一般有提示找到 Boot 或者 Advanced BIOS Features 页把 First Boot Device 设成 CDROM保存退出。这一步不做插着光盘也会直接从硬盘启动。放入第一张安装光盘重启。出现欢迎屏幕时直接回车进图形安装界面。语言选简体中文鼠标和键盘配置一般能自动识别直接下一步。安装类型那一页有五个选项个人桌面、工作站、服务器、定制、升级现存系统。选「定制」。前三个是预设套餐会按固定规则自动分区把 Windows 的分区也一起吞掉这在双系统场景下是灾难。「定制」把分区和软件包的选择权全交出来。下一步会问分区方式选「用 Disk Druid 手工分区」。Disk Druid 是 Red Hat 系的图形化分区工具比命令行 fdisk 直观能直接看到每个分区的挂载点和文件系统类型。3.3 在 Disk Druid 里建分区以及 fstab 最后长什么样在 Disk Druid 的分区列表里选中那块 7GB 的空闲空间显示为 Free Space 或者空闲点「新建」。先建 swap挂载点留空swap 没有挂载点概念文件系统类型选 swap容量填 256。再建根分区挂载点填/文件系统选 ext3容量填剩余的全部减去几十 MB。如果你还想把/boot单独切出来本机没这个条件但方法一样就在建根分区之前先建一个挂载点为/boot、容量 100MB、ext3 的分区。顺序上先建/boot再建/因为/要吃掉剩余空间先建大的就没位置了。装完之后这些分区会写进/etc/fstab内容大致如下# 设备 挂载点 文件系统 挂载选项 dump fsck顺序 LABEL/ / ext3 defaults 1 1 /dev/hda3 swap swap defaults 0 0 none /dev/pts devpts gid5,mode620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0六个字段从左到右分别是设备名、挂载点、文件系统类型、挂载选项、dump 备份标志、fsck 检查顺序。第一行用LABEL/而不是/dev/hda4是因为 e2label 给分区打了卷标卷标不随设备号变化改分区顺序时不会挂错。swap 那一行的挂载点写swap是固定写法第六字段是 0表示开机不做文件系统检查——swap 里全是临时数据检查没意义还会拖慢启动。devpts、proc、tmpfs这三行是虚拟文件系统不对应任何真实磁盘分区none表示设备名为空。它们由内核在运行时动态生成手工分区时不用管安装程序会自动加上。这里有个容易忽略的点根分区的 fsck 顺序是 1/boot如果是独立分区则也是 1其他分区从 2 开始。启动时 fsck 会按这个顺序串行检查顺序错了不影响使用但并行度会变差。4. 引导权交给谁GRUB 接管 MBR 的三处配置4.1 GRUB 和 LILO 的差别以及为什么默认用 GRUBRed Hat 从 7.2 开始把默认引导器从 LILO 换成了 GRUB这个切换不是随意的。LILO 的工作方式是「配置写死」改完/etc/lilo.conf必须重跑/sbin/lilo把引导代码重新写进 MBR配置文件和实际引导块是两份东西不同步就会出现「配置改了但不生效」的玄学。更麻烦的是 LILO 对磁盘几何参数敏感换硬盘、改分区后经常直接罢工。GRUB 分三段stage1 在 MBR 里占 446 字节只负责找到 stage1_5stage1_5 带文件系统驱动能直接读 ext3 分区stage2 才是真正的菜单和引导逻辑放在/boot/grub/下。因为 stage1_5 能读文件系统GRUB 可以直接去读/boot/grub/grub.conf改完文件立刻生效不需要重装引导块。GRUB 还有个救命功能开机时按c进命令行可以手动敲root、kernel、boot把系统拉起来。这在配置文件写错、菜单进不去的时候是唯一的后悔药。LILO 没有这个能力。4.2 安装向导里的三处配置分区完成后进入引导装载程序配置页。GRUB 默认装在/dev/hda的主引导记录上也就是 MBR。这一页有四处要动。第一处是默认启动项。列表里会出现两项一个标着「DOS」安装程序把 Windows XP 认成了 DOS一个是 Red Hat Linux。默认勾选在 Linux 上如果你想开机默认进 Windows就勾 Windows 那一行的「默认」复选框。第二处是添加条目的能力。GRUB 的探测不总是准尤其在有多块硬盘或者隐藏分区的时候。点「添加」会弹出一个「映像」对话框三个字段标签填系统名称比如Windows XP设备从下拉列表里选那个系统的系统分区所在位置再决定要不要设为默认。第三处是改标签。看「DOS」这个名字不顺眼的话选中它点「编辑」把标签改成Windows XP Professional。这个改动最后会落到 grub.conf 的title行上。第四处是引导装载程序的安装位置。默认是 MBR如果后面打算走 ntldr 路线这里要改成装到 Linux 根分区的第一个扇区。配置完继续往下走安装程序会提示创建一张 Linux 启动盘。这一步千万别跳过。软驱还在的话插一张空白 1.44MB 软盘进去没有软驱就用mkbootdisk后期补做或者至少把引导扇区备份到 U 盘和另一台机器上。4.3 grub.conf 的真实结构和 hd 编号的坑装完之后/boot/grub/grub.conf的内容大致如下部分发行版里menu.lst是指向它的符号链接# 默认启动第 0 项即第一个 title default0 # 菜单停留 10 秒超时自动进默认项 timeout10 # 菜单背景图路径基于 GRUB 视角的 (hd0,3) 分区 splash p a hrefhttps://download.csdn.net/download/muyuetianxia/4400087 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑