参考:http://cntchen.github.io/2017/02/11/Ubuntu16-10-%E8%BF%81%E7%A7%BB%E5%88%B0-SSD/
1:分区
2:sudo cp -rf -a source destination
bin etc lib snap usr
boot home lib32 root srv var
initrd.img lib64 run vmlinuz
initrd.img.old libx32 opt sbin vmlinuz.old
/media
/cdrom /mnt 这几个个目录为空可以cp,如果不为空,sudo mkdir media cdrom mnt
run目录应该可以直接cp,但是据说重启会丢弃,但是如果没有run目录启动不起来,所以至少需要sudo mkdir run
tmp目录应该可以直接cp,但可能垃圾有些多,我记得没有cp,系统启动好像会自己创建,或者最好sudo mkdir tmp,sudo chmod 1777 /tmp,有个t权限。
sudo mkdir dev proc sys
3:EFI。两个分区都是fat32,sudo cp -rf -a /xx/efi/. /zz/efi/
4:修改。首先修改boot/efi/EFI/grub.cfg
例如:
search.fs_uuid 5e8c93b8-eb08-4e20-a690-08c0bd5f8ee8 root hd1,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
使用sudo blkid或者ls -l /dev/disk/by-uuid/确定自己要启动的ubuntu分区的uuid,进行替换。
修改boot/grub/grub.cfg
同样替换uuid,因为两个硬盘系统一样,为了在grub便于自己区分,可以编辑下标题名,默认只是ubuntu,例如'Ubuntu 18.04 xishu ssd sda2'
修改/etc/fstab
同样替换uuid,同时分析有没有多余或者可能造成无法启动的项,删掉。
5:重启,之后uefi菜单中有两个ubuntu,e,不是很容易区分是那个,暂时先根据grub判断。进入系统之后,可以执行
sudo update-grub
更新下,如果磁盘有变化或者某个分区有系统未识别,标题名应该会恢复默认,要再改下。至于
sudo grub-install /dev/sda,我不确定对不对,因为是uefi+gpt,不应该是安装到分区吗,例如
sudo grub-install /dev/sdax --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot