- 前言梗概:
750GB 機械硬盤下安裝 Win7 和 Ubuntu雙系統,之前Win7單獨重裝后,將grub引導覆蓋;利用EasyBCD恢復Ubuntu啟動。
最近發現之前Ubuntu分配空間太小,想將其安裝到一個大一點的SSD(固態硬盤)上。
Ubuntu情況如下,
- /dev/sdb8為swap分區
- /dev/sdb9 為/boot分區
- /dev/sdb10為/ 分區
- /dev/sdb11為/home分區
所以,任務是將4個分區克隆到更大的SSD硬盤。
1、新硬盤分區
使用原有系統GParted對分別分配4個分區,且保證空間大小均比原有空間大。
2、克隆CloneZilla
克隆常見方法有:dd命令和再生龍 (CloneZilla)。這里采用CloneZilla方法。
下載地址:http://www.clonezilla.org/downloads.php,
ubuntu系統,我下載了 alternative stable - 20180812-bionic 版本。利用UltraISO制作成U盤啟動盤。
操作文檔比較詳細:http://www.clonezilla.org/clonezilla-live-doc.php
按照文檔操作,使用Device To Device 選項,依次將4個分區復制到新硬盤對應的4個分區(此處危險:請看清楚 源分區和目標分區,否則后果自負。);這個過程重復4次。
源分區在前,目標分區在后;......經過4次 ,克隆完成。
3.修改uuid
這時,原有系統UUID和grub均復制到新硬盤,此時系統處於三系統(win7+ubuntu12.04+ubuntu12.04)雙硬盤結構(機械硬盤+SSD固態),如果UUID相同是沒法識別新硬盤的分區的。
使用命令,創建分區新的uuid
sudo uuidgen | xargs tune2fs /dev/sda5 -U
詳細參照:https://www.cnblogs.com/EasonJim/p/7471681.html(Linux下查看硬盤UUID和修改硬盤UUID(轉))
修改 /etc/fstab 和 /boot/grub/grub.cfg中uuid的新分區的uuid。
4.引導和啟動
啟動遭遇失敗:
1、直接無法啟動,grub Error 15; 網上說原因是 grub沒有找不到 grub.cfg。
1、使用ubuntu live cd 進行恢復grub ,啟動仍然是grub>命令。
2、出現解決Grub Rescue: invalid arch independent ELF magic問題;發現是下載Ubunt系統中默認 是grub-efi-amd64 庫,而我是BIOS引導,因此先移除之。
sudo apt-get remove grub-efi-amd64 #移除grub-efi
sudo apt-get install grub-pc #安裝普通grub
但是結果仍然不能登錄。
重要軟件登場:
super Grub2 disk 是極好的引導工具,只適用於BIOS引導,EFI引導的請移步。
下載地址:https://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/
仍然利用UltraISO制作 U盤;
注意:刻盤時默認方式是RAW,這個不要修改為HDD+什么的,否則U盤很可能不能啟動成功。
此時U盤不能正常讀取,會提示“格式化” ,可以忽略。
【U盤恢復】: 當用完之后,采用HDD+模式再寫一次,windows自帶格式化即可。
5、永久性保存啟動引導——待完善
啟動super Grub2 disk。它會自動掃描全盤的引導配置,列出所有的引導菜單,這時發現之前熟悉的ubuntu菜單,點擊進入看到久違的熟悉面容。(此處欣喜不已,連干三杯,爽歪歪!!)。
- 為了保存永久性啟動引導,參考:https://blog.csdn.net/bensnake/article/details/39480271
mkconfig
,從 Linux 命令提示符生成一個新的 grub.cfg 文件:grub-mkconfig -o /boot/grub/grub.cfg
如果您的問題是 GRUB 僅顯示了一個
grub>
提示符或完全未啟動,那么您必須將 GRUB 重新安裝到您硬盤上:grub-install /dev/sda
但是最終未能成功,從SSD加載登錄系統,提示grub>.
- grub原理待研究,應該是stage1、stage1_5、stage2,應該是stage1_5出了問題。
歡迎指正和補充。。。