windows7重装后恢复Ubuntu开机启动项,Ubuntu所在的硬盘uuid改变没法进入Ubuntu系统,解决方法

本文提供三种解决方法,帮助用户在重装Windows 7后恢复Ubuntu系统的启动选项。包括恢复启动文件、调整UUID设置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种情况:

当重装windows7后,其他盘符没有发生改变,这种情况最简单,方法如下:
 恢复方法: 
 
 1.把安装ubuntu->winboot文件夹下wubidr和wubidr.mbr两个文件拷到C盘根目录下 
 
 2.以管理员权限打开附件中的“运行”
  
    在命令行中运行c:/windows/system32>bcdedit /create /d "Ubuntu" /application bootsector 
  
    成功后(如果不是以管理员权限运行可能会被拒绝)得到一串号码id 如下:
 
   {b8779cc7-c9b2-11de-908b-c8405850ad4a} 
 
 3.把{}中的id复制下来,如:b8779cc7-c9b2-11de-908b-c8405850ad4a
  
 4.再输入下列命令  (注意:自己替换下面{}中的id为第2步得到的id) 
 
bcdedit /set {b8779cc7-c9b2-11de-908b-c8405850ad4a} device partition=c:              
bcdedit /set {b8779cc7-c9b2-11de-908b-c8405850ad4a} path \wubildr.mbr 
bcdedit /set {b8779cc7-c9b2-11de-908b-c8405850ad4a} description "Ubuntu Linux" 
bcdedit /displayorder {b8779cc7-c9b2-11de-908b-c8405850ad4a} /addlast
 
如果一切成功的话,重启之后便可以出现Ubuntu Linux的选项了。

然后就可以进入Ubuntu系统。

 

第二种情况:

 

假如你的windows7系统在C盘,你的Ubuntu系统文件夹在D盘,你重装了windows7后,Ubuntu所在的D盘也被格式化,你将备份的Ubuntu文件件重新拷回到D盘,然后用第一种方法恢复开机启动项,然后进入系统,会很蛋疼,进不了系统说:no  such device 然后是一串数字字母,就是uuid错了,因为,你格式化了D盘所以其uuid发生了改变。

解方法如下:

1、首先你按照第一种情况添加开机启动项;

2、进入Ubuntu开机那个界面,不要继续,直接按c,这时会出现一个输入命令的终端 窗口;

3、输入  ls ,这时候会显示:(这里面记不到了)  (loop0),(hd0,msdos8),(hd0,msdos7),(hd0,msdos6),(hd0,msdos5),(hd0,msdos1),(hd0,msdos1)是主分区,表示C盘,5678是逻辑分区。一般情况下主分区是1234(我们一般只有一个),然后逻辑分区从5开始,后面的一次类推(这个我一前unix书看过没懂,现在懂了),所以D盘就是(hd0,msdos5);

4、因为我的在D盘,所以就输入命令:  ls -l (hd0,msdos5),查看D盘的uuid,然后拿笔记下来;

5、按  esc,此时又回到了Ubuntu的开机界面,然后按 E ,此时进入编辑模式;

6、然后将你刚才第4步抄下的uuid替换你现在所在编辑界面里面的uuid,还有如果你的Ubuntu系统不是在D盘,还要改对应(hd0,msdos?),?是你在哪个盘就改几;

7、然后Ctrl  X,恭喜你已经可以进入了系统,不过还没有完,你以后每次进入都要重复步骤456,所以下面继续;

8、进入ubuntu系统后要改系统里面的的uuid文件,在 /boot/grub grub.cfg文件里面,此文件只读,且改变需要管理员权限;

9、所以先改权限 sudo chmod 666 /boot/grub grub.cfg;

10、然后 cd  /boot/grub 然后 vi grub.cfg,把里面的uuid全部换成你刚才抄下的uuid,保存退出;

11、改回grub.cfg的权限 sudo chmod 644 /boot/grub grub.cfg;

然后重启就可以直接进入Ubuntu系统,修改成功。

如果你有什么疑问,可以关注我的sina微博:forever1dream--NLP,我可以具体给你说;

第三种情况:

如果你将你配置好的Ubuntu系统拷贝到其他电脑上去使用,uuid发生了改变,应该和第二种情况一样(已测试)。

昨晚搞了好久终于OK了。。。。。

原文:

http://blog.youkuaiyun.com/forever1dreamsxx/article/details/8151251

<think>好的,我现在需要帮助用户解决VMware中Ubuntu虚拟机在硬盘扩容后无法启动进入GRUB救援模式的问题。根据用户提供的引用内容,我应该结合这些信息来制定解决方案。首先,我需要回顾用户提到的三个引用内容,确保解决方案涵盖其中的关键步骤。 首先,引用[3]提到在grub rescue模式下使用ls命令来查找Ubuntu的安装分区。这可能涉及到识别正确的分区,比如(hd0,msdos1)这样的格式。然后,用户可能需要设置根目录和前缀,并加载normal模块,如引用[3]中的步骤所示。 接下来,引用[2]提到在添加新硬盘后虚拟机进入救援模式,这可能是因为分区表变化导致GRUB找不到原来的启动分区。因此,修复引导可能是关键步骤,需要更新GRUB配置或重新安装引导程序。 引用[1]则指出GRUB的问题可以通过修复而不必重装系统,这提示我应该提供详细的步骤来修复引导,而不是建议重装系统。 接下来,我需要考虑用户的具体情况:VMware虚拟机,硬盘扩容后出现问题。扩容可能导致分区结构变化,例如原来的/boot分区可能移动到了不同的设备号,或者GRUB的配置文件没有更新,导致无法找到正确的启动分区。 可能的解决步骤包括: 1. 在grub rescue模式下使用ls命令列出所有分区,找到包含/boot的分区。 2. 设置正确的根目录和前缀,加载normal模块以进入正常模式。 3. 进入系统后,可能需要更新GRUB配置,重新安装GRUB到正确的硬盘。 4. 检查硬盘分区是否正确,确保文件系统没有损坏。 5. 可能需要调整虚拟机设置或分区挂载点,确保扩容后的硬盘被正确识别。 需要注意的是,用户可能不熟悉GRUB命令,所以步骤需要详细且易于跟随。例如,如何确定正确的分区,可能需要多次尝试ls (hdX,msdosY)/boot/grub命令来找到正确的分区号。此外,重新安装GRUB时,可能需要使用chroot环境,尤其是在无法正常启动的情况下。 另外,用户是在VMware环境中,可能需要确保虚拟硬盘的控制器类型(如SCSI或SATA)在GRUB中正确识别,否则分区号可能发生变化。例如,添加新硬盘可能导致原来的系统硬盘从hd0变为hd1,从而影响GRUB的引导。 总结下来,解决方案的大致步骤应为: - 在grub rescue模式下定位Ubuntu分区。 - 临时引导进入系统。 - 修复GRUB安装并更新配置。 - 检查文件系统和分区表是否正确。 - 重启测试是否修复。 需要确保每一步都清晰,并提示用户可能的错误和解决方法。例如,在设置prefix时,如果路径错误,用户可能需要尝试不同的分区组合。此外,在重新安装GRUB时,可能需要指定正确的设备,如/dev/sda而非某个分区。 最后,生成相关问题时要围绕GRUB修复、虚拟机硬盘扩容后的处理、分区管理等方面提问,帮助用户进一步了解相关主题。</think>### 解决方案:修复VMware Ubuntu虚拟机硬盘扩容后的GRUB引导问题 #### 步骤1:在GRUB Rescue模式下定位Ubuntu分区 1. **列出所有可用分区** 输入命令: ```bash grub rescue> ls ``` 输出可能类似: `(hd0) (hd0,msdos1) (hd1,msdos1)` 这里`hd0`表示第一块硬盘,`hd1`为第二块(新增的硬盘可能改变了原硬盘编号)[^3]。 2. **查找包含`/boot`的分区** 逐一测试分区,例如: ```bash grub rescue> ls (hd0,msdos1)/boot/grub ``` 若输出显示文件列表(如`grub.cfg`),则此分区为正确分区。假设找到`(hd0,msdos1)`。 #### 步骤2:临时引导进入系统 1. **设置根目录和加载模块** ```bash grub rescue> set root=(hd0,msdos1) grub rescue> set prefix=(hd0,msdos1)/boot/grub grub rescue> insmod normal grub rescue> normal ``` 此时应进入正常GRUB菜单,选择Ubuntu启动。 #### 步骤3:修复GRUB引导 1. **更新GRUB配置** 进入系统后,在终端执行: ```bash sudo update-grub ``` 2. **重新安装GRUB到主硬盘** ```bash sudo grub-install /dev/sda # 假设系统硬盘为sda ``` 3. **检查分区挂载** 若扩容后分区表变化(如原系统分区变为`/dev/sda2`),需确保`/etc/fstab`中的UUID与当前分区一致。使用`blkid`查看分区UUID: ```bash sudo blkid ``` #### 步骤4:处理虚拟机配置问题 - **调整VMware硬盘设置** 若新增硬盘导致原硬盘控制器类型变化(如SCSI改为SATA),需在VMware设置中保持控制器类型一致。 - **扩展文件系统(如需)** 若扩容后未扩展文件系统,使用`resize2fs`(ext4)或`xfs_growfs`(XFS): ```bash sudo resize2fs /dev/sda1 ``` #### 步骤5:重启验证 ```bash sudo reboot ``` --- ### 关键原理 - **GRUB依赖分区信息**:硬盘扩容可能导致分区编号变化,GRUB无法找到原引导文件[^2]。 - **UUID一致性**:系统启动时通过UUID识别分区,若`/etc/fstab`中UUID与实际不符,会引发挂载错误[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值