新硬盤掛載目錄後文件消失解決辦法

項目初期用戶文件較少,全部存儲在/home目錄下,/home目錄沒有單獨劃開分區,隨着項目網站做大,用戶文件越來越多,/home目錄不夠空間,想掛載一個新硬盤來負責儲存

但發現新掛載/home到新硬盤時,/home原來數據變空了,這個原因是由於linux的VFS(虛擬文件系統)機制導致的,正常登錄以後,所看到的各個目錄,文件都是內核在加載時候構造在內存中的VFS目錄樹,而不是直接看到硬盤上的實際目錄樹。當你掛載某個設備到一個VFS掛載點上時(比如/home),系統就把VFS中的這個掛載點/home指向你最後所掛載的那個設備上。那麼你現在訪問該掛載點時,就會看到你最後掛載在此處的設備。而之前所掛載的設備依然在那裏,只不過掛載點/home已經不再指向之前的設備。所以之前的數據是被隱藏了,但並沒有刪除,若umount掛載後,數據又重新回來了

基於這種情況,只能通過跳板的方式把原來的/home數據複製到新的/home分區下了 ,如何添加新硬盤,請查找相關資料

mkdir /new  ###跳板目錄

mount /dev/sdb1 /new  ###首先掛載跳板目錄

cp -R /home/*  /new  ###複製/home目錄所有數據到/new先

rm -rf /home/*       ####可選,主要爲了騰出空間給原來的硬盤

mount /dev/sdb1 /home ###掛載/home 到新硬盤,此時你會神奇的發現之前的/home目錄文件已經全部轉移過來了,也許你會有點疑問,我並沒有複製或移動/new文件到新掛載的/home目錄啊,其實此時的/home目錄相當於/new目錄的硬鏈接,可以測試下mkdir /new/test 你會發現/home目錄也存在test


umount /new ###解除掛載

rm -rf /new ###刪除跳板目錄

echo  "/dev/sdb1  /home    ext3    defaults    0 0" >> /etc/fstab ###開機啓動掛載目錄


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章