您现在的位置: 万盛学电脑网 >> 操作系统 >> Linux教程 >> 正文

Linux下如何删除Windows分区

作者:佚名    责任编辑:admin    更新时间:2022-06-22

class="22170"> 前言:;

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


--------------------------------------------------------------------------------


简介
安装完;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

Filesystem1024-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;defaults1;1
/dev/hda4;;/home;;;;;ext2;defaults1;2
/dev/hda3;;swap;;;;;;swap;defaults0;0
/dev/fd0;;;/mnt/floppy;;;;;;;ext2;user,noauto;;;;;0;0
/dev/cdrom;/mnt/cdromiso9660;;;;;;user,noauto,ro;;0;0
none;;;;;;;proc;;;;;;proc;defaults0;0
/dev/hda1;;/mnt/dos;;msdosuser,noauto;;;;;0;0


[olivier@snoopy;olivier];less;/etc/lilo.conf

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=500
image=/boot/vmlinuz-2.0.34-1
label=linux
root=/dev/hda2
read-only
other=/dev/hda1
label=dos
table=/dev/hda




重新建立;Windows;的硬碟分割区
从现在起你一定得用;root;的身份操作。我尤其建议你用;root;登入(别用;su)。如果你用的是;vi;编辑器,你可能要下;w!;指令才能存档。建议你在每回存档完後,检查是否修改过的档案真的被存起来了。;(离开编辑器用;less;指令来查看);

你现在要用;fdisk;和;mke2fs;两个指令。这些可以在硬碟或是其它储存媒体上用。在使用前最好是不要连接;(mount);要修改的那一个分割区。请看底下的三个步骤:;

-;如果你要的分割区已经被连接上了,用;umount;指令来分离,如:;umount;/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.




但我不理会它所以没有重新开机。

-;格式化;(Format):;mke2fs;/dev/hda1。你会先看见很多数字在跳动,然後就再也见不到;Windows;了!;你也可以在;mke2fs;後加上;-c;的参数,这样可以顺便检查硬碟有没有损坏的地方。;

好啦!;Windows;没啦!;其实我并不是很排斥;Win98;(但讨厌;Microsoft),只是很喜欢;Linux...;


使用新的分割区
好了,现在我有一个;1.5;Gb;的空白分割区,我打算把;600;Mb;拿来做;/home;,;800;Mb;做;/;和;100;Mb;做交换区;(Swap;partition)。我把;/home/myaccount;里;100Mb;的资料移到;/usr/local;,把;/usr/local;留在;hda2;上再把;/;移到;hda1;上:

Filesystem;;;;;;1024-blocks;;Used;;;Available;Capacity;Mounted;on
/dev/hda11600672;;;;465000;;;1130672;;;;;29%;;;;/
/dev/hda2;796065;;;;110000;;;;696065;;;;;13%;;;;/usr/local;
/dev/hda4;628351;;;;;40739;;;;587612;;;;;;6%;;;;/home




足够我用好几年了....

照我上面的计划,我得先把;hda1;连接起来才行。一般就连接到;/mnt;即可。;

-;在;/mnt;底下再建一个;tmp;的次目录;(sub-directory);。来连接;hda1:;mkdir/mnt/tmp.;

-;连接;hda1;到;/mnt/tmp;:;mount;-t;ext2;/dev/hda1;/mnt/tmp;(-t;ext2;指定档案系统的种类)。;

-;复制;/;到;/mnt/tmp/;但保留目录结构:;cp;-ax;/;/mnt/tmp/。-a;参数在;man;说明里解释为:;<>;请自行参考;cp;的;man;说明。-x;参数指定不要把和现在所在位置不同的分割区也包括进来。以我为例,这样就不会把;/home;一起复制了。整个复制过程在我的;AMD;K6;266;上花了;15;分钟。所以你可以先去喝杯咖啡或威士忌再回来。;

-;但这样做还是有一些地方不完整,因为;-x;参数的关系有两个目录没有被复制进来,;/home;和;/proc。所以现在我们要在新的分割区上建立这两个目录:;mkdir;/mnt/tmp/home;然後;mkdir;/mnt/tmp/proc;这两个目录一定不可漏掉,这样;/home;(在;hda3;上);和;/proc;以後才可以被连接上。;

现在更复杂的是我们得修改;fstab;和;lilo.conf;档案,重新开机後;Lilo;和;Linux;本身才知道;/;在哪里。注意,我们必须修改;/mnt/tmp/etc/;下的;fstab;而不是;/etc;下的。因为新的系统在;/mnt/tmp;下。但是在重新开机前我们必须重新安装;Lilo;(如果你有用;Lilo;的话)。现在必须修改;/etc/;下的;lilo.conf;因为我们现在就要执行;lilo;指令来重新安装;Lilo。然後再把;/etc/lilo.conf;复制到新的分割区;/mnt/tmp/etc。或者你可以直接修改;/mnt/tmp/etc/lilo.conf;然後在执行;lilo;的时候加上;-C;的参数告诉;lilo;你的设定档不是在;/etc/lilo.conf;而是在;/mnt/tmp/etc/lilo.conf;中。我示□的是第二种方法。;

-;/mnt/tmp/etc/fstab;

这个档案指示系统在启使的时侯如何连接不同的分割区。我们现在想把;/;连接到;hda1;上,所以要如下修改。但我们不可以有两个;/;连接点!;所以我把;/dev/hda2;改为连接到;/mnt/tmp。其它地方则没变。;

/dev/hda1/ext2;;;;;defaults;1;1
/d