天天看點

移動/home 分區到其它分區

今天想裝個雙系統,可是剩餘分區大小又不夠,是以隻有移動一下home位置,留出更大一塊分區空間。還是這個方法有效簡單。

逐漸移動分區的操作方式

在這個新的技巧集中,Daniel Robbins 說明了如何在正在運作的系統上更改分區布局。同時他還介紹了幾個訣竅,進而使您可将停機時間縮到最短,并可避免犯嚴重錯誤。在這篇技巧中,他将說明如何将 /home 移動到另一個分區上。

​​評論:​​

​​Daniel Robbins​​​ (​​[email protected]​​)Gentoo Technologies 公司

2000 年 5 月 01 日

  • ​​
    移動/home 分區到其它分區
    ​​内容

/home 分區是最常移動的分區之一。某些時候,/home中的全部空間都用完了,而且需要增加一個硬碟驅動器。另一些時候,/home被設定為根分區的一部分,為了提高性能或便于備份,可能需要将它移動到别的地方。我會針對每種情況說明如何安全有效地移動/home。

警告

下面的技術說明如何移動一個或多個分區。盡管這項技術的設計使您能夠“撤銷”失敗的分區移動,但它并不防止使用者的錯誤。換言之,隻要進行格式化分區或複制大量檔案的操作,就存在因輸入錯誤而導緻大量資料被破壞的可能性。是以,強烈建議您 在行動之前采取适當的措施來備份所有的重要檔案。

現在您已作好準備,我們就可以開始移動 /home了。您要完成的确切步驟取決于 /home目前是駐留在它自己單獨的分區上,還是位于根分區上。在我們完成下面的步驟時,要緊記這一點(必要時我将提醒您)。如果您正在将/home移動到一個新的硬碟驅動器上,則這個驅動器現在應該實體上安裝在您的系統中。

1.如有必要,建立一個新分區

如果您正在将 /home 移動到一個現有的分區(沒有必要一定是 ext2檔案系統,隻要目标主分區或擴充分區存在即可)上,則您可以直接轉到 ​​ 步驟 2​​。

如果新分區還不存在,則需要用 cfdisk(首選)或 fdisk來建立一個新分區。如果這個分區不在第一個驅動器上,則别忘了将這個裝置的名稱指定為cfdisk 或 fdisk的第一個參數。在建立了适當的主分區或擴充分區以後,應重新啟動系統以便正确地重新讀取分區表。這是唯一需要重新開機系統的時候。

​​回頁首​​

2. 在新分區上建立檔案系統

要在新分區上建立檔案系統,首先要知道這個新分區的準确裝置名(例如,/dev/sda5)。如果您不能确定準确的裝置名,請立即停下來,仔細核對裝置名。然後以root 身份鍵入以下指令:

# mkfs.ext2 /dev/--?      

在上面和以後的代碼樣例中,應該用目标分區名替換--?。在執行此指令以後,目标分區将包含一個空的 ext2 檔案系統。

​​回頁首​​

3. 在 /mnt下挂載這個新檔案系統

建立一個名為 /mnt/newpart的目錄,然後将新分區挂載到這個目錄上:

# mount /dev/--? /mnt/newpart      

​​回頁首​​

4. 進入單使用者模式

為了使系統的可用性達到最大限度,我盡量推遲這一步,但現在我們必須進入單使用者模式,然後将/home 中的檔案複制到 /mnt/newpart 中。您不應該讓 /home中的任何檔案處于打開狀态,而進入單使用者模式消除了這種可能性:

# init 1      

如果出現提示,請輸入 root 密碼來執行系統維護任務。您現在應該在root shell 中。

5. 将目前目錄更改為/home,然後複制檔案

鍵入以下指令:

# cd /home
# cp -ax * /mnt/newpart      

cp -ax 指令循環地将 /home 中的内容複制到 /mnt/newpart中,并保留全部檔案屬性,也不會交叉任何挂載點。該指令執行完以後,/mnt/newpart中将包括 /home 中目前包含的全部檔案和目錄的精确副本。如果原來的/home 在它自己單獨的分區上(在 /etc/fstab中用單獨一行列出),請轉到​​步驟 6a​​​。否則,請轉到 ​​ 步驟 6b​​。

6a. 使用新分區(當原來的 /home是一個分區時)

下面的說明适用于原來的 /home已經在它自己的專用分區上的系統。如果不是這種情況,請參閱 ​​ 步驟 6b​​。

鍵入以下指令解除安裝原來的分區:

# cd /
# umount /home      

然後,解除安裝并重新挂載新分區:

# umount /mnt/newpart
# mount /dev/--? /home      

現在就可以通過 /home通路新分區了,并可立即投入使用。我們可以在多使用者模式下執行最後幾個步驟。請按CTRL-D 退出單使用者模式,這樣系統就會回到啟動運作狀态。

重要步驟: 在系統正常啟動以後,以 root 身份登入,然後編輯/etc/fstab,以便将 /dev/--? 自動挂載到 /home上,而不是仍然在這個挂載點挂載原來的分區。例如,将下面這一行:

/dev/hda3 /home   ext2    defaults    1   2      

更改為:

/dev/--?    /home   ext2    defaults    1   2      

6b. 使用新分區(當原來的 /home不是一個分區時)

如果 /home 以前不在它自己單獨的分區上(例如,如果 /home隻是根分區上的一個目錄),請按下面的說明操作。執行以下指令:

# cd /
# mv /home /home.old
# mkdir /home      
# mount /dev/--? /home      

現在,請按 CTRL-D離開單使用者模式。當系統回到啟動運作狀态以後,編輯 /etc/fstab檔案,在其中添加類似這樣一行:

/dev/--?  /home   ext2    defaults    1   2      

這樣,當下次重新啟動系統時,您的新分區将被正确挂載。

7. 掃尾工作

我們特意将原來的 /home目錄/分區保留下來,以防複制檔案時出現問題。在證明系統穩定運作以後,您就可以将原來的/home 分區用于其他目的,或者删除原來的 /home 目錄。