文章詳情頁
Linux下如何刪除Windows分區
瀏覽:4日期:2024-01-30 18:16:14
前言:; 我在這篇文章里要講解的是如何從;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 /dev/hda2/mnt/tmp;ext2;;;;;defaults;1;2 /dev/hda4/home;;;;ext2;;;;;defaults;1;3 /dev/hda3swap;;;;;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 -;/mnt/tmp/etc/lilo.conf.; lilo.conf;是;lilo;的設定檔,lilo;是位在;MBR;(啟動磁區);的開機管理程式。我不想浪費篇幅說明;MBR。如果有人還在用;Loadlin;或用軟碟開機,我強烈建議換成;lilo;,因為我們的系統上;loadlin;已經沒用,而且這年頭誰還用軟碟片來開機呢?;我們告訴;lilo;Linux;的核心;(Kernel);現在是在;hda1;上;(原本是;hda2);還有我們得刪除所有有關;Windows;的設定。; boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=500 image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hda1 read-only -;執行;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. -;重新開機,再做一些小測試;(df,;fdisk;-l);看看檔案系統是不是和我們指定的符合。; -;把;/mnt/tmp;底下;(hda2);所有的東西刪除掉:;(在;/mnt/tmp;下);rm;-rf;*; 按照先前的安排,我們再用;cd;切換到;/usr/local;下,復制所有檔案到;/usr/tmp:;cp;-a;*;/mnt/tmp; 驗證是否一切順利,再刪除;/usr/local:;(在;/usr/local;下);rm;-rf;*;,注意不可以刪除;/usr/local;這個名字。; -;再編輯;/etc/fstab;,修改第二行: /dev/hda2;;;;/usr/local;;ext2;;;;defaults;;;;;;;1;2 -;重新開機,再測試。; 大功告成!;告訴你我當時非常的滿意,尤其是所有的程式後來都能正常的工作! 問題 事實上我在實作時遇到了一些問題。但我建議你去了解這些步驟,所以在你遇到問題的時候你可以試著自行解決。Olivier;Tharan;建議我重新啟動到單人模式中;(Single-user;mode);但我偷懶而跳過這一節。最好能在重新啟動前準備一張開機磁片;(但我不知道怎麼弄)。; 底下是我遭遇到的問題。在第一次重新開機後,我的;/home;和;/proc;沒有被連接進來,但幸好登入系統不成問題,所以我趕快用:; [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,中文翻譯;郭予廷;
標簽:
Windows系統
排行榜