Linux操作系統中,/home目錄下為各個普通用戶的家目錄,主要用于存放用戶的配置信息及相關文件。若安裝操作系統時,采用了home目錄與根目錄處在同一分區的分區策略,那么隨著用戶數據較多,很有可能將分區空間耗盡,導致系統崩潰。所以最好是將用戶數據所在目錄放在一個獨立的分區上,但由于/home目錄下已有一些用戶數據,要想將home目錄建立在一個獨立的分區上,需要先遷移原有用戶數據。 在遷移數據前,應提前通知用戶系統維護期間禁止登陸,否則可能導致數據丟失。
1 劃分分區
使用fdisk命令劃分新的分區,fdisk的子命令p可以列出當前分區的狀況,如上圖,當前已有sda1、sda2、sda3、sda4、sda5五個分區;子命令n用來劃分分區,可以指定初始扇區和終止扇區的位置(本例中初始扇區采用默認值,終止扇區在初始扇區的基礎上增加10G),如圖劃分了一個10G大小的分區;子命令w將修改寫入磁盤并退出。
劃分分區后極有可能出現磁盤分區表與內存中緩存的分區表不同步的情況,如上圖所示,WARNING提示分區表不同步,需手動同步分區表。在CentOS7中使用partprobe 命令同步分區表。
同步后使用lsblk命令可以看到新分的sda6分區。
2 創建文件系統
接下來需要為sda6創建文件系統,使用mkfs.ext4命令可以為分區創建ext4格式的文件系統。
創建完文件系統后可用blkid命令查看,如下圖,sda6的文件系統已成功創建為ext4。
3 遷移數據
接下來便可以將/home下原有數據遷移至新分區上了,但由于/dev/sda6是磁盤設備,無法直接被用戶使用。若要訪問,需先將/dev/sda6掛載到某個目錄上。 使用mkdir命令創建一個目錄當做掛載點,然后使用mount命令將/dev/sda掛載到該目錄下,掛載完后使用df命令可查看掛載是否成功,如下圖。這樣,訪問/mnt/home目錄就相當于訪問/dev/sda6。
將當前家目錄下的數據拷貝至/dev/sda6。
4 刪除原數據
使用init 1 切換至單用戶模式,以切斷網絡,防止系統維護期間用戶訪問數據丟失。此時遠程控制軟件(SecureCRT、Xshell等)已無法使用,需要在機器前操作。
如下圖,已切換至單用戶模式,輸入root用戶的口令即可。
在該模式下,刪除原來的家目錄rm -rf /home/*(事先最好做一份家目錄的備份)。
5 將獨立分區掛載至home目錄
接下來只需要將/dev/sda6掛載到/home目錄下,以后在/home目錄下修改數據就是在獨立分區/dev/sda6上修改數據。為達到開機自動掛載的效果,需將掛載信息寫入配置文件/etc/fstab,如上圖最后一行所示: UUID=8d59a22c-b571-4644-9876-dffde4a9b62c唯一標識了/dev/sda6分區;/home是掛載點;ext4是/dev/sda6的文件系統類型;defaults指明了掛載選項;第一個0處表示備份頻率,0表示不備份;第二個0處表示是否進行文件系統的檢查,0表示不檢查。
保存退出后還未生效,需使用mount -a命令使配置生效,將/dev/sda6掛載到/home目錄。 使用init 6 重啟,重啟后若可以正常訪問/home目錄,則數據遷移成功。
原創文章,作者:以夢為馬,如若轉載,請注明出處:http://www.www58058.com/84686