1. 程式人生 > >ubuntu掛載其他分割槽到/home下,將當前分割槽內容替換

ubuntu掛載其他分割槽到/home下,將當前分割槽內容替換

有時候,我們裝系統時,可能因為沒注意,把某一個分割槽分小了,導致到最後,我們的那個盤容不下了,

這時,面臨的兩個選擇就是:要麼解除安裝一些軟體,要麼重新分割槽,重灌系統,其實,還可以這樣,去把其他

多餘的盤分一個區出來,然後替換當前分割槽,放心,資料不會丟失,而且所有安裝的軟體都可正常的使用.

而我裝的系統發現 根/目錄快佔完了,又不想重灌系統,想用一個新的分割槽去替換/home,做法如下:

這裡以掛載/home分割槽為例子,其他的分割槽應該類似吧

需要以下6個步驟:

         1,分一個新的分割槽,並格式化為你當前的系統的檔案系統格式,如ext3或ext4

         2,備份你的fstab檔案,然後編輯改檔案,掛載你剛格式化的分割槽為/media/home 然後重啟

         3,使用rsync命令來同步所有的/home下的檔案到/media/home

         4,再次編輯fstab檔案,掛載為把剛才的/media/home改為/home

         5,修改當前的檔案/home為/old_home重啟

         6,刪除/old_home

根據上面的操作,即使你某一步出錯了也很容易修改回來

細說每一點:

         1,分一個新的分割槽,並格式化為ext4檔案系統

                    這個在這裡講得很好,可以去看看,或者搜一下fdisk命令分割槽,看看就能會了

         2,備份你的fstab檔案,然後編輯改檔案,掛載你剛格式化的分割槽為/media/home 然後重啟

                    a) 查詢該分割槽的uuid

[email protected]:~$ sudo blkid
[sudo] password for xiaobing: 
/dev/sda1: UUID="00087570000398CE" TYPE="ntfs" 
/dev/sda5: UUID="000B32AB00053B61" TYPE="ntfs" 
/dev/sda6: UUID="000D000B000602E6" TYPE="ntfs" 
/dev/sda7: UUID="2be473c4-d355-4355-9263-c2815b51e49e" TYPE="ext4" 
/dev/sda8: UUID="5803947b-195a-41ca-b0fd-d8a47ccd8095" TYPE="swap" 
/dev/sda9: UUID="8cbedd1f-6da5-40ca-add5-16af9c2eaa7e" TYPE="ext4" 
/dev/sda10: UUID="1f450485-6400-4a67-bc7d-a1fab5f50db1" TYPE="ext4" 
                   或者使用df -vh 檢視

                    這個會顯示出你剛分出的那個區,  -h 是以人能讀懂的大小格式G來顯示出磁碟的大小,所以,就能找到你剛分的那個區了

                    b)備份你的fstab檔案                         

$ sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)  
                     c)比較一下備份的檔案是否有差別,有差別重新備份一次 
$ cmp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)

                    d)用你最喜歡的編輯器,開啟檔案/ect/fstab 輸入如下:

# (identifier)  (location, eg sda5)   (format, eg ext3 or ext4)      (some settings) 
UUID=????????   /media/home    ext4          defaults       0       2 
                    注:把這裡的UUID和你分的區的替換,還有檔案格式替換,其他的就不用管了,儲存退出

                    e)新建一個目錄/media/home 

$ sudo mkdir /media/home
                   f)使用命令 : 
$ sudo mount -a
                    來掛載全部的分割槽裝置,並重啟

          3,使用rsync命令來同步所有的/home下的檔案到/media/home  

$ sudo rsync -aXS --exclude='/*/.gvfs' /home/. /media/home/.
           注: 這樣新增--exclude,防止說不讓複製.gvfs檔案,並把整個現在的/home下的檔案複製到了/media/home中

            檢測一下是否同步是完成的,輸入:

$ sudo diff -r /home /media/home
          4,再次編輯fstab檔案,掛載為把剛才的/media/home改為/home
# (identifier)  (location, eg sda5)   (format, eg ext3 or ext4)      (some settings) 
UUID=????????   /home    ext4          defaults       0       2
         注:這裡就把剛才的/media/home 更改為/home

          5,修改當前的檔案/home為/old_home重啟

$ cd / && sudo mv /home /old_home && sudo mkdir /home
           注:把當前的/home重新命名為/old_home, 這個並沒有刪除你的內容,然後重啟

          6,刪除/old_home

$ sudo rm -rf /old_home

總結:對於linux的分割槽檔案系統,就像抽屜似的,可以隨時插拔,所以,再想更換某個分割槽時,只要做幾個步驟:1,先掛載一個分割槽到/media/home

然後修改分割槽表文件/etc/fstab 讓掛載的分割槽能在重啟後自動掛載,然後,把現在像更新的分割槽資料全部同步到新的分割槽,然後再次將改分割槽表

/etc/fstab為真正的分割槽,然後重啟,就ok了,謝謝!

歡迎大家來指點啊!