双系统ubuntu和windows扩容时出现问题

最开始安装双系统时内存分配没有分配好,按照网上的推荐只分给了Ubuntu50G的硬盘空间,这也导致了后来的的问题,所以在这里强烈建议安装双系统的同学如果用Ubuntu作开发的话一定要给Ubuntu系统留出足够的空间。 
一. 进入windows10系统,右键计算机,选择管理-磁盘管理,在一个硬盘中分离出一个空白区域,右键要分离的硬盘选择压缩卷,选择需要腾出的空间大小,然后点击右键,新建卷,此时我们已经腾出了一个空间供ubuntu扩容使用。 
二. 切换到Ubuntu系统,在开机时可能会遇到开不开机的问题,因为我的Ubuntu使用grub引导的,刚刚在windows系统下分离出的磁盘空间导致grub找不到系统所在的磁盘目录,需要手动输入磁盘位置启动系统

双系统ubuntu和windows扩容时出现问题

因为我的电脑是Ubuntu的,开机用的是grub引导,而grub就放在Ubuntu里的/boot/grub下。由于我多分出了一个区,导致grub找不到原先的Ubuntu所在分区,自然就找不到/boot/grub了,因此解决这个问题很简单,只要把grub和/boot/grub对应上就可以了。

步骤如下:

1.

输入ls,如下所示:

双系统ubuntu和windows扩容时出现问题

会列出目前磁盘上可用的所有分区,根据原先磁盘上的分区顺序大概确定Ubuntu所在分区是这几个中的哪一个(无法确定也没关系,一个一个试呗)

2.

输入set,如下所示:

双系统ubuntu和windows扩容时出现问题

会列出当前grub的设置,正是因为这些设置错误,才导致grub无法找到Ubuntu分区,既然grub找不到,那我们要手动指定了。

3.

以(hd0,msdos1)为例,分别输入:

set root=hd0,msdos1

set prefix=(hd0,msdos1)/boot/grub

如下所示:

双系统ubuntu和windows扩容时出现问题

注:这里的格式可能会随grub的版本不同而不同,只要和之前set列出的格式一致就可以了

4.

再输入set,发现我们已经设置好了:

双系统ubuntu和windows扩容时出现问题

5.

输入insmod normal回车,发现还是出错了,说明我们之前指定的msdos1是错误的:

双系统ubuntu和windows扩容时出现问题

呵呵,其实我本来就知道它是不对的,只是为了演示而已。

6.

那么现在我们指定msdos8,还是和之前的输入一样:

双系统ubuntu和windows扩容时出现问题

7.

发现这次没有出错,说明msdos8就是Ubuntu所在的分区,同时,我们还注意到提示符"grub rescue>"变成了高亮,来个特写:

双系统ubuntu和windows扩容时出现问题

8.

输入normal,如下所示:

双系统ubuntu和windows扩容时出现问题

哈哈,我们熟悉的grub菜单又回来了~~

双系统ubuntu和windows扩容时出现问题

 参考:https://www.linuxidc.com/Linux/2012-06/61983p2.htm

https://blog.csdn.net/weixin_39373577/article/details/81868204