星期六, 2月 06, 2010

將NTFS分割區全部轉換為ext4

Ubuntu大約在2007年以後的版本加入了NTFS-3G,對於恰好在當時開始接觸Ubuntu Linux的我來說是有很大的意義,因為資料可以自由的在Linux和Windows之間共用,達到的無痛轉換。但從最開始使用Windows Loader作為雙系統的切換,到現在Windows幾乎1個月用不到1小時,在電腦使用上已經完全轉移至Ubuntu+KDE。

雖然在目前的環境下仍然有一些Windows Only的程式存在,但為了那1個月才一次的需求,就犧牲了平時使用的效能,我想不划算。NTFS-3G目前已經算是相對穩定,但是在Linux上仍有部份的風險和效率不佳的問題存在。

另一方面其實是我覺得既然沒在用Windows,那麼轉換到其他Linux常見的檔案系統也何嘗不是件好事?在Linux 2.6.30版核心修正部份問題後,ext4也比較穩定了。

因此昨天決定把存放Windows的sda1格式化成ext4,而存放重要檔案的sda2則是在備份後轉換為ext4。將Windows整個格式化掉令人感到高興,原因跟把Plurk砍掉不同,而是「哇!可以放更多東西了!」

我最開始的計畫如下:
  1. 用Live CD開機
  2. Gparted格式化sda1
  3. 為確保可以開機,重新安裝Grub
為了順著上面的步驟,我還特別拿了我哥的舊電腦光碟機接上SATA外接線,來取代我電腦上那台閉合不起來的光碟機,接著Live CD還發生了讀取錯誤的問題。

忙了30分鐘才想到一個問題:一般是當電腦的系統出現問題,才拿Live CD急救,然而我的電腦中作業系統是好的啊!那麼只要卸載sda1後格式化,並且在輸入grub-install指令不就得了!

因此,我重新啟動電腦,一邊取笑著自己。


警告:以下只有格式化的方法,將不會保留任何資料
第一步,我先用Gnome的palimpsest卸載sda1,但這部份算是多此一舉,因為Gparted同樣可以達到目的。

第二步,開啟Gparted,選擇了sda1,並按右鍵-格式化-ext4,並且套用下去基本就完成了。格式化不到1分鐘就結束,要注意的是這個步驟將不會保留任何檔案
然而要開啟時才發現電腦中沒有gparted,大概是哪次亂搞的時候不小心移除掉了。這個部份很簡單,在Debian/Ubuntu系等deb系列只要輸入 以下指令。
sudo apt-get install gparted
既然sda1是要當作全新的空白分割區,這樣子乍看之下似乎就可以用了。可是事實上還要修改一個東西:fstab。開機時掛載的硬碟和分割區資訊都寫在/etc/fstab裡面,因為將NTFS修改為ext4,參數和設定必然要修改。

第三步,同樣在Gparted裡面,在該分割區按下右鍵,選擇最下方的選項查看分割區的UUID

第四步,修改/etc/fstab。首先建議備份該檔案
sudo cp /etc/fstab /etc/fstab.backup
接著再用編輯器開啟。我習慣使用nano,當然你可以依照個人喜好使用vim或是其他文字編輯器。找到sda1的欄位後,修改UUID、檔案系統和後面的參數。因為上次安裝Ubuntu的時候有自動掛上一個ext4的分割區,因此我依樣畫葫蘆,長成下底下那樣。(註:每台電腦上的每個分割區之UUID會不一樣)
UUID=7412196d-8c22-404e-acff-ae211a6db78a  /media/sda1    ext4    relatime        0       2
第五步,我將sda1掛載(mount)到/media/sda1這個目錄,然而這個目錄目前是root所有,我不能予以修改,因此我要做的是將該目錄的擁有者修改成我自己,假設我的帳號是rail02000
sudo chown -R  rail02000 /media/sda1 #變更擁有者
sudo chgrp   -R  rail02000 /media/sda1 #變更群組
sudo chmod 755 /media/sda1          #設定權限
嗯,其實第一、二個指令好像有辦法合一,不過我懶的去找。理論上這樣就可以用了,不知為何我還是遭遇了權限上的問題,所以我乾脆從GUI的File manager去著手。
sudo nautilus #Gnome的File manager
sudo dolphin #KDE的File manager
第六步,因為我的Grub安裝在第一個磁區,我不確定這樣做是否會有影響,因此乾脆直接重新跑一次grub-install
grub-install /dev/sda
以上步驟跑完之後,這個sda1分割區就是真的完全空白、可以任我使用的空間了。但接下來sda2轉換的過程就比較麻煩了,因為sda2是我存放照片、報告重要的資料夾,所以要先將sda2的所有資料手動備份到其他分割區或硬碟。幸好我哥同意將舊電腦的硬碟整個格式化,才解了燃眉之急。格式化的速度很快,真正的時間都花在備份還有還原回去。

Linux上好像有dd指令,或是再生龍之類的工具,然而我居然用了複製貼上(遮面)......

確定所有資料已經備份到另一顆硬碟,我才開始進行格式化。重複上述的步驟後,再將檔案複製回去,終於大功告成。


因此現在整台電腦裡的分割區除了Linux Swap之外都是ext4啦!老實說主要是一種對系統穩定感到心安之外,就是爽度問題吧?實際效能方面,我記得之前把檔案備份到ext4的速度比NTFS快。另外按下右鍵檢視目錄資訊(如大小、檔案數)時,本來NTFS可能要跑超過5秒才出的來,然而ext4卻是不到2秒就搞定,我想還是有差吧!
之後要做的可能是移除一些不必要得檔案,並且稍微分配一下使用空間。

沒想到這篇自High文到最後會寫的像是教學文一樣。但某方面來說是為自己所作的來紀錄,所以可能比較簡略,如果看不懂的建議不要動手,避免一失「手」成千古恨。

3 則留言:

  1. >>到現在Windowsd幾乎1個月用不到1小時
    >
    Windows

    前陣子也把買來沒多久的一顆NTFS外接硬碟轉成ext4,速度快的不像話。但metadata似乎也肥得太不像話...
    http://img37.imageshack.us/img37/7760/ext4.png
    40.3-26.1GB後,剩下的空間到哪去了...囧囧囧

    回覆刪除
  2. 嗯......根據我實際使用的狀況的確是ext4耗掉的空間比較多(笑)

    回覆刪除
  3. 你有沒有已經塞滿東西了的ext4硬碟或ext4分割區可以提供一下metadata與原資料大小比例?為何會這麼大這部份我就完全不懂了...

    回覆刪除

歡迎光臨本月台,留言時請遵守以下幾點:
1.請不要張貼商業廣告,不然環保局會開單
2.用什麼語言留言都可以,只不過我不一定看得懂。
火星文、注音文可能因為難以解讀而不與回覆