在一台电脑不同硬盘上安装不同版本linux踩的坑

前情提要:

主力机上用LMDE3总觉得不太舒服,软件源都是debian9的,太旧;给破笔记本装了第二块ssd,准备安装基于ubuntu的linuxmint。笔记本原来的硬盘上装着debian10。

冥冥之中有个声音告诉我最好先把原来的硬盘卸了再装全新mint,我懒得拆机。usb启动linuxmint 19.3的安装镜像,到了选硬盘步骤,手动给sdb(新ssd)分了几个区,包括esp和swap。我看见上面sda1也挂着esp,但懒得管。

回想起来似乎应该在安装时手动把sdb1格成fat然后挂载为/boot/efi

结果安装程序真就把sda1当成首选esp分区了。看了看/etc/fstab,/boot/efi确实是sda1,而且俩盘的swap都给挂载上了。2200了,这破笔记本好歹还有8G内存呢,估摸着swap没有也无所谓。

强迫症不能容忍当前系统的启动分区在别的硬盘上。我灵机一动,先卸载了/boot/efi,再把sdb1挂上去,sudo grub-install。确实里面的EFI目录多了个叫ubuntu的文件夹,底下还有grubx64.efi。但拔了老硬盘,从新硬盘直接启动失败,进到一个黑糊糊的grub>_界面。

而继续从老硬盘启动是成的。懒得深究,弱智方法启动。

此时就是timeshift的出场时间了。在折腾这些玩意之前,老老实实做过一次备份;拔了老硬盘,用安装u盘启动,timeshift,在wizard中选择存放备份的分区,指定/boot/efi的路径,重新安装grub,勾勾都打上,还原!

弱智方法还真灵,启动成功了。一看fstab里边/boot/efi对了。但俩swap还在,打开磁盘工具看一眼当前硬盘swap分区的uuid,把fstab里边不存在的那个删了,完事儿。