Ubuntu 16.04 /home 目錄遷移到獨立分割槽的方法
1 簡介
Ubuntu分割槽方案一般有下面三種:
- /boot 200M、/ 30G、/home 剩餘全部空間、swap 8G
- / 剩餘全部空間、swap 8G
- / 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分割槽。要得到一個新的分割槽有兩種方法:
- 壓縮現有分割槽,建立新分割槽,推薦Gparted工具
- 從空閒分割槽建立新的分割槽
這裡我們用安裝的時候預留的空閒分割槽來建立新分割槽。首先用下面的命令來看看掛載的情況:
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.