Linux操作系统下如何删除Windows分区

前言:
我在这篇文章里要讲解的是如何从 Linux 和 Windows 共存的机器中移除 Windows 系统,而且把空出来的空间留给 Linux 用 。这篇文章的主要对象是给 Linux 的新手 (也包括我自己) 。

简介
安装完 Linux 两个月後的某一天,我突然想把 Windows 删掉 。原因是我根本不想再用 Windows 了! 我想许多的初学者可能也遇到和我同样的情况,所以我写了这篇文章来帮助他们 (进阶者也可以读读,给我一些建议) 。这种情况有两种解决办法:
第一种是从新安装 Linux 。这样的好处是即使你对 Linux 知道的不多,也可以在安装时做出很好的选择,尤其在处理磁碟分割 (Disk Partitioning) 的时侯 。但缺点是你会丢掉硬碟上所有的东西 。虽然你也可以把必要的档案先备份起来,但是还原的工作会花上很多的时间和心血 。
第二种方法是直接移除 Windows (很简单),然後再把空出来的空间挪给 Linux 用 。也就是说,「重新分割」(Repartition),这道手续有点困难,相关文件也不多 。但好处是你的系统会和从前的一模一样,只是多了很多空间 。而且如果你没有成功,你还是可以用第一种方法再试 。以下我介绍我用的方法,但细节可能会和你的系统有一些出入 。还有一点,如果你有一张空磁碟,你可以先把重要的档案备份到这张磁碟上,再重新安装 。我想这是一种较安全的方法,且结果也比较理想 。我是把档案备份到一张 1.44 Mb 的磁片上 。不管如何希望以下的方法对初学者能有所帮助 。
准备工作
首先,备份所有重要的档案 。尤其是设定档和你的文件档案 。以下我不再重覆 。
最重要的一步是了解你到底要怎麽做 。本文对使用到的指令和档案只作一些解说 。最好是用 man 读一读这些指令的说明: fdisk, mk2ext, cp (蛮实用的指令), lilo, lilo.conf 和 fstab (此外还有一些设定档的 man 说明) 。Lilo 有些很详尽的说明放在 /usr/doc/lilo-0.20/doc 下(因系统而异),而且还有一篇长达 46 页的使用说明书 。有关 fdisk 的完整说明则是放在 /usr/doc/util-linux-2.7/README.fdisk 。写这篇文章的时侯我还发现了一篇很有用的 mini-HOWTO: 硬碟升级 Mini How-To (Hard Disk Upgrade Mini How-To) 。
第一步,底下是我的磁碟分割表 (Partition Table):

[olivier@snoopy olivier]# /sbin/fdisk -l (用超级使用者 su 的身份);
Disk /dev/hda: 128 heads, 63 sectors, 788 cylinders;
Units = cylinders of 8064 * 512 bytes;
【Linux操作系统下如何删除Windows分区】Device Boot Begin Start End Blocks Id System;
/dev/hda1 * 1 1 397 1600672c Unknown;
/dev/hda2 398 398 601 822528 83 Linux native;
/dev/hda3 602 602 627 104832 82 Linux swap;
/dev/hda4 628 628 788 649152 83 Linux native
我们可以看到 Windows 位在 hda1 上 。fdisk 通常都会把 FAT32 的分割区看成 > (未知) 。我的 Linux 核心 (Kernel, 2.0.34 版) 知道怎麽存取 FAT32,但 fdisk 却不知道 。底下是 df 指令的输出,可以发现 /dev/hda1 的确可以被 Linux 使用 。

[olivier@snoopy olivier]# df;
Filesystem 1024-blocks Used Available Capacity Mounted on;
/dev/hda2 796065 506992 247947 67% /;
/dev/hda4 628351 226366 369528 38% /home;
/dev/hda1 1594456 850420 744036 53% /mnt/dos
你得修改两个设定档 /etc/fstab 和 /etc/lilo.conf ,它们看起来有点像底下的输出 。

[olivier@snoopy olivier] less /etc/fstab;
/dev/hda2 / ext2 defaults 1 1;
/dev/hda4 /home ext2 defaults 1 2;
/dev/hda3 swap swap defaults 0 0;
/dev/fd0 /mnt/floppy ext2 user,noauto 0 0;
/dev/cdrom /mnt/cdrom iso9660 user,noauto,ro 0 0;
none proc proc defaults 0 0;
/dev/hda1 /mnt/dos msdos user,noauto 0 0;

[olivier@snoopy olivier] less /etc/lilo.conf;
boot=/dev/hda;

推荐阅读