昨天买了一块新的SSD,PM981A,和一个U盘,TU100Pro,随手测了个速,还是有点满意。
这U盘的速度属实有点惊喜,不给装个WinToGo实在有点对不起它,直接Dism++释放映像进去。
思索了一会儿,毕竟还是Windows用的多,决定将我电脑的Ubuntu留在旧硬盘,把Windows迁移进新硬盘。进入刚装好的WTG,用DiskGenius克隆了磁盘,之前丢过一次数据还买了专业版。
完成之后行云流水一般地重启,进UEFI,改启动顺序,Grub引导失败。
看着眼前的grub>和跳动的光标,顿时慌得一批,我的心里也在随它颤抖。
玩电脑也不是一年两年了,一眼就能看出来我该干嘛了。随手打下了ls命令,我看到了我所有的磁盘分区。
Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists possible
device or file completions.
grub> ls
(proc) (hd0) (hdo,gpt4) (hdo ,gpt3) (hd0 ,gpt2) (hd0 ,gpt1) (hd1) (hd1; gpt3)
(hd1,gpt2) (hd1,gpt1) (hd2) (hd2 ,gpt3) (hd2 ,gpt2) (hd2 ,gpt1)
我电脑里面有三个硬盘,一个500G的SSD,一个1T的新SSD,和一块2T的HDD。我依稀记得曾经在硬盘序号里面我的机械硬盘是磁盘0,根据主板上的丝印我看到我的旧SSD(就是放着Ubuntu的那个)所在的接口是M.2_2,于是我大胆猜测,我的Ubuntu应该在(hd2,gpt3)里面(gpt1和gpt2分别是EFI和忘了删除的MSR)。
于是我设置grub的root目录为(hd2,gpt3),又设置了grub的prefix变量为(hd2,gpt3)/boot/grub(就是grub配置文件所在的地方)。
grub> set root=(hd2,gpt3)
grub> set prefix= (hd2,gpt3)/boot/grub
然后设置了vmlinuz和initrd,linux命令后的root指的是linux的根文件系统所在的磁盘,起初我根据hd2推测尝试了nvme1n1p3,但是发现不对,于是又换成了nvme0n1p3。
grub> linux /vmlinuz root=/dev/nvme0n1p3
grub> initrd /initrd.img
最后就是见证奇迹的时刻了,输入boot让grub根据刚刚的配置引导系统启动。
grub> boot
成功了!!
但是这时候还不算完,因为grub的配置并没有保存,需要手动重新配置一下grub,在终端执行一下更新的指令。
larry@LarryWorkStation: sudo update-grub2
发现找到了电脑上的Linux内核和Windows Boot Manager,应该就成功了。
又是行云流水地重启,进UEFI,改启动顺序,Grub引导失败。
又看着那熟悉的光标,我陷入了沉思,为什么会这样。我插上WTG,进到DiskGenius里面看了看EFI分区中grub配置文件的数据,发现里面是通过磁盘分区的uuid来确定磁盘的。
search.fs_uuid 6dbe206e-776e-4c45-b8be877e5ef4096b root
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
但是现在的uuid是我以前的Ubuntu EXT4卷的uuid,看到这个我立马找到现在的uuid换了进去。
search.fs_uuid 20380fd5-2011-4b19-ad79465fd577a709 root
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
又是重启,进UEFI,改启动顺序,这次不负众望,终于成功进入了Ubuntu。
又是开心的一天。
Done.