1. 程式人生 > >Ubuntu 16.04 /home 目錄遷移到獨立分割槽的方法

Ubuntu 16.04 /home 目錄遷移到獨立分割槽的方法

1 簡介

Ubuntu分割槽方案一般有下面三種:

  1. /boot 200M、/ 30G、/home 剩餘全部空間、swap 8G
  2. / 剩餘全部空間、swap 8G
  3. / 30G、/home 剩餘全部空間、swap 8G

第一種分割槽方案是為了將/boot獨立出來,防止作業系統無法啟動,這樣分的好處博主沒體會到,好像/boot沒什麼用,而且把磁碟搞得支離破碎的,所以博主一般不用這種分法。
第二種分割槽方案是懶人方案,或者說新手方案,簡單粗暴,對於裝系統像家常便飯一樣的博主來說,這樣分割槽最快啦,畢竟在實體機上操作分割槽需要小心翼翼,耗費心力啊。
第三種方案的好處是/home分割槽被獨立出來了,這樣以後重灌系統的時候就可以保留/home分割槽裡的使用者資料了,就像重灌windows只需要格式化C盤一樣,重灌Linux只需要格式化 / 分割槽即可。

第三種分割槽方案是博主推薦的方案,因為重灌Linux系統可以保留使用者資料

如果已經按照第二種方案,只分了一個 / 分割槽怎麼辦呢?
方法是將/home遷移到獨立的分割槽中,下面我們就來將/home獨立出來。

2 環境

磁碟操作是危險操作,如果你還不熟練的話,請在虛擬機器中操作,這裡推薦vmware虛擬機器。博主的環境如下:

  • win7
  • vmware 12
  • Ubuntu 16.04 iso映象

3 安裝Ubuntu虛擬機器

到Ubuntu官網下載Ubuntu 16.04的映象,下載地址:

然後百度下載vmware,下載地址如下:

破解也很容易,百度一下vmware註冊碼就可以了。這裡博主就帶過了,接下來要建立Ubuntu虛擬機器,也很簡單,一直點下一步就可以了,只說兩點。
要vmware開機載入映象檔案,則可以右鍵虛擬機器,然後點選設定,選擇CD/DVD選項,選擇使用ISO映象檔案,並且勾選啟動時連線的框,然後重啟虛擬機器就可以了,不需要U盤,如下圖所示:

這裡寫圖片描述

分割槽的時候按照第2種方案分割槽,即 swap 8G,/ 剩餘空間。但是要注意保留一部分空閒分割槽,便於我們建立新的分割槽,博主的分割槽如下圖所示:

這裡寫圖片描述

如果你全部分完了也沒關係,在vmware中增加虛擬機器的磁碟空間即可。如下圖所示:

這裡寫圖片描述

4 準備新的ext4分割槽

/home要掛載到獨立的分割槽中,所以首先我們得有一個新的ext4分割槽。要得到一個新的分割槽有兩種方法:

  1. 壓縮現有分割槽,建立新分割槽,推薦Gparted工具
  2. 從空閒分割槽建立新的分割槽

這裡我們用安裝的時候預留的空閒分割槽來建立新分割槽。首先用下面的命令來看看掛載的情況:

df -h

可以看到只有一個分割槽/dev/sda1被掛載在了/目錄上面,其餘的掛載點掛載的都是記憶體上,swap是沒有掛載點的。如下圖所示:

這裡寫圖片描述

接著再來看看分割槽的情況:

sudo fdisk -l

可以看到只有兩個分割槽,sda1和sda5,sda2是擴充套件分割槽,擴充套件分割槽必須再劃分成邏輯分割槽才能使用,邏輯分割槽的區號從5開始,因此只有2個分割槽,而sda5分割槽是swap,如下圖所示:

這裡寫圖片描述

接下來我們用Gparted來分割槽。Gparted是Linux下的無損分割槽工具,圖形操作介面非常簡單,如果是實體機,需要將Gparted用軟碟通刻錄到U盤,然後從U盤啟動,如果是虛擬機器,則直接啟動時候載入Gparted映象就可以了。Gparted下載地址:

右鍵虛擬機器,點選設定,CD/DVD選項選擇Gparted映象,然後啟動虛擬機器,就可以進入Gparted介面了。如果不能啟動到Gparted,則需要調整一下vmware虛擬機器的啟動順序。先關閉虛擬機器,然後選擇啟動到韌體,如下圖所示:

這裡寫圖片描述

這時候就進入了bios設定,切換到boot選項卡,然後按 +/- 號鍵來調整啟動順序,把CD-ROM調整到Hard Disk前面,調整完畢後按F10鍵儲存退出,如下圖所示:

這裡寫圖片描述

一路按回車鍵,就進入了Gparted的介面,如圖所示,右邊灰色的就是空閒分割槽:

這裡寫圖片描述

對灰色區域點右鍵,新建分割槽就可以了,拖動進度條,然後點選add,然後在點選Apply,建好之後的分割槽如下圖所示:

這裡寫圖片描述

好了,到這裡就準備好了新的分割槽,下面我們來獨立/home目錄。

5 /home目錄獨立

首先執行下面的命令,查詢剛剛建立的/dev/sda3分割槽的uuid:

sudo blkid

這裡寫圖片描述

開啟/etc/fstab:

sudo gedit /etc/fstab

新增下面一行:

UUID=782e0333-6722-4506-bf73-4353fc3ccfc6 /media/home   ext4    nodev,nosuid    0   2

這裡的UUID替換為我們剛建立的分割槽/dev/sda3的uuid
注意,和其他行的格式要一致,第一個空是空格,後面的空都是Tab鍵

接著建立目錄:

sudo mkdir /media/home

將/dev/sda3掛載到/media/home:

sudo mount -a

複製/home到/media/home:

sudo rsync -aXS /home/. /media/home/.

這個過程需要一點時間,等待命令完成。接著執行下面的命令:

cd /
sudo mv /home /home_backup
sudo mkdir /home

這個時候建立了一個新的/home目錄,接著再開啟/etc/fstab:

sudo nano /etc/fstab

將/dev/sda3分割槽掛載點由/media/home改為/home,也就是將下面這行:

UUID=782e0333-6722-4506-bf73-4353fc3ccfc6 /media/home   ext4    nodev,nosuid    0   2

改為:

UUID=782e0333-6722-4506-bf73-4353fc3ccfc6 /home ext4    nodev,nosuid    0   2

修改完後用 ctrl + o 來儲存,ctrl + x 退出。然後執行下面的命令重寫掛載:

sudo mount -a

最後刪除/home_backup:

sudo rm -rf /home_backup

現在我們再來看看分割槽的掛載情況:

df -h

這裡寫圖片描述

對比前面的圖片,就可以發現/home已經掛載到/dev/sda3上去了。
好了,到這裡我們就把/home成功的獨立出來了。

6 重灌Ubuntu

我們要把/home獨立出來,就是為了以後重灌系統時保留使用者資料,下面來操作。
設定虛擬機器開機載入Ubuntu的系統映象,然後設定從CD啟動,具體步驟參照上面載入Gparted映象的步驟,這樣就進入了裝系統的步驟,選擇自定義選項,如下圖:

這裡寫圖片描述

可以看到之前已經分好的sda1,sda3,sda5三個分割槽,如圖所示:

這裡寫圖片描述

點選sda1分割槽選擇ext4,不要改變分割槽大小,掛載點選擇 /,如圖所示:

這裡寫圖片描述

點選sda3分割槽,選擇ext4,不要改變分割槽大小,掛載點選擇 /home,如圖所示:

這裡寫圖片描述

sda5是swap分割槽,不用管它,接著在/dev/sda1後面的是否格式化選框中勾選,但不要勾選/dev/sda3分割槽,否則/home分割槽會被格式化,那麼使用者資料就丟失了。如下圖所示:

這裡寫圖片描述

好了,接著就開始重灌系統了,經過博主親測,這樣重灌系統不會丟掉/home下面的資料,即使裝了Ubuntu 16.04後重裝Ubuntu 14.04也不會丟掉資料。
再也不用每次重灌Linux都把所有資料都幹掉了。

7 總結

博主是參考下面這篇文章來實踐的,當然是英文的啦:

/home分割槽獨立,經過博主親手實踐,寫部落格記錄下來。轉載請註明來自”梧桐那時雨”的部落格。
如果你在實踐中遇到什麼問題,歡迎給我留言。

Tips:
如果覺得這篇部落格對你有幫助或者喜歡博主的寫作風格,就關注一下博主或者給博主留個言唄,鼓勵博主創作出更多優質部落格,Thank you.