將Ubuntu系統遷移到SSD固態操作


朋友送了一個固態硬盤給我,因此將原機械硬盤上的系統遷移到固態硬盤上。

原機械硬盤(dev/sdb)裝有win10和ubuntu雙系統。分區情況如下:

sda1:ESP分區

sda2:資料

sda3:資料

sda4:swap分區,被我干掉了,內存8g,基本上用不上。也可以使用swap文件代替swap分區。

sda5:ubuntu的/分區

sda6:ubunt的/home分區

【記錄下刪除swap分區的過程】
1.先查看swap分區
swapon -s 
2.停用swap分區
#確保swap分區沒有使用
free -m
#停用swap分區
sudo swapoff  /dev/sdb4   (第1步顯示的名稱)
#檢查停用成功
free -m 
3.刪除swap分區文件
sudo rm -rf /dev/sdb4
這樣就成功刪除了swap分區。
4.在/etc/fstab中刪除或注釋swap行

#我把swap分區刪除后,空間合並到了/分區。
因為操作的是/分區,需要在u盤啟動盤下執行,使用Gparted工具resize即可。

 

然后需要對ssd固態硬盤(dev/sda)分區,分區情況如下。記得ssd分區時要4k對齊,選擇2048還是4096可以參考這篇文章:固態硬盤分區4k對齊是2048還是4096?該選哪個有區別嗎?

sda1:ESP分區

sda2:用於win10系統

sda3:win10自動創建的恢復分區(以前沒有的,可能是使用易升升級時自動創建的),無需手動創建。

sda4:用於ubuntu的/分區

sda5:用於ubunt的/home分區

 

然后,win10直接用ghost備份恢復,再進pe修復下引導就搞定了。記錄手動恢復引導的命令:

# 用DG等工具先將ESP分區裝載為K盤,從系統盤C:\Windows目錄中復制UEFI格式的啟動文件到ESP分區中,修復系統。
bcdboot  c:\windows /s k:  /l zh-cn  /f uefi

ubuntu的備份恢復花費了大量時間,主要是刷教程做准備工作。網上的方法差不多兩種,一種是使用dd命令直接拷貝分區,另一種是使用tar命令壓縮備份系統文件。我使用的是后者,需要在live usb環境下進行,也就是使用u盤ubuntu啟動盤。主要參考了這篇教程:Ubuntu系統備份 

 

備份前准備

1.備份前先清理系統,減小備份文件的大小(可選)

首先進行系統的清理

# 清理舊版本的軟件緩存
sudo apt-get autoclean

# 清理所有軟件緩存
sudo apt-get clean

# 刪除系統不再使用的孤立軟件
sudo apt-get autoremove

刪除老舊的系統內核

可以參考這篇文章:如何刪除 Ubuntu 上不再使用的舊內核。刪除完后,記得使用sudo update-grub更新一下。

2.插入u盤啟動,進入Live USB界面,點擊試用ubuntu,進入桌面后,獲取root權限

sudo su

備份

3.備份/分區和/home分區

cd / 
#掛載/分區
sudo mkdir src-root
sudo mount /dev/sdb5 /src-root

#掛載/home分區
sudo mkdir src-home
sudo mount /dev/sdb6 /src-home

#掛載放/文件的分區(ssd的/分區)
sudo mkdir des-root
sudo mount dev/sda4 /des-root

#掛載放/home文件的分區(ssd的/home分區)
sudo mkdir des-home
sudo mount dev/sda5 /des-home

#備份/分區文件。 注意:因為是live USB環境,直接用/表示USB ubuntu的/,所以不能直接用/。由於已經cd到了要備份的ubuntu的/目錄下了,所以直接用./
sudo su
cd /src-root
tar cvpzf /des-root/backup.tgz --exclude=./proc --exclude=./lost+found --exclude=./mnt --exclude=./media --exclude=./sys --exclude=./run --exclude=./tmp --exclude=./home ./

#備份/home分區文件
sudo su
cd /src-home
tar cvpzf /des-home/home_backup.tgz ./

-c: 新建一個備份文檔
-v: 顯示詳細信息
-p: 保存權限,並應用到所有文件
-z: 用gzip壓縮備份文檔,減小空間
-f: 指定壓縮包名稱(帶路徑),只能做最后一個參數

--exclude: 排除指定目錄,不進行備份
  --exclude=/proc          一個虛擬文件系統,系統運行的每一個進程都會自動在這個目錄下面創建一個進程目錄。既然是系統自動創建,也就沒必要備份。
  --exclude=/lost+found      系統發生錯誤時(比如非法關機),可以在這里找回一些丟失文件。
  --exclude=/mnt
  --exclude=/media     多媒體掛載點,如u盤、移動硬盤、windons分區等都會自動掛載到這個目錄下。
  --exclude=/sys
  --exclude=/run    系統從啟動以來產生的一些信息文件。
  --exclude=/tmp   臨時文件目錄 
  --exclude=/home

另外要注意的是:我是划分了/和/home的,所以備份/時會排除掉/home,之后單獨備份/home。如果沒有划分單獨的/home,則不要排除/home。

還原

4.進行還原操作

# 解壓/備份文件
cd /des-root
tar -xvpzf backup.tgz
# 解壓/home備份文件
cd /des-home
tar -xvpzf home_backup.tgz

# 創建前面備份時忽略的文件夾
cd /src-rootmkdir proc
mkdir media
mkdir mnt
mkdir tmp
mkdir sys
mkdir run

5.修復引導。我是直接重建引導。

參考EFI+GPT模式下修復GRUB2雙系統引導-修訂版,一種是用efibootmgr,另一種是grub-install,我用的后一種方法。

sudo su
mount /dev/sda4 /mnt             (/dev/sda4:為/ 分區)
mount /dev/sda1 /mnt/boot/efi     (/dev/sda1:為/efi分區)
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
mount -t devpts pts /mnt/dev/pts/
chroot /mnt
grub-install /dev/sda1
update-grub2

6.重啟,然后修改/etc/fstab文件,主要修改UUID。

7.最后,記得刪除備份文件,減少磁盤空間占用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM