简介 安装完 Linux 两个月後的某一天,我突然想把 Windows 删掉。原因是我根本不想再用 Windows 了! 我想许多的初学者可能也遇到和我同样的情况,所以我写了这篇文章来帮助他们 (进阶者也可以读读,给我一些建议)。这种情况有两种解决办法:
第一种是从新安装 Linux。这样的好处是即使你对 Linux 知道的不多,也可以在安装时做出很好的选择,尤其在处理磁碟分割 (Disk Partitioning) 的时侯。但缺点是你会丢掉硬碟上所有的东西。虽然你也可以把必要的档案先备份起来,但是还原的工作会花上很多的时间和心血。
第二种方法是直接移除 Windows (很简单),然後再把空出来的空间挪给 Linux 用。也就是说,「重新分割」(Repartition),这道手续有点困难,相关文件也不多。但好处是你的系统会和从前的一模一样,只是多了很多空间。而且如果你没有成功,你还是可以用第一种方法再试。以下我介绍我用的方法,但细节可能会和你的系统有一些出入。还有一点,如果你有一张空磁碟,你可以先把重要的档案备份到这张磁碟上,再重新安装。我想这是一种较安全的方法,且结果也比较理想。我是把档案备份到一张 1.44 Mb 的磁片上。不管如何希望以下的方法对初学者能有所帮助。
我要感谢 Olivier Tharan 在 fr.col.moderated 上的回信,那封信算是本文的第"负一"版。还有 Finn bo Jorgensen 和 Chomouel boudjnah 他们的回信。
主要步骤 - 准备工作: 备份且记下重要的档案。读完整篇文章再继续。(请参照第三节)
- 移除 Windows 。(请参照第四节)
- 重新分割,较难的步骤。(请参照第五节)
准备工作 首先,备份所有重要的档案。尤其是设定档和你的文件档案。以下我不再重覆。
最重要的一步是了解你到底要怎麽做。本文对使用到的指令和档案只作一些解说。最好是用 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
Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 397 1600672+ c 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
- 启动 fdisk。更换 hda1 的分割区类别 (System Id)。我们现在告诉 fdisk 这个分割区要改成为 Linux 自有的分割区 (Linux Native Partition)。用 t 指令 (t, 1, 83)来修改。再用 p 指令来查看。唯一不同的地方是 Unkown 现在变成了 linux native 还有 System Id 现在变成了 83。最後,用 w 指令储存和离开。用 fdisk -l 指令再看一次。离开时我遇到以下的错误讯息:
The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. Re-read table failed with error 16: Device or resource busy. Reboot your system to ensure the partition table is updated.
- 执行 lilo: /sbin/lilo -v -C /mnt/tmp/etc/lilo.conf. -v 告诉 lilo 给予详尽的输出。这时应该没有任何的错误讯息,因为我们要重新启动所以一定不能犯错。 lilo 的讯息如下:
LILO version 20, Copyright 1992-1997 Werner Almesberger Reading boot sector from /dev/hda Merging with /boot/boot.b Boot image: /boot/vmlinuz-2.0.34 Added linux * /boot/boot.0300 exists - no backup copy made. Writing boot sector.
[root@snoopy root]$ df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda1 1548535 506977 961525 35% / /dev/hda2 796065 506992 247947 67% /mnt/tmp
/home 没有被连接进来,所以我试著用 mount /home ,但 mount 却显示: <> 我才发觉我没了解什麽叫"连接点" (Mount Point) 而漏了cp 的 -x 的参数。所以我重新建立了 /home 和 /proc 两个连接点,结果才和前面所叙述的一样。
参考资料 man 说明: fdisk, mk2ext, cp, mv, rm, lilo, lilo.conf, fstab /usr/doc/lilo-0.20/doc/User_Guide.ps /usr/doc/util-linux-2.7/README.fdisk Hard Disk Upgrade Mini How-To (硬碟升级 Mini How-To) 本文出处 Comment supprimer windows. 原文以法文写成,英文翻译 Paul Kienzle,中文翻译 郭予廷