Ubuntu無損分區調整 問題的起因是這樣的,自己有一台Ubuntu的家用伺服器。硬碟是1T的。安裝系統的時候呢,沒有多想。直接預設安裝了。也就是說整個一個1T的硬碟都mount到/了。沒有自己的資料分區,重做系統的時候,資料備份會很痛苦啊。。。 所以,打算進行分區,但是畢竟這個系統已經運行一段時間了,重新安裝又捨不得。所以需要進行無損的調整分區表。 這時候藉助工具gparted了。 我的目的如下是: 調整前: sda1 9xxG ext4 / sda5 1G swap 調整後: sda1 150G ext4 / sda2 8xxG ext4 /home sda3 4G swap 如果直接在系統中使用gparted會因為系統所在的分區已經被mount無法進行resize,這時候就得上livecd了。 通過livecd啟動系統。我使用的是ubuntu-12.04.1-dvd-i386.iso。啟動後在命令列裡輸入gparted開機磁碟分割工具。 使用Gparted進行分區其實跟很簡單。圖形介面。不再一步一步的介紹操作了。 以下幾個重點操作: resize 重新編輯已有分區的大小。只有將已有分區變小,騰出可以再分配的空間 new 建立分區 delete 刪除分區 按照目的調整好分區即可。 光分好分區可不行,無法在系統啟動的時候進行mount,這裡要自己需改fstab。這裡吐槽一下,ubuntu貌似沒有arch的genfstab這樣的工具去自動產生fstab,真的需要鄙視一下。。。 編輯fstab表面上看起來挺難的。具體fstab這個檔案的參考,可以看這個串連 (英文):https://help.ubuntu.com/community/Fstab。 其實實際操作中還是挺簡單的。 下面簡述一下操作步驟: 1.由於使用的livecd,所以先要把新搞定的分區mount上 sudo -i #直接使用root操作比較簡單,所以使用root賬戶操作 mount /dev/sda1 /mnt/ #將第一個分區mount到/mnt 2.查看分區的UUID,需要記錄各個分區的UUID ls -l /dev/disk/by-uuid #查看分區的資訊,包括uuid 顯示的內容跟下面類似: 3.備份原來的fstab,然後編輯新的 cd /mnt/etc #進入fstab所在目錄 cp fstab fstab.01 #備份fstab vim fstab #編輯fstab fstab的內容跟下面類似: UUID是分區的UUID,一個空格之後跟的是掛載點(mount point),再後面是檔案系統類型,在後面就不介紹了,看剛才給的參考串連。 根據自己的分區情況進行修改,其實上面的就是我已經修改好的。 這樣就完成了fstab的編輯,解決的分區調整後系統啟動後的自動mount問題。在這個問題搞定之後,有人會問了,你的home目錄原來就存在了,是不是得解決一下這個home目錄的移動問題呢。 沒錯,下面就要解決這個home的移動問題。當然放在最後也是跟無損分區這個標題沒什麼太大關係。畢竟有些人只是調整,不會換掛載點。 1.修改home這個目錄的名稱,為分區騰出掛載點。(此時/dev/sda1已經mount到/mnt上了) mv /mnt/home /mnt/home_bak #將home重新命名為home_bak 2.將新調整出來的分區mount到/mnt/home上 mkdir /mnt/home #建立/home這個目錄以供分區掛載 mount /dev/sda2 /mnt/home #將sda2這個分區mount到/mnt/home這個目錄下 3.將原來home目錄下的檔案夾拷貝到新的分區中 我目前home_bak中只有一個使用者目錄bruce cp -a /mnt/home_bak/bruce /mnt/home 注意:此處用的參數是-a,把檔案的許可權也複製過去了。如果使用ls查看該目錄的使用者變為root了。可通過如下方式更改回來。此步驟必須,否則,無法登入X chroot /mnt #將root改為/mnt目錄 chown -R bruce:bruce /home/bruce #將/home/bruce這個目錄的使用者改為bruce 至此完成分區的無損調整,已經可以登入系統了。內容較多,大多數是調整完分區之後的系統參數調整內容。