簡介 安裝完 Linux 兩個月後的某一天,我突然想把 Windows 刪掉。原因是我根本不想再用 Windows 了! 我想許多的初學者可能也遇到和我同樣的情況,所以我寫了這篇文章來幫助他們 (進階者也可以讀讀,給我一些建議)。這種情況有兩種解決辦法:
第一種是從新安裝 Linux。這樣的好處是即使你對 Linux 知道的不多,也可以在安裝時做出很好的選擇,尤其在處理磁碟分割 (Disk Partitioning) 的時侯。但缺點是你會丟掉硬碟上所有的東西。雖然你也可以把必要的檔案先備份起來,但是還原的工作會花上很多的時間和心血。
第二種方法是直接移除 Windows (很簡單),然後再把空出來的空間挪給 Linux 用。也就是說,「重新分割」(Repartition),這道手續(xù)有點困難,相關(guān)文件也不多。但好處是你的系統(tǒng)會和從前的一模一樣,只是多了很多空間。而且如果你沒有成功,你還是可以用第一種方法再試。以下我介紹我用的方法,但細節(jié)可能會和你的系統(tǒng)有一些出入。還有一點,如果你有一張空磁碟,你可以先把重要的檔案備份到這張磁碟上,再重新安裝。我想這是一種較安全的方法,且結(jié)果也比較理想。我是把檔案備份到一張 1.44 Mb 的磁片上。不管如何希望以下的方法對初學者能有所幫助。
我要感謝 Olivier Tharan 在 fr.col.moderated 上的回信,那封信算是本文的第"負一"版。還有 Finn bo Jorgensen 和 Chomouel boudjnah 他們的回信。
最重要的一步是了解你到底要怎麼做。本文對使用到的指令和檔案只作一些解說。最好是用 man 讀一讀這些指令的說明: fdisk, mk2ext, cp (蠻實用的指令), lilo, lilo.conf 和 fstab (此外還有一些設(shè)定檔的 man 說明)。 Lilo 有些很詳盡的說明放在 /usr/doc/lilo-0.20/doc 下(因系統(tǒng)而異),而且還有一篇長達 46 頁的使用說明書。有關(guān) fdisk 的完整說明則是放在 /usr/doc/util-linux-2.7/README.fdisk。寫這篇文章的時侯我還發(fā)現(xiàn)了一篇很有用的 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 的分割區(qū)看成 <> (未知)。我的 Linux 核心 (Kernel, 2.0.34 版) 知道怎麼存取 FAT32,但 fdisk 卻不知道。底下是 df 指令的輸出,可以發(fā)現(xiàn) /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 的分割區(qū)類別 (System Id)。我們現(xiàn)在告訴 fdisk 這個分割區(qū)要改成為 Linux 自有的分割區(qū) (Linux Native Partition)。用 t 指令 (t, 1, 83)來修改。再用 p 指令來查看。唯一不同的地方是 Unkown 現(xiàn)在變成了 linux native 還有 System Id 現(xiàn)在變成了 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.
- 執(zhí)行 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 卻顯示: <> 我才發(fā)覺我沒了解什麼叫"連接點" (Mount Point) 而漏了cp 的 -x 的參數(shù)。所以我重新建立了 /home 和 /proc 兩個連接點,結(jié)果才和前面所敘述的一樣。
參考資料 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,中文翻譯 郭予廷