作者
Olivier Chapuis
前言:
我在這篇文章裡要講解的是如何從 Linux 和 Windows 共存的機器中移除 Windows 系統
而且把空出來的空間留給 Linux 用
這篇文章的主要對象是給 Linux 的新手 (也包括我自己)
簡介
安裝完 Linux 兩個月後的某一天
我突然想把 Windows 刪掉
原因是我根本不想再用 Windows 了! 我想許多的初學者可能也遇到和我同樣的情況
所以我寫了這篇文章來幫助他們 (進階者也可以讀讀
給我一些建議)
這種情況有兩種解決辦法:
第一種是從新安裝 Linux
這樣的好處是即使你對 Linux 知道的不多
也可以在安裝時做出很好的選擇
尤其在處理磁碟分割 (Disk Partitioning) 的時侯
但缺點是你會丟掉硬碟上所有的東西
雖然你也可以把必要的檔案先備份起來
但是還原的工作會花上很多的時間和心血
第二種方法是直接移除 Windows (很簡單)
然後再把空出來的空間挪給 Linux 用
也就是說
「重新分割」(Repartition)
這道手續有點困難
相關文件也不多
但好處是你的系統會和從前的一模一樣
只是多了很多空間
而且如果你沒有成功
你還是可以用第一種方法再試
以下我介紹我用的方法
但細節可能會和你的系統有一些出入
還有一點
如果你有一張空磁碟
你可以先把重要的檔案備份到這張磁碟上
再重新安裝
我想這是一種較安全的方法
且結果也比較理想
我是把檔案備份到一張
Mb 的磁片上
不管如何希望以下的方法對初學者能有所幫助
我要感謝 Olivier Tharan 在 l
moderated 上的回信
那封信算是本文的第
負一
版
還有 Finn bo Jorgensen 和 Chomouel boudjnah 他們的回信
主要步驟
准備工作: 備份且記下重要的檔案
讀完整篇文章再繼續
(請參照第三節)
移除 Windows
(請參照第四節)
重新分割
較難的步驟
(請參照第五節)
准備工作
首先
備份所有重要的檔案
尤其是設定檔和你的文件檔案
以下我不再重覆
最重要的一步是了解你到底要怎麽做
本文對使用到的指令和檔案只作一些解說
最好是用 man 讀一讀這些指令的說明: fdisk
mk
ext
cp (蠻實用的指令)
lilo
nf 和 fstab (此外還有一些設定檔的 man 說明)
Lilo 有些很詳盡的說明放在 /usr/doc/lilo
/doc 下(因系統而異)
而且還有一篇長達
頁的使用說明書
有關 fdisk 的完整說明則是放在 /usr/doc/util
linux
/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:
heads
sectors
cylinders
Units = cylinders of
*
bytes
Device Boot Begin Start End Blocks Id System
/dev/hda
*
+ c Unknown
/dev/hda
Linux native
/dev/hda
Linux swap
/dev/hda
Linux native
我們可以看到 Windows 位在 hda
上
fdisk 通常都會把 FAT
的分割區看成 <> (未知)
我的 Linux 核心 (Kernel
版) 知道怎麽存取 FAT
但 fdisk 卻不知道
底下是 df 指令的輸出
可以發現 /dev/hda
的確可以被 Linux 使用
[olivier@snoopy olivier]# df
Filesystem
blocks Used Available Capacity Mounted on
/dev/hda
% /
/dev/hda
% /home
/dev/hda
% /mnt/dos
你得修改兩個設定檔 /etc/fstab 和 /etc/nf
它們看起來有點像底下的輸出
[olivier@snoopy olivier] less /etc/fstab
/dev/hda
/ ext
defaults
/dev/hda
/home ext
defaults
/dev/hda
swap swap defaults
/dev/fd
/mnt/floppy ext
user
noauto
/dev/cdrom /mnt/cdrom iso
user
noauto
ro
none proc proc defaults
/dev/hda
/mnt/dos msdos user
noauto
[olivier@snoopy olivier] less /etc/nf
boot=/dev/hda
map=/boot/map
install=/boot/boot
b
prompt
timeout=
image=/boot/vmlinuz
label=linux
root=/dev/hda
read
only
other=/dev/hda
label=dos
table=/dev/hda
重新建立 Windows 的硬碟分割區
從現在起你一定得用 root 的身份操作
我尤其建議你用 root 登入(別用 su)
如果你用的是 vi 編輯器
你可能要下 w! 指令才能存檔
建議你在每回存檔完後
檢查是否修改過的檔案真的被存起來了
(離開編輯器用 less 指令來查看)
你現在要用 fdisk 和 mke
fs 兩個指令
這些可以在硬碟或是其它儲存媒體上用
在使用前最好是不要連接 (mount) 要修改的那一個分割區
請看底下的三個步驟:
如果你要的分割區已經被連接上了
用 umount 指令來分離
如: umount /mnt/dos
啟動 fdisk
更換 hda
的分割區類別 (System Id)
我們現在告訴 fdisk 這個分割區要改成為 Linux 自有的分割區 (Linux Native Partition)
用 t 指令 (t
)來修改
再用 p 指令來查看
唯一不同的地方是 Unkown 現在變成了 linux native 還有 System Id 現在變成了
最後
用 w 指令儲存和離開
用 fdisk
l 指令再看一次
離開時我遇到以下的錯誤訊息:
The partition table has been altered!
Calling ioctl() to re
read partition table
Syncing disks
Re
read table failed with error
: Device or resource busy
Reboot your system to ensure the partition table is updated
但我不理會它所以沒有重新開機
格式化 (Format): mke
fs /dev/hda
你會先看見很多數字在跳動
然後就再也見不到 Windows 了! 你也可以在 mke
fs 後加上
c 的參數
這樣可以順便檢查硬碟有沒有損壞的地方
好啦! Windows 沒啦! 其實我並不是很排斥 Win
(但討厭 Microsoft)
只是很喜歡 Linux
使用新的分割區
好了
現在我有一個
Gb 的空白分割區
我打算把
Mb 拿來做 /home
Mb 做 / 和
Mb 做交換區 (Swap partition)
我把 /home/myaccount 裡
Mb 的資料移到 /usr/local
把 /usr/local 留在 hda
上再把 / 移到 hda
上:
Filesystem
blocks Used Available Capacity Mounted on
/dev/hda
% /
/dev/hda
% /usr/local
/dev/hda
% /home
足夠我用好幾年了
照我上面的計劃
我得先把 hda
連接起來才行
一般就連接到 /mnt 即可
在 /mnt 底下再建一個 tmp 的次目錄 (sub
directory)
來連接 hda
: mkdir/mnt/tmp
連接 hda
到 /mnt/tmp : mount
t ext
/dev/hda
/mnt/tmp (
t ext
指定檔案系統的種類)
復制 / 到 /mnt/tmp/ 但保留目錄結構: cp
ax / /mnt/tmp/
a 參數在 man 說明裡解釋為: <> 請自行參考 cp 的 man 說明
x 參數指定不要把和現在所在位置不同的分割區也包括進來
以我為例
這樣就不會把 /home 一起復制了
整個復制過程在我的 AMD K
上花了
分鐘
所以你可以先去喝杯咖啡或威士忌再回來
但這樣做還是有一些地方不完整
因為
x 參數的關系有兩個目錄沒有被復制進來
/home 和 /proc
所以現在我們要在新的分割區上建立這兩個目錄: mkdir /mnt/tmp/home 然後 mkdir /mnt/tmp/proc 這兩個目錄一定不可漏掉
這樣 /home (在 hda
上) 和 /proc 以後才可以被連接上
現在更復雜的是我們得修改 fstab 和 nf 檔案
重新開機後 Lilo 和 Linux 本身才知道 / 在哪裡
注意
我們必須修改 /mnt/tmp/etc/ 下的 fstab 而不是 /etc 下的
因為新的系統在 /mnt/tmp
From:http://tw.wingwit.com/Article/program/Oracle/201311/17495.html