茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1674942 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00055.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]好用的磁碟分割工具

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]好用的磁碟分割工具 -- GNU parted <I>
好用的磁碟分割工具 -- GNU parted !!!
本文參考自 GNU 之 parted 說明文件http://www.gnu.org/software/parted/

磁碟分割的觀念很不幸地,分割你的硬碟可能是一件有點複雜的事。這是由於在各個許多不同的系統彼此之間所造成的影響,所以我們在分割的時侯,可能必須仔細考慮:

  • BIOS 或韌體方面 -- 這是建置在你的 ROM 晶片中的程式,他會作記憶體的檢查等等的工作。你無法輕易地改變系統中這類程式,舉例來說像 AmiBIOS, Award, Phoenix, OpenFirmware 這些都是屬於 BIOS 與韌體的程式,不過你只可能擁有其中一個而已。
  • 開機載入程式 ( boot loader ) -- 這是一套允許你選擇你要使用的是哪一個作業系統的開機載入程式,他不但具選單功能,還負責作業系統載入的工作。像是 LILO, GRUB, Yaboot, Quik 這些都是屬於這類的。你可以同時安裝超過一個以上的開機載入程式,特別是在你擁有超過一個以上的作業系統時。
  • 欲執行 Parted 的作業系統 ( 必須是 GNU/Linux ) 或是其它你所在用的作業系統
  • 檔案系統的型態 -- 這指的是資料存放在磁區中的方式,舉例來說像是 ext2, fat32, hfs, reiserfs 等等。通常你的各個磁區中會擁有一些不同的檔案型態。
  • 然而我們在這要介紹的 Parted 支援很多種 BIOS、開機載入程式、作業系統以及檔案系統的組合,而且未來它所能支援的功能還會更多。你若是想要進一步瞭解更多有關上述各個角色,你可以參考這裡:BIOS 及韌體開機載入程式作業系統以及parted 所支援的檔案系統等等。

    總之,parted就是可以用來改變你系統中磁區大小的工具,無論你是要用多餘的硬碟空間把某個磁區加大,或是要把 A 磁區割一些出來給 B 磁區用,都可以用 parted 來作喔 ~~~

    我們在這兒所要介紹的是 parted 的用法,以一般的情況來說,使用的方式都是大同小異的,和你所使用的系統是什麼其實沒有什麼關係。Parted 的使用有兩種操作模式:命令列與互動式模式。通常一開始,我們會在提示符號下,輸入:[code:1:135b23d6ed]parted [device][/code:1:135b23d6ed]的指令,這個指令的作用便是為你 device 所輸入的裝置進行編輯的工作,不過若是你懶得指定裝置的話,parted 會試著去猜你用的裝置是哪一個。

    Parted 指令的下達語法為:

    [code:1:135b23d6ed]parted [option] device [command [argument]][/code:1:135b23d6ed]在命令列的情況下,我們通常是這麼作的:[code:1:135b23d6ed]parted /dev/sda resize 1 52 104 mkfs 2 fat16[/code:1:135b23d6ed]( 編注:這個指令指的是重新編輯 /dev/sda 這個裝置中第一個磁區的大小範圍起始值為 52至 1024 ,以及將第二磁區格式化為 fat16 的檔案系統。)而在互動模式下,我們則是可以在命令提示符號的後頭,一次鍵入一個指令來進行編輯,你可以直接在命令列輸入:[code:1:135b23d6ed]parted[/code:1:135b23d6ed]會出現下列畫面:

    parted

    ( 上圖為在 Red Hat 8.0 下的 Gnome 執行終端機應用程式下達 parted 指令的擷取畫面 )

    進入 parted 的提示符號後,我們可以直接按下 enter 鍵或 help 的指令看看有哪些指令可以運用,可運用的指令有:

    parted-help

    若是想進一步瞭解這些指令的用法,還可以用 help [command] 的方式得到想要的資訊,例如我們想要知道 resize 這個指令怎麼下,我們可以這麼作:

    parted-help-command

    Parted 會一直在你想進行一些具危險性的動作之前,再度提醒你是不是真的要這麼作,除非那絕對是不可行的,parted 會幫你自動作一些更動,例如你想要縮減分割區的大小 ( 可能想多出一些可用的空間作其它應用 ) ,但你下的值太大了,parted 會自動調整大小到最小值,以不致於讓你的資料遺失為原則,要是他調整的值真的和你下的值差太多,他才會出示警告訊息,問你是不是要改別的值。
    在我們為硬碟進行分割區的調整之前,建議先以 print 的指令看看你現在的使用情況:

    parted-print

    你可以到http://ftp.gnu.org/gnu/parted/下載最新版的 GNU parted ,截至 2002 年 12 月 7 日止,最新的版本為:parted-1.6.4.tar.gz
    冷日
    (冷日)
    Webmaster
    • 註冊日: 2008/2/19
    • 來自:
    • 發表數: 15771
    [分享]好用的磁碟分割工具 -- GNU parted <II>
    好用的磁碟分割工具 -- GNU parted <II>

    接續我們上一期所介紹的工具 parted ,我們來看看實作的情形,不過在實作之前,要提醒各位的是,第一,若你要改變大小的磁碟分割是正在使用中的,有時侯會遇到 parted 前無法 umount 的情況,所以建議你,在 single mode 下做這事比較保險,第二,就是我們提到的,你要改變大小的磁區,無論要將他變大還是變小,必須都先 umount 掉才能進行,否則將發生無法預期的後果。

    另外,則是在實作時,我們會用到將磁區作 copy 的動作,像是 cp 8 9 就是將第八磁區 copy 到第九磁區的動作,在這裡要特別注意的是,第九磁區必須大於第八磁區,這是在 ext2 以外的檔案系統所內含的限制。

    而我們在進行分割時,每新增完一個磁區 ( 在 parted 下 mkpartfs ),皆必須進行重開機的動作,這是為了讓新作好的分割區寫到 superblock 裡,才能讓系統進行 tune2fs 時找到新的分割區 ( mkpartfs 無法直接新增一個 ext3 的分割區,至少,在 parted-1.4.24-6 裡,是還不行的…)。

    首先,我們先來試試較簡單的情況 -- 在硬碟 ( 假設是 /dev/hda ) 仍有未分割之空間的情況下:

    我們可以先進入 parted 的互動模式,看看我們現在還有多少空間可以使用:

    [code:1:a667df2d15]parted /dev/hda[/code:1:a667df2d15]在 parted 下輸入 [code:1:a667df2d15]print[/code:1:a667df2d15]

    我們可以發現,在此硬碟中,extended 的可用空間為 1388.430 至 12942.993 而我們最後一個分割區 9 只用到 9585.659 ,則 9585.659 至 12942.993 為未使用到的空間。因此我們利用:

    [code:1:a667df2d15]mkpartfs logical ext2 9585.5 10585[/code:1:a667df2d15]新建一個 1000M ( 10585-9585=1000 ) 的分割出來用,新建完成後可用 print 瞭解新的分割狀況,作完我們必須先離開再重新開機將新的分割寫入,superblock 才能認得新的分割區以進行檔案系統的調整。我們可以從下面的擷取畫面看到實作的情況:

    parted2_1.png

    重新開機後,利用

    [code:1:a667df2d15]tune2fs -j /dev/hda10[/code:1:a667df2d15]將 /dev/hda10 調整為 ext3 的檔案系統 ( 原為 ext2 ),再進入 parted 互動模式下,執行 print 即可看到新的分割區已被調整為 ext3 的檔案系統了。

    parted2_2.png

    最後一期,我們將介紹:在硬碟空間已經完全分配,沒有多餘可用空間的情況下,如何由 A 分割區割出一些空間給 B 分割區…
    冷日
    (冷日)
    Webmaster
    • 註冊日: 2008/2/19
    • 來自:
    • 發表數: 15771
    [分享]好用的磁碟分割工具 -- GNU parted --<III>
    好用的磁碟分割工具 -- GNU parted --<III>

    這一期我們要介紹到的是,如何在已經全分配完的硬碟上,由這個磁區割出一部份空間給那一個磁區使用,有關 parted 的介紹,請參考:好用的磁碟分割工具 -- GNU parted,進行 parted 時重要的注意事項,請參考 好用的磁碟分割工具 -- GNU parted -- II。

    在這裡,我們要作的是由 /mysql ( /dev/hda12 ) 割出 600MB 的空間給 /php ( /dev/hda11 ) 使用時,我們可以利用下列步驟完成:

    首先,我們先利用[code:1:f7ac601c98]df -h[/code:1:f7ac601c98]查看硬碟現在的分配情況,我們可以看到 /php 的空間為 566M 而 /mysql 為 2.4G ,在進行 parted 之前,我們必須先:[code:1:f7ac601c98]umount /php<br>umount /mysql[/code:1:f7ac601c98]再進入 parted 的互動模式:[code:1:f7ac601c98]parted /dev/hda[/code:1:f7ac601c98]

    parted2_1.png

    我們先利用 print 看看現在的分割情形,接下來,我們先把 12 縮小為 600M ,指令為:[code:1:f7ac601c98]resize 12 10487.777 11087[/code:1:f7ac601c98]然後將 12 所多出來的空間利用[code:1:f7ac601c98]mkpartfs logical ext2 11083.939 12942.993[/code:1:f7ac601c98]

    新建立一個分割區,新的分割區被分配的編號為 13,此時 13 為 ext2 的檔案系統,重新開機後,再利用 好用的磁碟分割工具 -- GNU parted -- II 中所介紹的 [code:1:f7ac601c98]tune2fs -j /dev/hda13[/code:1:f7ac601c98] 將 13 調整為 ext3 的檔案系統,將分割區 12,13 umount 掉後進入 parted 的互動模式:

    接下來,將 12 的檔案系統 copy 至 13 中,再移除掉 12 的分割區,讓原本屬於 12 分割區的空間變為可利用空間,再 print 查看硬碟狀態,我們可以看到畫面擷取的反白部份顯示 10487.746 到 11083.939 之間有了約 600MB 的斷層,我們就是要將他分配給 11 分割區所用,接下來重設 11 分割區的大小:

    [code:1:f7ac601c98]resize 11 9883.771 11083.939[/code:1:f7ac601c98]

    parted3_3.png

    至此,我們已達成增加 11 分割區空間的工作了,可以利用 print 查看結果,或是在離開 parted 互動模式後,將 /php 及 /mysql 掛載 ( mount ) 回來,利用 [code:1:f7ac601c98]df -h[/code:1:f7ac601c98] 查看硬碟分配狀態。

    parted3_4.png

    P.S. 我們在這看到的 /dev/hda12 的空間,是 586M ,這是當時在 parted 中 cp 的檔案大小為此的結果,在系統重新開機後,硬碟分割狀態,將符合正常:

    parted3_5.png

    前一個主題 | 下一個主題 | 頁首 | | |


    
    Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|