快轉到主要內容

Ubuntu 更換 /Home 到新硬碟

·1364 字
Computer-Science Ubuntu Disk
目錄

如果發現當初掛載好的空間不夠用了,那麼擴充硬碟上去,然後照著步驟一步步的將檔案們搬家吧。


注意
#

  • 本文所提到的操作,若是操作不當則可能導致不可逆的結果,使用前請慎重考慮,並做好資料備份的習慣。
  • 以下所提到的指令大多數都需要 root 權限,請應個人需求加上 sudo 或是以 root 身份執行(不推薦)。

格式化新分區
#

搬家前要先找好家。
舉例要將 /home 搬至 sda1,則先將 sda1mkfs 指令格式化 :

1mkfs -t ext4 /dev/sda1

參數 -t 可以指定格式,如上指令表示將其指定為 ext4。(大多數 linux 通用)


備份 /home 到新分區
#

先將剛剛格式化好的分區掛載到 /mnt 中。

1mkdir /mnt/home
2mount /dev/sda1 /mnt/home

之後就可以開始備份了,雖然也可以直接複製貼上,但建議使用指令 rsync 更有效率:

1rsync -avx  /home/* /mnt/home

確認是否備份成功:

1ls -al /mnt/home

設定自動掛載
#

當我們想掛載硬碟時,會用到 mount 指令。
但若每次開機都要手動 mount 那些 boothome 則會很麻煩,幸好它們總是被自動的掛載

在 Ubuntu 系統下,有個檔案 /etc/fstab 就是用來設定系統在初始時要如何自動掛載硬碟

由於我們的 /home 已經複製一份到 /dev/sda1,掛載的位置有變,所以需要編輯 /etc/fstab 這個檔案。
需要在檔案中加入一筆掛載敘述,格式如下:

[Device] [Mount Point] [File System Type] [Options] [Dump] [Pass]

欄位間隔以 tab 字元隔開。


在但此之前,我們必須先知道我們要寫入的分區名字
對使用者而言,分區很直覺叫做 /dev/sda1,但電腦卻只認 UUID
獲取分區的 UUID

1blkid /dev/sda1

沒意外會出現類似這樣的訊息:

1/dev/sda1: UUID="3b8ad4ae-1af5-4f2f-b6ce-b17c1ecaa336" TYPE="ext4" PARTUUID="42d822b8-ebba-4cb4-aad1-f31234d02d30"

P.s. 若是沒有出現訊息,則可能表示該分區名稱輸入錯誤,或者權限不足

記好該分區的 UUID ,並在 /etc/fstab 最下面加上一行(記得 UUID 更換成自己的):

UUID=3b8ad4ae-1af5-4f2f-b6ce-b17c1ecaa336	/home	ext4	errors=remount-ro	0	1

這麼一來系統就會知道下一次要將 /dev/sda1 這個分區的內容掛載到 /home 底下,而該分區內裝的正是剛剛所備份進去的 /home


請注意!
#

若是在 /etc/fstab 看到先前的掛載的資料中已經存在 /home ,則可能表示你當前的 /home 也是從其他硬碟掛載來的,請將該行註解或刪除,以免重複掛載在同個目錄。


刪除 /home
#

接著將使用者切換到 root,並清空家目錄。

!使用最高權限輸入指令請特別留意!

1sudo -i
2rm /home -R

之後再創建新的目錄(怕它掛載找不到位置)

1mkdir /home

重新開機
#

確定上述步驟都做確實後,重新啟動驗收結果吧:

1reboot

開機後可能遇到的問題
#

如果開機後一切正常那麼恭喜你。
但結果若是有…點不如預期,或許你該繼續看下去:

在登入頁面輸入完密碼後卻卡住了!?

這可能是因為 /home 沒有被成功掛載,所以系統內部正在出錯。


試著找出問題,先進入純 command line 的 tty (按下 ctrl+alt+6 即可切換到 tty6),接著到登入,可能在登入後依舊會卡住一陣子,這是正常的,畢竟家目錄找不到了(系統問號中),不過沒意外應該會在找不到家目錄後將你丟到根目錄下。
成功登入後,到 /home 底下看看,如果是空的則證實猜想,/home 沒有被成功掛載。

常見的原因可能是找不到路徑,或者寫入 /etc/fstab格式錯誤,導致無法辨識等。
先掛載硬碟並檢查內部檔案是否為原本 /home 底下的檔案:

1mount /dev/sda1 /mnt/home
2ls -al /mnt/home

它應該是直接顯示 /home 底下的所有檔案,例如:

1.	..	guest	user1	user2

而不會是…

1home

如果內容為空,則表示在備份後,沒有做好確認,可能過程有什麼問題導致沒有成功備份。(這個直接放棄治療)

若內容是 home,而使用者目錄都在裡面,所以路徑是 /mnt/home/home,則表示在備份時沒有設定好備份路徑,這問題不大,你只需要將裡頭的檔案往外拉出一層目錄即可。

1mv /mnt/home/home/* /mnt/home
2# 確認檔案都移動出來了
3ls -al /mnt/home/home
4ls -al /mnt/home
5# 刪除多出來的目錄
6rm /mnt/home/home -R

之後重新啟動即可。

Alpaca
作者
Alpaca
No one can stop my feet.

相關文章

How to use PPPoE to connect network on Ubuntu?
·353 字
Computer-Science Ubuntu PPPoE

在 Ubuntu 用 PPPoE 連線中華電信固定 IP。

Raspberry Pi 4 (Ubuntu) configure auto connect to wifi
·142 字
Computer-Science Raspberry PI Wi-Fi Ubuntu

How to make ubuntu auto connect to wifi in raspberry pi 4?

Linux + Win 雙系統卻不見 Grub 開機選單?
·1691 字
Computer-Science Windows Ubuntu Grub

安裝了 Linux + Windows 的雙系統,但卻不見開機選單?放心,很多人跟你一樣。

Ubuntu 18 如何顯示電量百分比?
·308 字
Computer-Science Ubuntu Gnome
Build a FTP Server with 「vsftpd」
·343 字
Computer-Science FTP

How to build the FTP Server quicly with 「vsftpd」?

Simply setting up a Proxy Server with SSH
·344 字
Computer-Science SSH

Did you know that SSH can make your host as a proxy server?