如果發現當初掛載好的空間不夠用了,那麼擴充硬碟上去,然後照著步驟一步步的將檔案們搬家吧。
注意#
- 本文所提到的操作,若是操作不當則可能導致
不可逆的結果
,使用前請慎重考慮
,並做好資料備份
的習慣。 - 以下所提到的指令大多數都需要
root
權限,請應個人需求加上sudo
或是以root
身份執行(不推薦)。
格式化新分區#
搬家前要先找好家。
舉例要將 /home
搬至 sda1
,則先將 sda1
用 mkfs
指令格式化 :
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
那些 boot
、home
則會很麻煩,幸好它們總是被自動的掛載。
在 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
之後重新啟動即可。